{#if data.error}
⚠ {data.error}
{/if} {#if data.marketContext} {/if} {#if strongEtfs.length || strongBonds.length}
✅ Strong Buy Pass both Market-Adjusted and Fundamental gates
{#if strongEtfs.length}

ETFs

{strongEtfs.length}
{#each sorted(strongEtfs) as r} {@const m = r.asset.displayMetrics ?? {}} {/each}
Ticker Price Mkt-Adj Graham Expense Yield AUM 5Y Ret Score
{r.asset.ticker} {m.Price ?? '—'} {m['Exp Ratio%'] ?? '—'} {m['Yield%'] ?? '—'} {m['AUM'] ?? '—'} {m['5Y Return%'] ?? '—'} {r.inflated.scoreSummary}
{/if} {#if strongBonds.length}

Bond ETFs

{strongBonds.length}
{#each sorted(strongBonds) as r} {@const m = r.asset.displayMetrics ?? {}} {/each}
Ticker Price Mkt-Adj Graham YTM Duration Rating Score
{r.asset.ticker} {m.Price ?? '—'} {m['YTM%'] ?? '—'} {m['Duration'] ?? '—'} {m['Rating'] ?? '—'} {r.inflated.scoreSummary}
{/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}
👀 Watch List Pass one gate — monitor for entry
{#if watchEtfs.length}

ETFs

{watchEtfs.length}
{#each sorted(watchEtfs) as r} {@const m = r.asset.displayMetrics ?? {}} {/each}
Ticker Price Signal Mkt-Adj Graham Expense Yield AUM 5Y Ret
{r.asset.ticker} {m.Price ?? '—'} {m['Exp Ratio%'] ?? '—'} {m['Yield%'] ?? '—'} {m['AUM'] ?? '—'} {m['5Y Return%'] ?? '—'}
{/if} {#if watchBonds.length}

Bond ETFs

{watchBonds.length}
{#each sorted(watchBonds) as r} {@const m = r.asset.displayMetrics ?? {}} {/each}
Ticker Price Signal Mkt-Adj Graham YTM Duration Rating
{r.asset.ticker} {m.Price ?? '—'} {m['YTM%'] ?? '—'} {m['Duration'] ?? '—'} {m['Rating'] ?? '—'}
{/if} {/if}