AI cost/ROI page: pricing table, cost per call, Cost tab, ROI endpoint
- templates/web/pricing.py: pricing table with source and as-of date; cost_for_call
(input rate + (output + thinking) at output rate, long-context above threshold;
unknown model raises naming the known models).
- Cost tab: coverage pill, total/this-month/tokens tiles, month-by-month table,
per-run tokens and cost ("not priced", never $0), by-hand panel with editable
assumptions labelled as such.
- Contract: RoiRun and GET /roi; optional GET /models and POST /runs/{id}/retry.
- SKILL.md: cost page wiring, model picker and retry-on-other-model as optional sections.
- Tests: test_pricing.py self-check, page_check_ai/test_ai_cost.py.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8951ac05a5
commit
9dcdd8f572
11 files changed
+392
-6
No files matched your search
+4
-1
@@ -25,9 +25,12 @@ uv run --with pytest --with playwright pytest tests
|
||||
- `page_check_ai/`: **Seam 1, AI web page.** Builds the React starter with npm
|
||||
(filled with test values, in a temp folder that keeps `node_modules`), serves it with
|
||||
its own `server_stub.py`, and checks bands, band filters, drafts, the approve gate
|
||||
and "page X of Y", plus every no-AI case. Tests set run and review state on the stub
|
||||
"page X of Y" and the cost page (spend tiles, coverage pill, month breakdown,
|
||||
by-hand assumptions), plus every no-AI case. Tests set run and review state on the stub
|
||||
directly (the `stub` fixture). To check a generated dashboard folder instead, set
|
||||
`PAGE_CHECK_AI_DIR=path/to/dashboard`. Needs npm on PATH, else it skips.
|
||||
- `test_pricing.py`: the AI cost function (normal, long-context, thinking tokens,
|
||||
unknown model).
|
||||
- `test_reference_scan.py`: no patient data, internal IPs, credentials or keys in any
|
||||
bundled file, and every Superbill extract carries an `EXAMPLE ONLY` banner.
|
||||
- `evals/`: **Seam 2.** Runs the skills on a fixture project with `claude -p`,
|
||||
|
||||
Reference in new issue
Block a user