Skip to main content
Your progress
0 of 5 complete0%
T2 / M2.2 / L4 OF 4 / Engineer LEVEL / 9 min

When evidence disagrees with the bill

Outcome

By the end of this lesson, you will be able to reconcile evidence-based savings against actual post-action billing, diagnose the typical reasons for the gap, and track your realization rate to set honest expectations.


PrerequisitesM2.1.L4 (pricing model) · M2.2.L1-L3 · T0.M0.4.L1 (rack rate vs billing)
Time9 minutes

1. Concept

A recommendation tells you what you would save. The bill tells you what you did save, one to three days later.

Those two numbers do not always match, and there are good reasons for that. Knowing them is what lets you have an honest conversation with finance rather than a defensive one.

Terminal window
PROJECTED VS REALIZED:
PROJECTED (from rule):
Computed from rack rate or current cost
Best estimate at apply time
Shown on recommendation card
REALIZED (from billing):
Actual change in monthly bill
Available 1-3 days post-action
Read from the resource's billed cost before and after
GAP = PROJECTED - REALIZED
Sometimes positive (over-projected)
Sometimes negative (under-projected)
Sometimes zero (matches expectations)

The gap is the truth-test. Track it; learn from it; quote projections accordingly.

Typical reasons for disagreement

Terminal window
CAUSE GAP DIRECTION
─────────────────────────────────────────────────────────────────────
Evidence used rack rate; billing has RI discount Realized < Projected
applied to the freed capacity elsewhere (over-projected)
Snapshot/data retention costs persist Realized < Projected
after compute termination
Discount tier changed mid-month Various
(commitment expired or new SP kicked in)
Action happened mid-billing-period : Realized < Projected
prorated savings, not full month
Cloud-side action had side effect Realized > or < Projected
(termination cascaded data deletion) (unexpected)
Evidence assumed wrong utilization band Various
(metric was P50, actual workload is bursty)
Add-on services not in projection Realized < Projected
(monitoring agent fees, data transfer, etc.)
Cascading downstream savings Realized > Projected
(terminating cluster also released LB, log groups, etc.)

Most gaps are explainable. The ones that aren’t = bug to file.

The reconciliation flow

Terminal window
DAY 0: Apply remediation
Evidence shows projected $X/mo savings
Action logged in audit trail
DAY 1-3: Billing data lands
Compare actual billed cost change to projected
First read on the gap
DAY 7: Your reconciliation:
Projected: $530/mo (rack rate avoided)
Realized: $412/mo (after RI redistribution)
Gap: $118/mo (22% lower)
Reason: RI capacity was redistributed to remaining workloads
The RI bill stayed the same
Cost savings went into other resources' "effective cost"
Not into outright termination savings
DAY 30+: Update your realization rate for the category
Update savings communication to finance

The 7-day reconciliation gives full picture; 30-day trend confirms patterns.

When realized > projected (cascading savings)

Terminal window
SCENARIO: Terminated an idle EKS cluster
Projected savings: $5,200/mo (cluster compute + node group)
Realized savings: $6,400/mo (+$1,200 over projection)
WHY HIGHER:
Terminating the cluster also released:
- The Load Balancer attached to it ($25/mo)
- The CloudWatch log group ($45/mo)
- The per-cluster Kubernetes control plane fee ($73/mo)
- The EFS volume attached to a pod ($1,057/mo!)
The rule projected only cluster compute.
Real cleanup recovered MORE than projection.
SIGNAL: cascading cleanup exceeds projection
Common pattern with EKS clusters, ECS clusters
Less common with simple resources (EC2, RDS)

Cascading savings are a feature, not a bug. The rule’s projection focuses on its scope; real cleanup recovers more.

When realized < projected (the more common gap)

