Authenticated shell only — wallet, rewards, analytics land in later prompts
Shell: no fake backend
Authenticated shell
Dashboard — shell only
Shell exists for future features: wallet is points (not cash), rewards, analytics, settings, notifications. No business logic in Prompt 1 — no fake balances, no fake portfolio.
Points balance
—
Server-authoritative only
100 pts = $0.01 • From RewardConfig
Total Challenge Spend
—
Derived from Challenges + FundedAccounts — never stored duplicate
Cumulative Portfolio Result
—
Payouts − challenge costs • Same formula as Net Value card
Cross-cutting rules (enforced)
isSampleData:true pre-launch — never let sample look real after Firebase live
One collection, many views — no second firm schema
Points, never cashback in field names + UI copy
Server-authoritative fields only via Cloud Functions (Prompt 12 §A4) — client writes rejected