Scrum4Me/docs
Janpeter Visser a1e6ec35e5
feat(PBI-78): cost-analysis widget on insights page (#187)
* feat(PBI-78): cost-analysis data layer (T-902)

- New lib/insights/cost-analysis.ts with 5 query functions:
  getCostKpi, getCostByDay, getCostByModel, getCostByKind, getCacheEfficiency
- Period type: 7d | 30d | 90d | mtd
- Cost formula reused from token-stats.ts (input + output + cache + thinking)
- Cache savings: cache_read_tokens × (input_price - cache_read_price) / 1M
- Plan: docs/plans/PBI-78-cost-analysis-widget.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(PBI-78): cost-analysis UI component (T-903)

- New app/(app)/insights/components/cost-analysis.tsx
- Period selector (7d/30d/90d/MTD) via URL ?period= with useTransition + router.replace
- KPI strip: total cost, avg per day, cache savings, top model
- 2x2 chart grid: daily cost (BarChart), per-model + per-kind (vertical BarCharts), cache efficiency (PieChart)
- Empty state for kpi.jobCount === 0
- Uses MD3 tokens (var(--chart-N), var(--status-done))

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(PBI-78): wire CostAnalysisCard onto insights page (T-904)

- Parse ?period= from searchParams (default 30d, validates against 7d/30d/90d/mtd)
- Parallel-fetch 5 cost queries via Promise.all alongside existing widgets
- New "Cost analyse" section between Sprint Health and Plan-quality
- Existing TokenUsageCard ("Token gebruik" section) stays as sprint detail

verify (lint+typecheck+test) and build pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 12:59:45 +02:00
..
adr docs(adr): ADR-0010 — één product = één repo, cross-product planning later via Initiative-laag 2026-05-03 14:44:14 +02:00
api feat(PBI-74): Zustand product-workspace rearchitecture (Stories 1-8) (#180) 2026-05-10 02:25:19 +02:00
architecture chore: remove prisma-erd-generator and stale erd refs 2026-05-08 14:45:39 +02:00
assets docs: AI-optimized docs restructure (Phases 1–8) (#61) 2026-05-03 03:21:59 +02:00
backlog docs: M12 backlog entry + mcp-integration runbook for idea-jobs (M12 T-517) 2026-05-04 21:45:54 +02:00
decisions docs: AI-optimized docs restructure (Phases 1–8) (#61) 2026-05-03 03:21:59 +02:00
design docs: AI-optimized docs restructure (Phases 1–8) (#61) 2026-05-03 03:21:59 +02:00
diagrams Landing v3: van idee tot pull request + 6 nieuwe screenshots (#127) 2026-05-06 09:05:22 +02:00
docker-smoke Phase 1 — Junk cleanup + front-matter on every doc (#62) 2026-05-03 12:50:35 +02:00
manual PBI-58: Developer manual + in-app /manual page (#148) 2026-05-07 18:00:10 +02:00
patterns feat(PBI-74): Zustand product-workspace rearchitecture (Stories 1-8) (#180) 2026-05-10 02:25:19 +02:00
plans feat(PBI-78): cost-analysis widget on insights page (#187) 2026-05-10 12:59:45 +02:00
qa docs: AI-optimized docs restructure (Phases 1–8) (#61) 2026-05-03 03:21:59 +02:00
recommendations Load/render workspace alignment (#182) 2026-05-10 07:34:58 +02:00
runbooks fix(KIND_DEFAULTS): permission_mode acceptEdits voor idea-kinds + PLAN_CHAT (#172) 2026-05-09 11:33:03 +02:00
specs Sprint: rerun jobs (#176) 2026-05-09 17:19:47 +02:00
api.md ST-1239: Atomische database-migratie — todos naar ideas + droppen todos-tabel (#132) 2026-05-06 12:25:37 +02:00
architecture.md PBI-50: SPRINT_IMPLEMENTATION single-session sprint runner (Scrum4Me-side) (#139) 2026-05-07 13:05:02 +02:00
backlog.md docs(links): fix broken cross-references after restructure (#63) 2026-05-03 12:52:59 +02:00
functional.md docs: AI-optimized docs restructure (Phases 1–8) (#61) 2026-05-03 03:21:59 +02:00
glossary.md docs: sync data-model, glossary en specs met huidig schema (#164) 2026-05-08 08:16:44 +02:00
INDEX.md feat(PBI-78): cost-analysis widget on insights page (#187) 2026-05-10 12:59:45 +02:00
md3-color-scheme.md docs: AI-optimized docs restructure (Phases 1–8) (#61) 2026-05-03 03:21:59 +02:00
obsidian-authoring.md chore: remove prisma-erd-generator and stale erd refs 2026-05-08 14:45:39 +02:00
pbi-dialog.md Phase 1 — Junk cleanup + front-matter on every doc (#62) 2026-05-03 12:50:35 +02:00
personas.md docs: AI-optimized docs restructure (Phases 1–8) (#61) 2026-05-03 03:21:59 +02:00
product-backlog.md docs: AI-optimized docs restructure (Phases 1–8) (#61) 2026-05-03 03:21:59 +02:00
realtime-smoke.md Phase 1 — Junk cleanup + front-matter on every doc (#62) 2026-05-03 12:50:35 +02:00
story-dialog.md Phase 1 — Junk cleanup + front-matter on every doc (#62) 2026-05-03 12:50:35 +02:00
task-dialog.md Phase 1 — Junk cleanup + front-matter on every doc (#62) 2026-05-03 12:50:35 +02:00
test-plan.md docs: AI-optimized docs restructure (Phases 1–8) (#61) 2026-05-03 03:21:59 +02:00