Spend · Billing outcomes
Billing outcomes
Hand a client a one-page invoice that defends every billable AI minute. Per-client / contractor invoice export (CSV + print-to-PDF), proof-of-work line items, consent-mode watermark, outcomes panel. Reuses /api/billing/by-account.
See it in motion
Where to find it
- Localhost:
/billing-outcomes.html?repo=<id> - API:
GET /api/billing/per-client/outcomes?repo=<id> - Keyboard: ⌘ K then
invoice - Sidebar: Insights → Billing outcomes
What it does for you
One line item per billable session.Each row: date, session, source tool, model, tokens, and cost (the session's tracked LLM API spend). The proof-of-work column ties the row to what the session shipped. The client sees the work, not the tooling.
Consent-mode watermark on every export.Every export carries a consent-mode watermark (strict, full, or mixed) so the recipient knows which consent states are included. Off-prem clients get an unambiguous trail.
CSV + print-to-PDF, no SaaS dependency.The export is local - CSV for accounting, browser print-to-PDF for the email attachment. No third-party invoice service in the loop.
Configure
Each session's cost is its tracked LLM API spend, summed from raw token counts; there is no per-developer or contractor rate to configure. The outcomes column reads from the matching session's commit message - write a scoped commit, get a scoped line item.
Use it well
At the end of the billing cycle, filter by client + date range. Skim the outcomes column - every line should make sense to the recipient. If a row is vague, open the session detail and add the missing scope to the commit; re-export.