Terminal window
SCENARIO: Right-sized RDS db.r5.2xlarge → db.r5.xlarge
Projected savings: $365/mo (rack rate diff)
Realized savings: $245/mo (-$120)
WHY LOWER:
RI capacity redistribution (~$80/mo of the gap):
The org had 8 db.r5 RIs covering 8 instances
Right-sized 1 instance; 7 remaining
The RI commitment didn't change
Cost saved went into "effective cost of remaining 7"
Not into outright billing reduction
Snapshot retained: +$30/mo (1-week retention)
Other small gaps: monitoring agent ($10/mo)
Total gap: $80 + $30 + $10 = $120/mo

The rack-rate vs billed distinction (T0.M0.4.L1) explains most of these. Rack-rate projection is “what we avoided”; billed savings is “what the invoice shows.”

Mid-month action gap

Terminal window
SCENARIO: Applied recommendation on day 14 of the month
Projected: $500/mo savings
Realized this month: $230 (~46% of projected)
WHY:
Action applied mid-month (day 14 of 30)
Resource ran 14 days before termination
Resource off for 16 days
Savings = 16/30 × $500 = ~$267 (close to actual $230)
NEXT MONTH: should see full $500 realized
NOTE in projection: "First month: prorated"

The proration math is straightforward; just remember it when reconciling Month 1.

The “savings audit” pattern

Mature FinOps practices run a monthly savings audit:

Terminal window
SAVINGS AUDIT: May 2026
─────────────────────────────────────────────────────────
Actions applied: 147
Projected total savings: $42,800/mo
Realized total savings: $36,200/mo
Realization rate: 84%
BY RULE CATEGORY:
idle 92% realized
rightsizing 78% realized ← lower; investigate
orphan 96% realized
schedule 88% realized
discount 95% realized
─────────────────────────────────────────────────────────
INVESTIGATION on rightsizing 78% realization:
14 of 23 rightsize actions saw RI redistribution effects
5 had snapshots that retained on terminated instances
4 had monitoring agent costs not in the rule's projection
ACTION: record a 78% realization rate for rightsizing
in your reconciliation sheet
Communicate to finance: "rightsizing projections are
approximately 78% of billed savings"

The audit produces signal: which rule classes underestimate or overestimate. ZopNight shows the projection; the realization rate is yours to keep.

Your realization rate: making projections honest

ZopNight does not adjust projections for you. Track realized divided by projected per category in your own reconciliation sheet, and quote that rate to finance alongside the projection.

Terminal window
REALIZATION RATE per category (your sheet):
Idle: 92% (realized / projected)
Rightsizing: 78% (RI redistribution effect)
Orphan: 96%
Schedule: 88%
Discount: 95%
APPLICATION:
Card shows: "Projected $500/mo"
You report: "Projected $500/mo; our rightsizing
realization runs at 78%, so expect about $390"
COMMUNICATION:
Finance sees both numbers
Sets expectations correctly
Trust earned through transparency
REVIEW:
Quarterly
Recompute from the last quarter's reconciliations
Needs 5-10 actions per category before the rate means much

The realization rate turns projections into realistic forecasts.

What this means for projections

Terminal window
PROJECTIONS ARE BEST ESTIMATES:
Based on rack rate or current cost
Don't account for:
Discount redistribution
Retained data costs
Add-on services
Mid-month proration
REALIZED IS TRUTH:
What the invoice actually shows
After all the cloud-side accounting
TRACK BOTH:
Set expectations with finance accordingly
A team promising rack-rate savings but delivering
billed savings has a credibility problem
A team promising BOTH numbers transparently has a
better conversation
THE REALITY:
Realized = 70-90% of projected for most categories
Outliers (>110% or <60%) deserve investigation

The discipline is honesty + tracking. Both compound trust over time.


2. Demo

A team’s reconciliation report walked through:

Terminal window
ACTION: Terminated idle RDS db-temp-staging
(RC-169, idle RDS)
PROJECTED: $1,420/mo (rack rate of the instance)
APPLIED: 2026-05-15
REALIZED (after 14 days extrapolated to monthly): $1,345/mo
GAP: $75/mo (5% lower than projected)
ROOT-CAUSE ANALYSIS:
Snapshot retained: +$30/mo
1-week retention before snapshot expires
Projection didn't account for retention cost
Reserved instance coverage: +$45/mo
An RDS reserved instance covered part of this usage
and keeps billing after termination; projection used
the on-demand rack rate
No proration: the realized figure is already extrapolated
to a full month, so the mid-month apply date does not
reduce it. (May's bill alone would show about half.)
Other: small fees not in projection ($0/mo material)
LEARNINGS:
ADJUSTMENTS WHEN QUOTING:
For future RDS terminations:
Subtract retained-snapshot costs (use snapshot retention setting)
Net out reserved-instance coverage, which keeps billing
Quote prorated first-month savings explicitly
REALIZATION RATE UPDATE:
Current: 92% for RDS terminations (team's sheet)
Observed: 95% in this case
No update yet: single data point; need 5-10 to revise
Track over next quarter
COMMUNICATION TO FINANCE:
"RDS termination saved $1,345/mo (vs $1,420 projection)
The 5% gap is from the retained snapshot + reserved-instance coverage
We now quote RDS projections net of these two items"

Two adjustments to how the team quotes RDS projections. The next estimate to finance will be closer to the bill.


3. Hands-on (5 min)

Reconcile a past action:

Terminal window
□ STEP 1: Pick an action from last 30 days
Action: __________
Apply date: __________
Projected savings: $_____/mo
□ STEP 2: Pull billing data
Billed cost card on the recommendation (7d / 30d / 90d)
OR Reports for the resource's account or team
Compare cost on day BEFORE apply to day AFTER+7
□ STEP 3: Calculate realized savings
Pre-apply cost: $_____/mo
Post-apply cost: $_____/mo
Realized monthly savings: $_____
□ STEP 4: Calculate gap
Projected: $_____
Realized: $_____
Gap: $_____ ( _____%)
□ STEP 5: Identify cause(s)
□ RI / SP redistribution
□ Snapshot retention
□ Add-on services not in projection
□ Mid-month proration
□ Cascading savings (positive gap)
□ Other: __________

One reconciliation per month = ongoing calibration of projections.


4. Knowledge check

Q1

Projected savings is $500/mo (rack rate). Realized billed delta is $380/mo. Most likely cause:

A. The recommendation was simply wrong about the saving it originally promised
B. Billing sync is broken
C. RI / Savings Plan redistribution: the discount was reapplied to remaining workloads
D. Cloud provider error

Show answer

Correct: C. Rack rate overstates what cash savings the bill will show. See T0.M0.4.L1 for the rack-rate-vs-billed distinction. This is the classic explanation. Classic RI redistribution effect.

Q2

A realized > projected savings outcome usually means:

A. Bug in the rule
B. Cascading cleanup; terminating one resource freed dependent costs (LBs, log groups, attached volumes) not in the rule’s projection
C. Random luck
D. Different cloud provider math, since each of the three computes its discounts in its own slightly different way entirely

Show answer

Correct: B. Common with EKS/ECS terminations where dependents weren’t in projection scope. Cascading savings are real and often exceed projections.

Q3

A team’s monthly realization rate is consistently 70%. Best action:

A. Stop applying the recommendations, since they clearly do not deliver anything
B. Ignore
C. Switch FinOps tools
D. Record the 70% rate and quote it to finance alongside each projection

Show answer

Correct: D. Communicate to finance: “our typical realization is 70%; projections shown but realized number is the truth.” ZopNight does not discount projections for you, so the rate lives in your reconciliation sheet. Honest expectations earn trust.


5. Apply

Compare the resource’s cost before and after the action in Reports or the recommendation’s Billed cost card. Keep realized against projected in your own reconciliation sheet.

For your team: monthly reconciliation cadence; quarterly realization-rate update per category; honest communication to finance.


Module quiz

Complete M2.2 → 10-question module quiz.


Glossary terms touched

Realized savings · Reconciliation


Start with the bill.

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

Free curriculum. No paywall. 290 lessons across 7 courses, plus an optional 24-lesson beginner course. Browse every course without an account; a free account opens the lessons, saves your progress and opens the exams for 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·