Skip to content

Cost attribution & chargeback

Venturi attributes every AI invocation it can see to the team, project, identity, and budget that owns it — without manual tagging — and turns that attribution into a confidence-scored, auditable chargeback your finance team accepts. This is the wedge capability: it answers which team, which service, which person, which budget is responsible for a given slice of AI spend.

What you get

  • Team-, project-, and identity-level cost breakdowns built automatically from your cloud bill, provider usage logs, and (optionally) request-level events.
  • A calibrated confidence score on every attribution, so finance can tell direct attribution from allocation.
  • A FOCUS v1.2-conformant chargeback export your auditor can reproduce without Venturi.

How attribution works

Venturi links each invocation across the six-layer attribution graph — Invocation → Service → Project → Identity → Organization → budget — and resolves ownership through a three-stage pipeline:

graph LR
  A[Invocation] --> B[Stage A<br/>deterministic resolution]
  B --> C[Stage B<br/>trained inference]
  C --> D[Stage C<br/>cost allocation]
  D --> E[Attribution record<br/>with confidence + evidence]
  • Stage A resolves ownership deterministically wherever your data supports it — direct identity and org mappings, service deployments, and code-ownership signals.
  • Stage B uses Venturi's trained attribution intelligence to infer the most likely owner where deterministic resolution can't reach, always with a confidence score and an evidence basis. If inference is unavailable for any reason, Venturi falls back to a deterministic baseline — your traffic and attribution are never blocked.
  • Stage C allocates fractional cost across resolved owners, conserving 100% of spend. Allocation-derived attributions are capped at lower confidence and never reach the chargeback band on their own.

You don't tag anything. Venturi builds the graph from the data your cloud and identity provider already hold. For the full model, see How Venturi works.

Confidence: what's billable and what isn't

Every attribution carries an operational confidence score, coper, between 0.0 and a deliberate policy ceiling of 0.95. Venturi never asserts certainty. Confidence renders both as a number and as a band:

Band Confidence Meaning In a chargeback?
Chargeback-ready coper ≥ 0.80 Accurate enough to bill on Included by default
Provisional 0.50 ≤ coper < 0.80 One or more candidates, below the billing floor Excluded; visible for context
Estimated coper < 0.50 Weak signal Excluded; visible for context

The 0.80 floor is the single billing floor

coper ≥ 0.80 is the one canonical threshold for chargeback-eligibility. It is the same floor used for the savings-share billing base, so there is exactly one number to reason about. Stage-C-allocated and network-derived attributions are capped at 0.70 confidence and therefore can never enter an accepted chargeback figure — they are shown, but never billed.

Because confidence is calibrated per edge type and per tenant, the score means what it says: an 0.85 is genuinely more likely correct than a 0.62. The distribution of your attributions across these bands is visible on the dashboard, so you can see how much of your spend is chargeback-eligible before you export anything.

Honest unknowns

Venturi distinguishes six output states and surfaces them rather than guessing:

  • deterministically_resolved and strongly_inferred — confident ownership.
  • bounded and ambiguous — a constrained set of possible owners.
  • unknown and not_identifiable — Venturi can see the spend but cannot responsibly assign it.

Unknown spend is never silently allocated and never shown as $0.00 — an unknown cost renders as an em-dash, not a fabricated zero. You investigate coverage gaps through the Unknown Spend Analyzer instead of discovering them mid-audit.

The chargeback export

When you're ready to bill, export a FOCUS v1.2-conformant chargeback file. FOCUS (the FinOps Open Cost and Usage Specification) is the open standard your finance and FinOps teams already use, so the export drops into existing tooling.

  • 64 columns: the 57 FOCUS v1.2 base columns plus 7 Venturi extension columns (ownership state, capture feasibility, time basis, carbon grams, and more).
  • Required cost fields BilledCost and EffectiveCost are always present.
  • Cost is computed on the model actually served, never the model requested, and never from a list price without measured tokens.
  • Only chargeback-ready rows (coper ≥ 0.80) are included by default, so you never bill a team on an attribution you couldn't defend.
BillingPeriodStart,ServiceName,x_OwnershipState,BilledCost,EffectiveCost,...
2026-05-01,Amazon Bedrock,deterministically_resolved,4821.07,4821.07,...
2026-05-01,Azure OpenAI,strongly_inferred,1290.44,1290.44,...
curl -X POST https://api.venturi.systems/v1/exports/focus \
  -H "Authorization: Bearer $ARGMIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "period": "2026-05",
        "scope": "organization",
        "format": "csv",
        "chargeback_ready_only": true
      }'

Reproducible without us

The export is built so your auditor can reconcile the chargeback figure to your cloud bill without Venturi's involvement. Each row reconciles to a billing-period figure, carries its ownership state and confidence, and links back to the evidence that produced it. That audit independence is the point — finance accepts numbers it can verify itself.

For dashboards, scheduled delivery, and the full column list, see Reporting & exports.

Chargeback-line integrity

