Skip to main content
Your progress
0 of 4 lessons complete0%
T2 / M2.14 / L3 OF 4 / Engineer TIER / 9 min

Outcomes and the savings basis

Outcome

By the end of this lesson, you will be able to pick the right outcome type for a watch policy, predict how each one is priced, and explain why an un-priceable finding is demoted to advisory rather than shipped at $0.


TierEngineer
JTBD”Make my own policy produce a savings number I can defend, or none at all.”
PersonasPlatform Engineer · FinOps Lead
PrerequisitesM2.14.L2 · M2.1.L4 (pricing)
Time9 minutes
Bloom verbPick (Evaluate), Predict (Apply), Explain (Understand)

1. Concept

The outcome you declare is not a label. It decides how the finding is priced, and therefore whether it can carry a dollar figure at all.

The governing principle is the one from M2.1: concrete or abstain. A watch policy is held to exactly the same standard as a built-in rule, and it uses the same pricing helpers rather than a parallel implementation.

The four outcomes and their pricing

Terminal window
terminate (delete)
savings = the WHOLE monthly bill, optimized cost 0
demoted to advisory on a STATEFUL resource, because
deleting a database or a replica is destructive
stop / idle / schedule (recurring off-hours)
savings = cost x the MEASURED off-hours fraction
(RecoverableFraction, falling back to the
idle percentage)
NOT a fabricated constant. The same basis every built-in
schedule rule uses.
demoted to advisory $0 when there is no measured
schedule data, and likewise on a stateful
resource
rightsize
savings = a concrete one-tier-down SKU, priced through
the SAME strict delta helper v1's rightsizing
rule uses
demoted to advisory $0 when the target is un-priceable
or the resource is already smallest
custom
Your own label. Carries no automatic pricing.

The uptime fold

Before any of that runs, monthlyCost is uptime-folded, using the same adjustment the built-in path applies before its rules run.

Terminal window
WHY
A resource that runs 8 hours a day should not be priced
as though it ran 24/7. Calculated-source costs are
rescaled to real running hours first.
THE CONSERVATIVE DEFAULT
Unknown uptime leaves the 24/7 figure intact.
That over-states the cost base rather than under-stating
it, which is the safe direction: a savings figure
derived from it is conservative in the customer's
favour only if you read it as a ceiling.

There is a known follow-up here worth being aware of: the custom recommendation table is v1-shaped and does not yet carry uptime_pct / uptime_source columns, so the fold is applied but not stamped for later audit. If you are reconciling a watch finding’s number months later, that provenance is not there yet.

Why advisory rather than $0

A cost-driven finding that cannot be priced is demoted to advisory, never shipped with a $0 savings figure.

Terminal window
THE RULE, ACROSS BOTH ENGINES
Never ship a cost-driven recommendation carrying
$0 cost and $0 savings.
WHY IT MATTERS HERE
A $0 cost-driven finding gets dropped by the low-savings
suppressor anyway, so shipping one means the finding
silently vanishes. Demoting to advisory keeps it
visible, correctly labelled as carrying no recoverable
dollar figure.

This is the same reasoning that puts genuine posture findings in non-cost-driven categories (M2.1). The category and the outcome both have to be honest about whether money is involved, or the finding disappears.

The stateful demotion

Two of the four outcomes demote on stateful resources:

Terminal window
terminate on a stateful resource -> advisory
scheduled stop on a stateful -> advisory
STATEFUL means the same thing as in the Safety Gate:
a managed data-service type, a non-empty engine spec, or
a data tier. Never a name token.

Your policy can still target databases. What it cannot do is claim a confident savings figure for deleting or stopping one, because the platform will not automate that action and the number would imply an action nobody should take unattended.

Category and severity are yours

Terminal window
CATEGORY your own label. A known v1 category, or free
text up to 50 characters (the column width).
Independent of the action-derived headline.
SEVERITY author-declared.

This is more freedom than built-in rules get, and it comes with the obvious responsibility: a category you invent will not participate in any of the category-driven behaviour you met in M2.1, including the low-savings exemption that orphan carries.


2. Demo

The same policy, three outcome choices, three very different results:

