Skip to main content
Your progress
0 of 6 complete0%
T0 / M0.1 / L3 OF 5 / Operator LEVEL / 7 min

Granularity vs. timeliness: the trade-off you didn't choose

Outcome

By the end of this lesson, you will be able to explain why every cloud bill lags real time, usually by a day or more, and pick the right granularity band for any cost question.

New to the cloud? The optional track Cloud, from zero covers the basics first.


PrerequisitesL1, L2
Time7 minutes

1. Concept

Every cloud bill arrives late, and all three big providers (AWS, Google Cloud and Microsoft Azure) are late in the same way.

Usage events (an hour of a server running, a gigabyte stored) are measured, then priced against the rate card (the provider’s published price list), then checked against any commitments you have bought (promises of a year or more of usage in return for a lower rate), and only then written to the bill. That pipeline takes hours, and the numbers settle a day later.

The delay is the price of an accurate bill rather than a flaw. Make the bill publish faster and something has to give. The charge gets attributed to the wrong resource. A commitment gets applied to the wrong usage. Or last night’s figures quietly change this morning, as late events arrive.

Two words run through this lesson. Granularity is how finely the data is cut: by hour or by month, by resource (one server, one disk) or by whole account. Timeliness is how recent it is. You do not get both at once, and this lesson is about choosing.

The three bands

Terminal window
BAND LATENCY GRANULARITY COST QUESTION IT ANSWERS
────────────────────────────────────────────────────────────────────────────
LIVE (calculated) minutes-1 day Per resource "What is running right now,
priced at the rate card?"
DAILY BILLING 18-36 hrs Per resource "What was actually charged
yesterday?"
MONTHLY SETTLED 3-10 days Per resource "What is the final
past month closing authoritative invoice?"

Live, calculated. Current state, what is running, what shape it is, where it sits, multiplied by the public rate card. As fresh as the last calculation, and always at list price, also called the rack rate. The number is real, but it is not the bill. In ZopNight, the cost platform these lessons are built around, this is the cost_usd column, calculated once a day: see L1 of M0.4.

Daily billing. What the provider actually charged for yesterday, after discounts and after any commitments were applied. Available 18 to 36 hours once the day closes. In ZopNight this is the actual_cost_usd column, once billing sync (ZopNight reading your provider’s billing data each day) is switched on.

Monthly settled. The closed invoice. Providers revise earlier daily figures as late measurements and commitment adjustments arrive, so this is the only number that stops moving. Final somewhere between the 5th and the 10th of the following month.

The mistake everyone makes once

A finance partner sees real-time cost in a dashboard (a screen of summary charts) and asks engineering to reconcile it against the cloud invoice. The two numbers do not match, and the tool gets blamed.

Nothing was wrong. The dashboard showed live calculated cost, which is list price. The invoice showed daily billing, which is after discounts. Both are accurate answers to different questions.

The fix is labelling. A figure presented as “$1,247 today” without saying which kind of $1,247 will eventually cost somebody their credibility in a finance meeting. ZopNight labels both on the Reports summary: see the two-source cost model.

Pick the band by the question

Terminal window
QUESTION → BAND
─────────────────────────────────────────────────────────────
"Are we leaving things on right now?" → LIVE
"What did EC2 cost yesterday?" → DAILY BILLING
"What did EC2 cost last month, final?" → MONTHLY SETTLED
"Anomaly happening in the last hour?" → LIVE (with a 24h check)
"Variance vs budget for the closed month?" → MONTHLY SETTLED
"Did the new schedule save what we expected?" → DAILY BILLING, week-over-week

In that table, EC2 is AWS’s rented servers, an anomaly is a sudden, unexpected jump in spend, and variance is the gap between what you spent and what you budgeted.

One error is common enough to name. Budgets are set against billed amounts, which are after discount. Live figures are list price, which is before discount. Report one against the other and every team appears 15 to 40 percent over budget while actually being on track, and you will spend a week explaining it.


2. Demo

The same EC2 instance (one rented AWS server), three bands at the same wall-clock moment (10:00 AM Tuesday, two days into the month):

