{#if data.error}
⚠ {data.error}
{/if}
{#if data.marketContext}
{/if}
{#if strongEtfs.length || strongBonds.length}
{#if strongEtfs.length}
| Ticker |
Price |
Mkt-Adj |
Graham |
Expense |
Yield |
AUM |
5Y Ret |
Score |
{#each sorted(strongEtfs) as r}
{@const m = r.asset.displayMetrics ?? {}}
| {r.asset.ticker} |
{m.Price ?? '—'} |
|
|
{m['Exp Ratio%'] ?? '—'} |
{m['Yield%'] ?? '—'} |
{m['AUM'] ?? '—'} |
{m['5Y Return%'] ?? '—'} |
{r.inflated.scoreSummary} |
{/each}
{/if}
{#if strongBonds.length}
| Ticker |
Price |
Mkt-Adj |
Graham |
YTM |
Duration |
Rating |
Score |
{#each sorted(strongBonds) as r}
{@const m = r.asset.displayMetrics ?? {}}
| {r.asset.ticker} |
{m.Price ?? '—'} |
|
|
{m['YTM%'] ?? '—'} |
{m['Duration'] ?? '—'} |
{m['Rating'] ?? '—'} |
{r.inflated.scoreSummary} |
{/each}
{/if}
{:else}
No assets currently pass both gates — market conditions may be elevated.
Check the Watch List below for assets passing at least one mode.
{/if}
{#if watchEtfs.length || watchBonds.length}
{#if watchEtfs.length}
| Ticker |
Price |
Signal |
Mkt-Adj |
Graham |
Expense |
Yield |
AUM |
5Y Ret |
{#each sorted(watchEtfs) as r}
{@const m = r.asset.displayMetrics ?? {}}
| {r.asset.ticker} |
{m.Price ?? '—'} |
|
|
|
{m['Exp Ratio%'] ?? '—'} |
{m['Yield%'] ?? '—'} |
{m['AUM'] ?? '—'} |
{m['5Y Return%'] ?? '—'} |
{/each}
{/if}
{#if watchBonds.length}
| Ticker |
Price |
Signal |
Mkt-Adj |
Graham |
YTM |
Duration |
Rating |
{#each sorted(watchBonds) as r}
{@const m = r.asset.displayMetrics ?? {}}
| {r.asset.ticker} |
{m.Price ?? '—'} |
|
|
|
{m['YTM%'] ?? '—'} |
{m['Duration'] ?? '—'} |
{m['Rating'] ?? '—'} |
{/each}
{/if}
{/if}