This skill reads Avantis's two flagship value ETFs straight from TickerTrace's
per-fund endpoint (/fund/<TICKER>) and lays out what changed under the hood,
grouped the way the value factor actually moves:
- AVUV — small-cap value ($12.5B, ~794 holdings) — the flagship.
- AVLV — large-cap value ($3.2B, ~272 holdings).
This is the per-fund holdings view that the daily stock-recap skill does not pull. stock-recap only hits TickerTrace's cross-fund aggregates (
/briefing,/institutional,/divergences). This skill is the deep, by-weight, per-fund value read.
What it groups, and why
For each fund (small tier → large tier), three lifecycle buckets:
- 🆕 New / Exited — positions TickerTrace flags
type=NEWorREMOVED. Passive Avantis funds rarely open or close a name day-to-day, so when they do it's meaningful. This is the literal "new adds." - 📈 Conviction tilt — active over/under-weighting, inflow-stripped.
Every name in an inflow day shows a positive
sharesDelta(new money buys the whole book pro-rata), so raw adds are noise. We compute each name's share growthsharesDelta/previousShares, take the fund-wide median as the inflow tide, and rank by the excess over that tide. Positive excess = the fund is genuinely leaning into the name beyond mechanical inflow; negative = leaning out. - 🔥 Up-streaks — names on multi-day winning runs (TickerTrace
streaks). This is the cleanest momentum signal — independent of fund mechanics entirely.
Then the payoff, 🔗 cross-tier synthesis:
- Sector convergence — sectors that are streaking and/or tilting up in both the small and large fund. (Exact-ticker overlap is rare because the funds hold different cap tiers, so convergence is read at the sector/theme level — e.g. "transports leading in both.")
- Flow tell — all-buys with zero trims = inflows into value (creations, risk-on); a genuine mix of adds and trims = active rebalancing.
How to run it
node "$HOME/.claude/skills/value-complex/scripts/gather.mjs"
- Writes
runs/<date_time>/report.md+raw/fund_AVUV.json,raw/fund_AVLV.json. - Prints the report to stdout and a final JSON line with
{reportPath, rawDir}. - No key needed —
/fund/<TICKER>is public on TickerTrace. Presents a browser User-Agent (the edge WAF 403s a bare Node UA). ~5–10s. - Override the base with
TICKERTRACE_API_URL; funds withVC_FUNDS=AVUV,AVLV,AVMV.
Present it to Mike
Read the generated report.md and give a tight read, in this order:
- The flow tell first — are both funds taking inflows (value getting bought) or net trimming? That frames everything.
- New / Exited names per fund — rare, so always call them out by name.
- Conviction tilt — the inflow-stripped over-weights. These are the names the fund is actually leaning into, not just buying with the tide. Name the top 3–4 per tier and what sector they're in.
- Streaks — the momentum leaders, longest runs first.
- The cross-tier theme — the one or two sectors strong in both small and large value. This is the headline ("the whole value complex is leaning into X"). Tie it to the tape: what's it rotating out of (usually mega-cap growth).
Notes / gotchas
weightDeltais not a clean signal on its own — it blends price drift with share-count change. The report leads with the inflow-stripped excess instead; it shows weightDelta as secondary context only. Don't present weightDelta as "conviction" without the excess check.- Data is daily and can lag — the report prints TickerTrace's
asOfDate; surface it so Mike knows how fresh it is. - Cross-tier convergence is sector-level, not ticker-level — small and large funds rarely share a ticker; agreement shows up as a shared theme.
- Each run is a point-in-time snapshot under
runs/; nothing is overwritten and old folders are safe to delete (gitignored under.claude/).