Every cloud bill,
one standard, one owner.
FinOps ingests FOCUS-conformant billing data from every provider you use — any FOCUS version, any column-naming vintage — validates it, and assigns every dollar to the business unit that spent it.
FOCUS is a standard. Getting there still isn't.
Providers export FOCUS at different versions with renamed columns and inconsistent conventions. Even once the data lines up, nothing assigns it to a business unit — and nothing tells you if a re-upload just quietly overwrote last month's numbers.
FOCUS, several versions at once
Exports range from FOCUS 1.0 through 1.4, with renamed fields along the way — normalizing that by hand doesn't scale past your second provider.
Spend without an owner
Cost data alone doesn't say which business unit drove it — someone still has to define, maintain, and trust that mapping as the org changes.
Numbers you can't verify
Re-uploading a period silently overwrites the last import in most tools, with no record of what changed, when, or who signed off on it.
Ingest. Allocate. Verify. Report.
FinOps sits between your billing sources and your reporting, so every downstream number is built on the same validated, attributable data.
Upload FOCUS exports safely
Cost and Usage, Billing Period, Contract Commitment and Invoice Detail data are validated on the way in — FOCUS 1.0 through 1.4 are all accepted and normalized to one schema. If an upload overlaps data already on file for that provider and period, ingestion pauses until someone explicitly decides whether to keep, ignore, or replace it — nothing is overwritten silently.
Assign cost with rules, not guesswork
Rules match spend to a business unit by resource ID or tag, with priority-based conflict resolution and optional start/end dates so allocation can evolve over time. Multiple rulesets can exist side by side, so a new allocation approach can be tested against real historical spend before it becomes the one everyone reports against.
Preview before you trust it
Every rule can be previewed against a single resource, or evaluated against real ingested spend to see exactly which resources it matches and how much cost is at stake — before anyone relies on it in a report.
Cost per business unit, every month
The core report always breaks spend down per business unit per calendar month, never a single rolled-up number, with a choice of cost metric — effective, billed, or list cost — and automatic currency conversion for multi-currency organizations.
Built for people who have to answer for the numbers.
Every change that affects cost allocation is recorded, every original file is kept, and access runs through the identity provider you already trust.
Append-only audit log
Every change to business units, rules, users and API keys is logged with who, when, and the exact before/after values — and the log itself cannot be edited or deleted, even by an administrator.
Original files, always on hand
Uploaded FOCUS files are never deleted from storage and can be re-downloaded at any time — every figure in a report traces back to a source file, not a black box.
SSO, and single-tenant by design
Sign-in runs through your existing identity provider via OIDC. Each deployment is single-tenant — your data is never in a shared database with anyone else's.
Run it your way.
FinOps is delivered as containers either way — the only question is who operates them.
Managed by StackWorks
- We run and operate FinOps for you — upgrades, backups, and FOCUS-version support included.
- Your data is ingested over secure, scoped connections to each provider.
- Fastest way to get from raw billing data to allocated cost.
Self-hosted
- Deploy FinOps into your own Kubernetes cluster and keep billing data inside your infrastructure.
- Works with the object storage you already run — S3, GCS, Azure Blob, or Ceph.
- Fits teams with strict data-residency or network isolation requirements.
See your cloud spend in one format.
Tell us about your providers and how you'd like to run FinOps — we'll show you what your data looks like normalized into a single FOCUS dataset.