What pages do owners visit most?
Hypothesis: Home (standings), Team roster, Auction, Activity feed.
Source: PostHog pageviews · Status: tracking live.
James Chang / Work / The Fantastic Leagues / Product metrics
Fantastic Leagues · Product metrics · Last Updated
Product analytics powered by PostHog. Eight AI-powered features built on Google Gemini (primary) and Anthropic Claude Sonnet (fallback). A velocity chart of every session from scaffold to production.
Two models, one purpose: produce league-context-aware fantasy baseball analysis that reads the owner's league, not a generic playbook.
League-context prompts are large and regenerating them every page
view would be expensive and slow. Instead, the MCP MLB proxy caches
MLB data in SQLite (shared across all leagues); AI responses are
cached per (team_id, feature_key, data_hash) tuple so
owners see near-instant responses on repeat views.
33 tracked sessions since January 2026, 292 items completed. Peak efficiency was Sessions 21–23 at 30 items/session (the code-review + auth push).
Average: 8.8 items per session · Peak: 31 items (S21–23) · Growth: +1,033% (Session 1–2 to Session 32)
Five tracking metrics live, two planned. Event schema is deliberately narrow so it stays useful instead of devolving into noise.
The point of analytics is to answer specific product questions, not to accumulate dashboards. These four are the active ones.
Hypothesis: Home (standings), Team roster, Auction, Activity feed.
Source: PostHog pageviews · Status: tracking live.
Measurement: WebSocket bid events, nomination rate, session duration.
Draft Board log already tracks per-lot bid history.
Source: auction bid history + PostHog · Status: tracking live.
Measurement: proposal rate, vote response time, waiver claim frequency.
Low adoption may indicate UX friction.
Source: transaction events + PostHog · Status: tracking live.
Measurement: PostHog viewport data shows device breakdown.
Pages with high mobile traffic but poor engagement need responsive work.
Source: PostHog device properties · Status: collecting data.