SourceNumberInterpretation
Price list (read through the provider’s pricing API, the interface programs use to fetch prices) × hours running this month so far$98.40Live, calculated, rack rate, no discount
AWS Cost Explorer (AWS’s cost screen) for yesterday (Monday)$3.84Billed for one day, post-discount
AWS CUR (AWS’s detailed billing file) for the past three days, summed$11.20Billed, post-discount, but Sunday’s last 4 hours may still be re-priced

Three correct numbers. Three different questions answered.


3. Hands-on (5 min)

This needs access to a cloud account. If you do not have one, read the steps and work through them with the Demo numbers instead.

  1. Pick one running virtual machine (a rented server: EC2 on AWS, Compute Engine on Google, a VM on Azure).
  2. Compute the live rack rate manually: hourly_rate × hours_since_month_start. The hourly rate is at the provider’s pricing page.
  3. Pull yesterday’s billed cost for the same resource using the command-line (CLI) example from L2.
  4. Multiply yesterday’s billed cost by the number of days elapsed this month.
  5. Compare the two numbers. The gap is the effective discount running on this resource: how far below list price you actually pay.

If the live rack rate is lower than the billed-cost-times-days estimate, the instance was running fewer hours than wall-clock would suggest (a schedule switched it off for some hours) or the rate card published today differs from yesterday’s (rare but happens at major price changes).


4. Knowledge check

Q1

A vendor advertises “real-time cloud cost.” This is most accurately interpreted as:

A. Cloud providers publish hourly bills now
B. The vendor is computing live rack rate from the pricing API
C. The vendor has direct access to AWS internal metering
D. The vendor is approximating, badly

Show answer

Correct: B. The actual bill still lags, usually by a day or more. Live cost is always calculated, not billed. Providers do not publish sub-daily bills. A is wrong (no provider does this). C is fantasy (no vendor has internal metering access). D is too cynical; calculated live cost is a real and useful number; it is just not the bill.

Q2

A team reports that their FinOps tool shows $14,000 spent so far this month, but the AWS console shows $11,200 for the same days. Which is most likely true?

A. The FinOps tool is broken
B. The console is showing billed cost (post-discount, lagged); the FinOps tool is showing live rack rate (pre-discount)
C. AWS Cost Explorer is broken
D. The team is querying the wrong AWS account entirely, so the two totals are covering different estates

Show answer

Correct: B. Both are correct. This is the textbook live-vs-billed mismatch. The gap of 20% ($2,800 of $14,000) is consistent with a typical effective discount from reserved instances, savings plans (both are commitments to a year or more of usage at a lower rate) and Google’s sustained-use discount for machines that run most of the month. The team needs to read which column they are looking at.

Q3

In-month budget variance tracking (before the month closes) should be sourced from which band?

A. Live calculated
B. Monthly settled
C. Whichever one happens to be highest
D. Daily billing (rolled to month-to-date)

Show answer

Correct: D. Budgets are set against billed amounts. Daily billing rolled up month to date (MTD: from the 1st of the month to today) is the correct match. Monthly settled is too late for in-flight management. Live calculated is rack rate, mismatched against a billed budget.


5. Apply

ZopNight separates the two bands explicitly on every report. The Reports header carries a Cost Source label: Unblended Cost (AWS), Amortized Cost (Azure), Net of Credits (GCP), Mixed (by provider), or Rack Rate when no billing data is in play. The first four are each provider’s billed figure; M0.4 explains the differences. The cost chart on Costs → Reports → Summary can split a data point into actualCostUsd and calculatedCostUsd so the gap is visible.

Anomaly detection is a daily scheduled job (20:55 UTC), not a real-time stream. It evaluates the previous full day, preferring billed cost where the billing overlay has landed and falling back to live calculated cost where it has not. That is why an anomaly surfaces the day after the spend, not the minute of it.

Open ZopNight Costs → Reports → Summary (deep link)


Rule references

  • RC-001 Idle EC2: fires on an instance stopped for 30+ days; the saving is its attached disks and Elastic IP, not compute

Glossary terms touched

Effective discount


Start with the bill.

Foundations takes about five hours. The first lesson is nine minutes.

Free curriculum. No paywall. One free account opens 290 lessons across 7 courses, plus an optional 24-lesson beginner course, and three publicly verifiable credentials. Read it on the train, take the exam on a Saturday, list the credential on your résumé Monday.

5h median time to finish Foundations
free account, every course, no paywall
3 certifications, each with a public verifier
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·