Terminal window
THE FINDING
scope type = rds, resource_group = analytics
signal max db_connections eq 0 over 30 days
matches 4 RDS instances, ~$890/mo combined
CHOICE A: outcome = terminate
Intended: "these are unused, delete them"
ACTUAL RESULT: all 4 demoted to ADVISORY $0.
RDS is stateful. The policy will not claim a savings
figure for deleting a database, and it is right not to.
The findings still surface; they just carry no number.
CHOICE B: outcome = schedule
Intended: "stop them outside business hours"
ACTUAL RESULT: all 4 demoted to ADVISORY $0, twice over.
1. stateful resource
2. no measured schedule data, because these have
never been scheduled, so there is no
RecoverableFraction to price against
Two independent reasons for the same demotion.
CHOICE C: outcome = rightsize
Intended: "they are oversized for zero connections"
ACTUAL RESULT: 3 findings priced concretely, 1 advisory.
3 had a one-tier-down SKU available, priced through
the strict delta helper: $310/mo combined
1 was ALREADY the smallest instance class in its
family, so there is no target to price -> advisory
WHAT THE TEAM LEARNED
Their intent was "delete these". The platform's honest
answer is that it will surface them but will not put a
number on deleting a database.
So they used CHOICE C to get a defensible number for
the sizing waste, and handled the deletions as a manual
project with the advisory findings as the worklist.
Total defensible: $310/mo, plus 4 advisory findings
that led to ~$890/mo of manual deletions.
Reported as: $310/mo. The rest went in as a project
outcome, not as a platform-attributed saving.

That last line is the discipline. The $890 was real money, and it was not a number the platform claimed.


3. Hands-on (6 min)

Terminal window
1. For your policy, which outcome did you pick?
[ ] terminate [ ] stop/idle/schedule
[ ] rightsize [ ] custom
2. Are any resources in scope STATEFUL? Y / N
(managed data-service type, engine spec, data tier)
If Y and your outcome is terminate or schedule,
expect advisory $0. Is that acceptable? Y / N
3. If you picked schedule: do the resources in scope
have measured schedule data today? Y / N
If N, every finding will be advisory $0 until they do.
4. If you picked rightsize: is any resource in scope
already the smallest in its family? Y / N
Those will abstain.
5. Run it. Count the split:
priced concretely ______
advisory $0 ______
If everything came back advisory, your outcome type
and your scope disagree. Which will you change?
______________________________________________

4. Knowledge check

Q1

A watch policy with outcome terminate targets RDS instances. The findings will:

A. Carry the full monthly bill as savings
B. Carry half the monthly bill
C. Be demoted to advisory $0
D. Be rejected at save time

Show answer

Correct: C. terminate prices at the whole monthly bill on a normal resource, but demotes on a stateful one, because deleting a database is destructive and a confident savings figure would imply an action nobody should take unattended. Stateful means the same thing as in the Safety Gate: a managed data-service type, a non-empty engine spec, or a data tier, and never a name token. The findings still surface as a worklist; they simply carry no platform-attributed number.

Q2

Why is an un-priceable cost-driven watch finding demoted to advisory rather than shipped with $0 savings?

A. Advisory findings are easier to dismiss
B. Because $0 findings break the organisation’s savings rollup entirely, so the totals stop reconciling against the bill
C. Because advisory findings skip the $5 floor
D. Because a $0 cost-driven finding gets dropped by the low-savings suppressor, so shipping one means the finding silently vanishes

Show answer

Correct: D. Demoting to advisory keeps it visible and correctly labelled as carrying no recoverable dollar figure. This mirrors why genuine posture findings are filed in non-cost-driven categories in M2.1. Both the category and the outcome have to be honest about whether money is involved, or the finding disappears entirely.

Q3

A schedule outcome is priced from:

A. A standard off-hours assumption of 128 of 168 hours
B. The difference between its current SKU and the one tier down SKU rate itself
C. The measured off-hours fraction for that resource, falling back to its idle percentage
D. The resource’s uptime over the policy window

Show answer

Correct: C. It is the same concrete-or-abstain basis every built-in schedule rule uses, and with no measured schedule data the finding is demoted to advisory $0 rather than given a fabricated constant. The refusal to fabricate a constant is the point: a plausible-looking default would make every schedule finding carry a number, and none of those numbers would be defensible.


5. Apply

Pick the outcome that matches what can actually be measured, not what you wish were true. If everything comes back advisory, the mismatch is usually between a terminate intent and a stateful scope, and the productive move is to price the sizing waste concretely and run the deletions as a separate project.

Report the platform-attributed number and the project outcome separately. Merging them is how savings figures stop being defensible.


Glossary terms touched

Concrete-or-abstain · RecoverableFraction · Uptime fold · Advisory demotion


Start with the bill.

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

Open curriculum. No login. No paywall. 290 lessons across 7 courses, 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
0 logins, paywalls, or marketing forms
open curriculum, public credential 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·