Self-hosted multicloud FinOps · FOCUS v1.2

Cloud cost that reconciles to the cent.

FinOpsRelay brings AWS, Azure, Google Cloud, Kubernetes and AI spend into one FOCUS-shaped ledger, then shows the formula and the SQL behind every number it reports.

$ docker compose up --build
finopsrelay.local/#/overview
FinOpsRelay Home screen showing month-to-date effective cost, a stacked cost history by provider, and a Smart Summary of top movers
Ingests AWS CURAzure Cost ManagementFinOps Hub exportsGoogle Cloud BigQuery exportKubernetesSnowflakeNutanixVMwareMicrosoft 365Bedrock · Foundry · Vertex AI
Product

One ledger, every question a FinOps team gets asked.

Pick an organizational unit and every figure in the application narrows to the accounts it owns. The filter is applied inside the query, so no dashboard can forget it.

AI & Tokenomics

Know what a million tokens costs you.

Generative-AI spend by provider, service and model, with cost per million tokens tracked month over month and a model-to-application cost flow.

  • Cost per million tokens recomputable from every row
  • FinOps-for-AI posture and benchmark scorecards
  • Bedrock, Azure AI Foundry and Vertex AI views
AI & Tokenomics screen with AI spend, cost per million tokens and six-month growth tiles
Anomaly Detection

Every spike drills into the day that caused it.

Ninety days of cost anomalies ranked by impact, where impact is incurred cost minus expected cost, read straight from the facts.

  • Breakdown by provider and account
  • Triage status on every anomaly
Anomaly Detection screen with total cost impact and anomalies by provider
Forecasting & Budgets

Project 36 months and see where budget breaks.

Forecast monthly, weekly or daily with growth factors, compare against a budget, and save snapshots you can replay later.

  • Level shifts detected and fitted around
  • Weekday seasonality on daily projections
  • One-off charges kept apart from the trend
Forecasting screen with projected total, next 12 months and actual versus projected effective cost
Allocation & Chargeback

Close the allocation gap before chargeback.

Tax, credits and payer-level commitments belong to no team. Reallocation rulesets spread them onto the groups that benefit, with a preview first and a one-call undo.

  • Every movement nets to zero, read back from the database
  • Tenant and dimension totals never move
Cost Reallocation screen listing applied rulesets with net effect of zero
Optimization & Realized Savings

Recommend savings, then prove you banked them.

Rightsizing, commitment purchases and waste are sized from real uncovered spend. Realized Savings splits what you kept into rate and usage optimization, and it reconciles with Cost History.

  • Fit status computed against your efficiency targets
  • Commitment inventory, coverage and utilization
Realized Savings screen with monthly stacked savings by type
How it computes

Shows its math.

Measures are the documented formulas, and reports are plain SQL against named datasets. Queries written against AWS CUR or FOCUS column names run unchanged.

Measures

Effective Cost       = Cost + Amortized Cost
                       − Upfront Fees − Prepays
Commitment Coverage %= on-demand equiv. of covered
                       ÷ total on-demand equiv. × 100
Effective Savings Rate= savings from all discounts
                       ÷ on-demand equiv. spend × 100
Realized (Downsizing)= (daily before − daily after)
                       × days in month

Report query

SELECT BillingPeriod        AS "Month",
       ServiceProviderName  AS "Provider",
       SUM(EffectiveCost)   AS "Cost"
FROM   MULTICLOUD_FOCUS
GROUP BY 1, 2
-- SELECT only · one statement · read-only
-- connection · wall-clock deadline
Proof

The checks that run on every build.

A test suite asserts the things that would otherwise rot quietly. A sample from the ledger:

Hourly, daily, weekly and monthly grains reconcile exactly
List price > on-demand equivalent > effective cost, every month
Reallocation conserves the total to the cent
Each anomaly's impact equals incurred minus expected
Allocating container cost by request charges more than by usage
Unsafe SQL is rejected, and the read-only connection refuses writes anyway
A record in one organizational unit returns 404 from another
No policy action is ever dispatched automatically
646API and invariant checks
229frontend checks
127unit tests
Deploy

One container. Your network. Your data.

No build step

Python standard library and vanilla ES modules. SQLite is the analytics engine. Starts with one command.

Direct cloud connections

Connect Azure, AWS and Google Cloud accounts, or read Cost Management exports straight from blob storage.

Enterprise sign-in

SAML SSO, SCIM provisioning, role-based access and Azure Container Apps Easy Auth.

Credentials stay put

Stored server-side and never returned to the browser. Reads report only that credentials exist.

Get started

See your own numbers reconcile.