--- type: project-doc parent: "[[Tia]]" status: verified tags: [tia, decisions] --- # ⚖️ Tia — Key Decisions > Pulled from the project memory files. Full entries in [[Decision Log]]. 1. **Derived usage, never accumulated** ([[Decision Log#TD-001]]) — storage = live SUM; pending excluded. 2. **`tier` is the only plan column** ([[Decision Log#TD-002]]) — payment behind `isPaidFamily()`. 3. **Migrations via hot-apply + `Date.now()` rule** ([[Decision Log#TD-003]]) — after Drizzle silently skipped 0003–0010. 4. **R2 served through `/api/img` proxy** ([[Decision Log#TD-004]]) — Cloudflare bot-mgmt 503'd cross-origin imgs. 5. **(marketing) vs (app) route groups** ([[Decision Log#TD-005]]) — keep `/` static; dashboard at `/home`. 6. **Downgrade = freeze, not delete** — existing members keep roles; only new invites blocked. 7. **Pre-aggregate analytics with CTEs** — the engagement query was a cartesian blow-up; fixed by per-table CTEs to avoid 500s on real data. ## Related [[Tia]] · [[Tia - Architecture]] · [[Decision Log]]