The web app
Overview
The FinOps home. Portfolio cost, products in production, recent CI runs across the organization, budget at risk, and governance failures — all computed from the latest authoritative run of each deployment.
Local runs never appear here. A developer experimenting on a laptop cannot move the number an executive is reading, which is what makes local runs safe to encourage.
Products
Every data product as a card: status, projected monthly cost, a sparkline of recent runs, and its guardrail state. This is the board the whole method points at.
| STATUS | MEANS |
|---|---|
| draft | Registered, not yet being built. |
| development | Under active development. |
| staging | Deployed to a pre-production environment. |
| production | Live, and spending real money. |
| archived | No longer maintained. Kept for its history. |
Products with no committed budget are flagged. Nothing about cost can fail a build for them, and the flag is what stops that being mistaken for compliance.
Product detail
Per product: the baseline, the budget, its deployments, and its estimate history.
- Baseline — the committed estimate, its P50 and P80, who agreed it and when. Superseded estimates stay readable with the reason they were replaced.
- Deployments — one per environment, each with its own projected cost, actual month-to-date spend and run history.
- Setup — the identity block to paste into a second bundle, and every location this product reports from. Two entries where you expect one means a
finowl.ymlwas copied.
Deployment drill-down
Per environment, and the most detailed view in the product.
- Projected monthly cost, with the delta against the previous run.
- Cost breakdown by jobs, pipelines and warehouses.
- Guard results, rule by rule, for both cost and governance.
- The resource diff table — what this run changed and what it cost.
- Full CI run history.
- A separate local runs table of developer previews, with names and iteration counts. Visible effort, zero interference.
Estimator
The conversational estimator for pre-development estimates. Describe the project — volumes, pipelines, users — and receive a structured estimate: a one-off build cost, a recurring monthly cost, a P50 and a P80, grounded in current Databricks and Azure pricing.
Estimates are saved with the conversation and the assumptions that produced them, and can be revisited as the project matures. A figure you already hold can be entered by hand instead and behaves identically from there. See Estimate.
Policies and Rules
Two screens. Rules is the catalogue — one check, its parameters, its scope and its severity. Policies groups rules and points them at environments.
Account-level policies bind every organization; organization policies refine them locally. The CLI always receives the merged, deduplicated result. Full detail in Policies and rules.
Issue tracking
A run with violations can raise a Jira issue in one click, pre-filled with the run, the failing rules and the cost delta. Cost regressions get triaged in the same backlog as everything else, rather than in a separate process nobody checks.
Settings
| SECTION | HOLDS |
|---|---|
| Members | Your organization's users and pending invitations. Access is invite-led: an admin invites teammates by email. Enterprise accounts can bring their own identity provider. |
| CI connections | The pipelines allowed to report, registered once by repository and issuer. This is what makes keyless CI authentication safe. |
| Environments | The environments your organization uses, and how CLI targets map onto them. Policies target these names. |
| Integrations | Azure subscriptions and the nominated Databricks workspace, for actual cost. |
Optimize
Marked coming soon. Agentic analysis of your IaC that proposes concrete code changes for cost gains, rather than reporting that a number is high and leaving the rest to you.