A chargeback only works if finance can defend it line by line. Venturi builds every exported line so it stands on its own under scrutiny: each line tells you where its cost came from, every dollar on the invoice is accounted for, and any line you bill on can be traced back to the evidence behind it. Below is what each line carries and how to read it.

Every line carries its cost basis

Each chargeback line states whether its cost is estimated or reconciled, and surfaces the controlling reconciliation factor for that line's provider, model, and period — along with where that pairing sits in its reconciliation lifecycle (ESTIMATED, PARTIAL, or RECONCILED). You always know whether a number is a pre-bill estimate or a figure that has already been trued up against the provider invoice, so an early-month estimate is never mistaken for a settled charge.

The whole invoice is dispositioned — nothing silently dropped

For each period, provider, and model, Venturi shows a complete disposition of 100% of reconciled spend in three explicit, labeled buckets:

Bucket What it is In the chargeback?
Chargeback-eligible coper ≥ 0.80 lines, accurate enough to bill Included
Excluded, pending resolution provisional 0.50 ≤ coper < 0.80 cost, shown with its root-cause category Named and footnoted, not billed
Unattributed residual spend Venturi can see but cannot responsibly assign Named and footnoted, not billed

The eligible lines, the named excluded cost, and the residual sum to the reconciled invoice within the same ±5% reconciliation band used everywhere else, so the chargeback foots to the bill without our involvement. You choose the residual-disposition policy — leave it unallocated and footnoted, route it to a named shared cost center, or split it by a rule you set — and your choice is recorded with the export and written to an append-only audit row.

No silent re-labeling

No disposition ever relabels excluded or unattributed cost as attributed, and no sub-floor or unattributed dollar can appear inside a chargeback-ready line. A finance reviewer who asks "what about the other 18%?" sees exactly where it went, by name — never a number that quietly covers only the easy spend.

Every billable line resolves to a calculation receipt

Each chargeback-ready line links — in both the export manifest and the dispute surface — to a calculation receipt: the provenance behind its confidence. The receipt binds the line to the corpus and decision threshold that scored it, and for that line's edge type and tenant it states the calibration method used, the size of the calibration set, and the band's measured calibration error, alongside the two-layer evidence basis. It also says, in plain language, what the confidence band means. If a line's calibration provenance can't be assembled into a receipt, it is not exported as chargeback-ready — confidence you can't trace is never billed.

Calibrated, and capped on purpose

The receipt is why an 0.85 is genuinely more trustworthy than an 0.62. Confidence is still capped at 0.95 — Venturi never claims certainty — and allocation- and network-derived lines remain capped at 0.70, below the 0.80 billing floor, so they appear with full evidence but never enter a billed figure.

Substituted routes are costed against the model actually served

When a request is routed to a different model than the one asked for, Venturi costs the line against the model that actually served it, never the requested one, and flags the route divergence on both the line and the dispute surface. A line whose cost basis is a requested model that differs from the served model is never emitted as a settled charge. So when a department head cross-checks the provider console, the model and the dollars match.

Overturned disputes restate the period — visibly

If a dispute on a line you already billed is overturned, Venturi doesn't quietly rewrite history. The originally delivered export stays immutable. Instead, the next export carries a superseding adjustment line: a signed delta that credits the previously-billed owner and debits the corrected one, linked to the original line, with the full override lineage — who changed it, when, and why. The correction to our internal graph and the correction to your bill always travel together, so a right answer inside Venturi never leaves a wrong charge standing outside it.

Periods finalize on your fiscal calendar

You can mark a chargeback period finalized in step with your fiscal calendar. Before finalization, in-period corrections recompute freely and are clearly labeled provisional. After finalization, the exported figures and their manifest are immutable: any later change — an overturned override, an allocation refinement, a reconciled-cost true-up — is never silently folded back into the closed period. It is carried forward as an explicit, audited amendment line in the next open period, linked to the original period, record, and reason.

Why a closed period stays closed

The canonical accounting trust-breaker is a closed number that quietly changes months later. Venturi's "March" figure does not move in May. If something needs correcting, you see an amendment with a visible marker and a clear reason — the two ledgers stay reconciled, and Venturi stays a system of record.

Energy & carbon, attributed too

The same graph attributes energy and carbon alongside cost. Every priced invocation carries an estimated energy figure (kWh) and carbon figure (gCO₂e) drawn from a catalog of covered models, exported in the FOCUS file and shown on the dashboard energy view. For a model that isn't in the catalog, Venturi returns null, never zero — an unmeasured footprint is honestly marked as unmeasured.

From connection to first chargeback

  1. Connect your cloud. The read-only connector alone produces account- and team-level attribution.
  2. (Optional) Send request-level events for per-call resolution — tokens, cost, latency, and the identity behind each call.
  3. Watch coverage build; review your confidence distribution on the dashboard.
  4. Export the FOCUS chargeback file and hand it to finance.

Typical time-to-first-accepted-chargeback is measured in days, not quarters.