Reporting & exports¶
Use this guide to build a governed dashboard view, drill from an aggregate to its evidence, schedule delivery, or generate the 64-column FOCUS v1.2 chargeback export. Every result retains its metric definition, time basis, method, confidence, evidence, freshness, degradation state, and export eligibility.
Dashboards¶
Dashboards are composed from a governed metric catalog: every metric has a single canonical definition, unit, method label, and confidence semantics. They render on Overview and on the capability pages of the six app domains. A report saves the filters, sort, and columns from one of those pages so the delivered result matches the dashboard view.
Because metrics are computed once from authoritative events and reused everywhere, the numbers reconcile:
One definition, one number
Two tiles showing “total AI spend” for the same scope and period reconcile to
the same figure. A metric never has two divergent definitions. Each tile names
its metric, its time basis, its method (estimated or reconciled), and its
confidence band, so you always know exactly what you are reading.
Filter and slice every analytic surface by time range and basis (event time, current state, or comparative view), team, model, provider, output state, confidence band, pathway category, capture-feasibility class, anomaly category, and degradation state. Save a filter-plus-sort-plus-column configuration as a named, reusable saved view, set it as your default, and share or publish it to your team.
Drilldown that keeps its provenance¶
Any aggregate drills down to its constituents and ultimately to the individual attribution record and its evidence drawer, and the interpretation metadata travels with you at every level:
- stage origin, output state, confidence (
coper) and confidence band - evidence basis, model version, degradation state, freshness
- export eligibility
Drilling from an organization total -> team -> service -> individual invocation never drops this metadata. The leaf you land on shows the same decision record that the dispute and override surfaces use, so what you report and what you can defend are the same thing.
Scheduled reports¶
Define a report once and have Venturi deliver it on your cadence. Scheduled reports follow a managed lifecycle:
- Reports fire on your business-calendar cadence and record every run.
- A transient delivery failure retries with backoff before alerting; the schedule is never silently dropped.
- Pausing halts future runs without deleting history; archiving retires a report while preserving its record.
Reports can target any of the 19 anomaly categories and the budget-threshold events (75% / 100% / 150%), so FinOps receives a periodic digest of anomalies and breaches with deep links to triage. A report’s rows always match the live Governance view. See Budgets & alerts for the alerting side of the same data.
The 19 anomaly categories
Venturi assigns each detected anomaly a single category from this closed set. The same set drives the anomaly category filter on every analytic surface.
Categories 1 to 15 use statistical and structural detection. Categories 16 to 19 use deterministic integrity rules.
| Detection path | Categories |
|---|---|
| Statistical / structural | Orphan cost; orphan telemetry; shared key; routing mismatch; timestamp skew; key-rotation overlap; provider classification mismatch; IAM-only identity; gateway bypass; token-count discrepancy; self-hosted GPU allocation; cross-cloud attribution; credit-based billing; namespace-team mismatch; identity churn |
| Integrity rules | Missing audit log; shadow IT; agent chain; uncataloged model |
Dashboards and tiles also export on demand to PDF, PNG, or CSV, and an exported
snapshot always stamps its generation time, time basis, and estimated /
reconciled labels, so a screenshot is never mistaken for live truth.
The FOCUS export¶
The chargeback export conforms to FOCUS v1.2 (the FinOps Open Cost and Usage Specification), so it lands directly in the FinOps tooling your finance team already runs.
| Property | Value |
|---|---|
| Columns | 64: the 57 FOCUS v1.2 base columns plus 7 Venturi extension columns. |
| Venturi extensions | x_OwnershipState, x_, x_TimeBasis, x_CarbonGrams, x_EnergyWh, x_ServedModel, and x_. |
| Required cost fields | BilledCost and EffectiveCost are always populated. |
| Cost basis | Computed on the model actually served, never the requested model, and never a list price without measured tokens. |
| Rows included | Export-eligible rows only: chargeback-ready (coper >= 0.80) results with degradation_state none, the attributions accurate enough to bill on. A chargeback file never contains a sub-floor or degraded row. |
| Energy & carbon | Per-row energy and carbon for cataloged models; null, never zero, for models outside the catalog. |
Creating the export requires the exports:write scope; polling the job
and downloading the file require exports:read. Authenticate with a
short-lived access token (valid for 60 minutes or less) that carries those
scopes, obtained through the
OAuth2 client-credentials flow.
To use an API key instead, send it in the X-API-Key header. An API key is
long-lived until it expires or you rotate or revoke it, so issue it with
only those two scopes, set an expiry, and rotate it under
Settings / Admin / Credentials. Replace <your-venturi-instance> with
api.venturi.systems on the SaaS tier, where the shared hostname resolves
your tenant from the credential and still applies every tenant and
residency boundary; self-hosted deployments use their own instance host.
curl -X POST "https://<your-venturi-instance>/v1/exports/focus" \
-H "Authorization: Bearer $VENTURI_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"format": "focus",
"period": { "from": "2026-05-01", "to": "2026-05-31" },
"group_by": ["owner", "provider"]
}'
The request returns a job handle. Poll it and download the file as described in Creating exports.
The chargeback file contains export-eligible rows only. To review the rows
it leaves out for falling below the 0.80 floor, add
"include_ to the request body. The job’s result is then
a ZIP archive holding the unchanged chargeback file and a separate
provisional review file of the sub-floor rows, each row carrying its coper
in x_. The provisional review file is never a
chargeback or billing basis.
Define the FOCUS export as a scheduled report to have a fresh chargeback file delivered every billing period on your business-calendar cadence, with run history and delivery retry handled for you.
Independent reconciliation
The FOCUS export lets your auditor reconcile the chargeback figure to your cloud bill independently. Each row reconciles to its billing period, carries its ownership state and confidence, and links to the evidence that produced it. No export ever contains prompt or completion content, and currency display always round-trips losslessly to the base currency that reconciliation runs in.
FOCUS version
The chargeback export is pinned to FOCUS v1.2, the export contract validated end to end across Venturi’s product, pricing, and audit surfaces. Each export records its schema version in its manifest.
Tenant data export¶
Beyond chargeback, your tenant’s data is exportable for portability and data-subject rights, and a tenant export reconciles to its own manifest: what you asked for is exactly what you receive, with nothing out of scope and no content captured. See Trust & security for data handling and rights.
Related capabilities¶
- Cost attribution & chargeback: what the chargeback export reports on.
- Budgets & alerts: the alerting side of anomaly and threshold reporting.
- Adoption intelligence: cohort dashboards and scheduled adoption reports.
- Optimization & governance: governance metrics and the intervention lifecycle.
Sign in to send feedback. Opens in a new tab.
Copy page details
Docs feedback: Reporting & exports
Page: https://docs.venturi.systems/capabilities/reporting-and-exports/