Reports overview
Cost trends, breakdowns, and the Cost Flow Sankey; how to see where money goes.
ZopNight’s Reports section is the answer to “where is the money going?”; and to the harder question of “where is the savings coming from?” Costs come from your cloud billing APIs when available, and from ZopNight’s hourly calculator when they don’t. Either way, every report uses the same source of truth so totals reconcile across pages.

Cost Reports → Summary; headline spend and savings KPIs over the cost-and-savings trend.
Two cost sources
This matters because mixing them silently is a common source of “the numbers don’t match” support tickets.
| Source | When ZopNight uses it | What it is |
|---|---|---|
| Billing cost | When every cloud account in the org has a successful billing sync | Real spend from AWS Cost Explorer / Azure Cost Management / GCP BigQuery. Azure uses amortised cost so reservation and savings-plan purchases are attributed per resource per day. |
| Rack rate | When any account is missing billing sync | Calculated from the pricing APIs × hours in Running state. Useful before billing is wired up; less accurate for accounts with discount commitments. |
ZopNight resolves which one to use on every aggregate query; there’s no per-row mixing. The summary response includes a costSourceLabel field (“Unblended Cost” or “Rack Rate”) that drives all UI labels so you always know which number you’re looking at.
Trends
The headline chart on the Reports page. Cost and savings over time at hourly, daily, monthly, or yearly granularity.
| Control | What it does |
|---|---|
| Time range | Last 7 / 30 / 90 days, or a custom range |
| Scope | Org-wide, a specific group, or a specific resource |
| Granularity | Hourly / daily / monthly / yearly. Defaults are auto-picked based on the chosen range. |
| Compare prior | Overlay the same range one period back |
The chart shows two stacked series: calculated cost (rack rate) and actual cost (billing). When billing sync is healthy, calculated drops to zero; the chart shows pure billing. When billing is missing, calculated carries the whole bar.
Hover any point to see the exact dollar value, change percentage vs prior period, and an anomaly marker if cost anomaly detection flagged it.
Resource Flux
How many resources came in, went out, and remained active in the selected range. Pairs with Trends to answer “is cost up because resources grew, or because the same resources got more expensive?”
- Resources added in range
- Resources removed in range
- Resources active throughout
Same shape for resource groups.
Provider breakdown
Spend split by cloud provider (AWS, GCP, Azure), then by account, then by region. Hierarchical, expandable.
This is the right view when you want to answer “which cloud is most of our spend on?” before drilling into resource-level detail.
Resource cost breakdown
Cumulative cost per resource (lifetime, not period). Sortable by cost descending; top-of-list resources are your fattest spenders.
Each row includes provider, region, type, and any attached schedules or budgets. Click a row to jump to the resource detail drawer.
CSV export is supported on this view; useful for sharing the cost waterfall with finance offline.
Cost Flow Sankey
The Flow tab on the Cost Breakdown card renders the period’s spend as a four-column Sankey diagram. The Sankey is the filter surface; click any node or link to narrow the view; breadcrumb chips above the chart show the drill path.
Layouts
Six layouts pivot the same data through different dimension chains. Switch via the Layout dropdown.
| Layout | Use when you want to see… |
|---|---|
| Provider → Account → Type → Team (default) | Standard FinOps view: cloud bill split by ownership |
| Provider → Account → Service → Team | AWS service-level spend (EC2 vs RDS vs S3) per team |
| Provider → Region → Type → Team | Multi-region spend distribution |
| Provider → Account → Purchase → Team | On-demand vs reserved vs spot vs savings-plan split |
| Account → Service → Purchase → Team | Detailed account-level breakdown |
| Account → Type → Resource → Team | All the way down to individual resource cost |
Overlays
Two header toggles add visual annotations:
- Savings: red stripe on links and nodes proportional to reclaimable spend. When the hovered node’s dimension matches a recommendations filter (resource type, cloud account), the inspector shows a “$X reclaimable” callout that deep-links to the matching recommendations view.
- Unattributed teams: highlights flows ending in teams marked Unattributed. Useful for finding cost without an owner.
URL state
All view state (preset, drill chain, overlays, date range) lives in the URL. Copy-paste the URL to share the exact view with a teammate. No “but I was looking at the FinOps preset for Q2 in US-East” follow-ups.
Freshness
All breakdowns are served live from your current cost data; there’s no scheduled projection to wait on, so the UI shows “Live data” for every variant.
Budgets
Per-team and per-group budgets show up on team detail pages and group detail pages. Status is computed live from cost records; green (on track), yellow (over alert threshold), red (over budget). Threshold-crossing notifications fire from the cost-and-rollup cron.
See Resource groups for group budget configuration.
Where to go next
- Showback: cost attribution by team and by tag
- Cost anomalies: the always-on detector that watches for spikes
- Recommendations: what to do about the costs Reports surfaces