Rochwall
Independent technology decision advisory  ·  London

Platform Fit Verdict  ·  5-day assessment

Should Example SaaS Co. leave AWS?

Cloud platform assessment · prepared for the CTO and CFO

Report ref PFV-SAMPLE-01 Pricing basis List, eu-west-2 Billing period reviewed 3 months Pages 1 of 1 (full)

This is a worked example, not a client engagement. Example SaaS Co. is fictional. Every figure here is modelled from public list pricing applied to a representative architecture — no client data appears in this document.

We publish a worked example rather than a case study because Rochwall is new and we will not describe work we have not done. What this shows you is the method, the depth, and the format of the report you would receive. The reasoning is real even though the client is not.

§ 01

Executive verdict

Stay and optimise

Do not migrate. Take £4,750 a month out of the current AWS bill using changes your own team can make in six weeks, none of which alter your architecture.

Then stop and re-measure. On today's numbers, moving to dedicated hardware saves 47% a month and still costs you £103,000 more over three years, because the migration and the ongoing operational burden outweigh the saving at your scale. That answer flips at roughly £32,000 a month of cloud spend. You are at £18,420. See § 08.

Current monthly spend

£18,420

£221,040 / year

Recoverable waste

£4,750

no architecture change

Savings range

21–37%

phased over 90 days

Recommended platform

Optimised AWS

reassess in 90 days

§ 02

How to read this report

Every number carries a confidence marker. High means we observed it directly in your billing or utilisation data. Medium means we modelled it from public pricing using the assumptions listed in Appendix A. Low means it is an estimate that needs validation before you act on it.

Findings also carry effort and risk. Effort is given in engineer-time rather than a rating, because you can check a day estimate against your own team and you cannot check a rating. Risk is given as blast radius — what specifically breaks, and whether you can undo it — for the same reason. We do not publish a composite score. Multiplying three ordinal judgements together produces a number with more decimal places than meaning, and § 06 is where we explain why we distrust exactly that move when a vendor makes it.

Modelled alternatives carry error bars — ±10% on platform pricing, ±25% on migration effort. Where a decision is close enough that the error bars overlap, we say so rather than pretending the model resolves it.

Sections 5 through 7 are evidence. Section 8 is the analysis that changes the answer. Section 9 tells you when to revisit it. If you read only two sections, read 8 and 9.

§ 03

Scope and method

What we were asked

Startup credits expired seven months ago. The monthly bill went from £3,100 to £18,420 and the CFO has asked for a plan. The board has heard that other companies are leaving the cloud and wants to know whether Example SaaS Co. should too.

What we looked at

  • Three months of AWS Cost and Usage Report data, at resource granularity
  • Fourteen days of CloudWatch utilisation, assessed at p95 rather than mean
  • A 90-minute architecture review with the engineering lead
  • Public pricing for AWS, GCP, Azure, Hetzner, OVH and two UK colocation providers

The company

B2B SaaS, 5,200 customers, £4.1M ARR, 34 staff of whom 9 are engineers. No dedicated platform or infrastructure engineer — cloud operations are shared between two backend engineers alongside product work. That last fact does more work in this analysis than any pricing table.

The architecture

Containerised API on ECS across three availability zones, PostgreSQL on RDS Multi-AZ, Redis on ElastiCache, S3 and CloudFront for assets, and a nightly reporting and ETL batch job on EC2. Separate staging account plus three long-lived developer environments.

§ 04

Where the money goes

AreaMonthlyShareWaste riskConfidence
Compute — ECS, EC2, Fargate£8,94048.5%HighHigh
Managed services — RDS, ElastiCache£4,18022.7%MediumHigh
Storage — S3, EBS, snapshots£2,76015.0%MediumHigh
Networking — NAT, egress, CloudFront£1,89010.3%HighHigh
Support and other£6503.5%LowHigh
Total£18,420100%
Averaged across three billing periods. Figures rounded to the nearest £10, so shares may not sum exactly.

Compute is nearly half the bill, and roughly a third of that compute is not doing useful work. That is the normal shape of a post-credits bill: nothing was ever wrong enough to fix while the credits were paying for it.

§ 05

Recoverable waste

£4,750 a month — 25.8% of the bill — is recoverable without changing a single line of application code or a single box on the architecture diagram.

Each finding carries three separate judgements, and they are not the same thing. Confidence is how certain we are the money is there. Effort is how much engineering time it costs to capture. Risk is what breaks if it goes wrong. A finding can be high-confidence and high-risk at once — that combination is common and it is why cost tooling that reports only the number is not enough to act on.

Within 30 days

FindingMonthlyEffortRisk if it goes wrongConfidence
Non-production runs 24/7 — staging plus 3 developer environments. Schedule 07:00–20:00 on weekdays.£1,2404 hoursLow Non-production only. Reversible in one click.High
App tier over-provisioned — 6 × m6i.2xlarge sitting at 19% p95 CPU. Halve to m6i.xlarge.£1,1801 dayMedium Production. Roll one instance first, load-test, then the rest. Reversible in minutes.High
NAT Gateway data processing — £0.045/GB on 18TB of internal traffic. VPC endpoints for S3 and ECR remove most of it.£8201½ daysMedium Production network path. A misconfigured endpoint breaks S3 and image pulls. Do it in staging first.High
31 unattached EBS volumes and 2.4TB of snapshots older than 18 months.£3102 hoursHigh Nothing breaks, but deletion is permanent. Snapshot to S3 first and wait 30 days.High
2 idle load balancers and 7 unassociated Elastic IPs.£2001 hourLow Confirm no DNS records point at them, then remove.High
Premium support add-ons with no ticket raised against them in 12 months.£12030 minLow A support ticket. Reversible the same day.Medium
30-day subtotal£3,8703½ days21.0% of current spend

Within 60 days

FindingMonthlyEffortRisk if it goes wrongConfidence
14TB of logs and exports never read after 30 days. Lifecycle to Infrequent Access, then Glacier IR at 90 days.£4304 hoursMedium Nothing breaks, but if the access pattern is wrong, retrieval fees can exceed the saving. Verify against 90 days of access logs.High
Staging RDS running Multi-AZ it does not need, on an instance twice the size it needs. db.r6g.xlarge → db.t4g.large, single-AZ.£4501 dayLow Staging only. Brief downtime during resize. Confirm nobody demos from staging first.Medium
60-day subtotal£8801½ dayscumulative £4,750 — 25.8%
We have deliberately excluded Savings Plans and Reserved Instances from these figures. Committing to spend before removing waste locks in the waste.

Five engineer-days removes £57,000 a year. That is the whole of § 05 — both tables, every finding — costed at roughly 40 hours of one engineer's time against £4,750 a month recovered.

Sequence it by return per day of effort, not by size of saving. The support add-ons are worth £1,440 a year for half an hour's work; the NAT Gateway change is worth six times more but costs three days and touches a production network path. Do the cheap, reversible items in the first week and let them fund the attention the harder ones need.

§ 06

Platform options modelled

Every option below delivers the same capacity, the same redundancy posture, and the same recovery objectives as today. Anything that quietly downgrades resilience to win on price is not a comparison, it is a sales pitch.

OptionModelled monthlyvs todayMigration effortRiskPosition
Stay as-is£18,420Nonen/aBaseline
Optimised AWS£13,670−26%2–3 weeks, internalLowRecommended now
Optimised AWS + batch on dedicated£11,605−37%4–6 weeksMediumReassess at 90 days
GCP, like-for-like£15,900−14%3–4 monthsHighNo clear advantage
Azure, like-for-like£16,400−11%3–4 monthsHighNo clear advantage
Hetzner, full migration with managed DB£9,800−47%4–6 monthsHighFails on TCO — see § 08
Colocation£8,600−53%6–9 monthsVery highNot justified at this scale
Modelled monthly figures carry ±10% error bars; migration effort ±25%. EUR converted at 0.855.

Read that table on its own and the conclusion looks obvious: colocation is half the price. This is exactly where most cloud exit decisions go wrong, because the monthly bill is the smallest of the three numbers that matter.

§ 07

Three-year total cost

The same options, with migration effort and ongoing operational burden costed at £110,000 per fully-loaded senior engineer per year. Ongoing burden is expressed as the fraction of an engineer each option consumes that AWS currently absorbs.

Option36-mo platformOne-off migrationAdded ops (3yr)3-year totalvs recommended
Optimised AWS£492,120£0£0£492,120
+ batch on dedicated£417,780£35,000£39,000£491,780−£340
GCP£572,400£85,000£0£657,400+£165,280
Azure£590,400£90,000£0£680,400+£188,280
Hetzner, full migration£352,800£110,000£132,000£594,800+£102,680
Colocation£309,600£210,000£264,000£783,600+£291,480
Added ops: hybrid 0.12 FTE, Hetzner 0.4 FTE, colocation 0.8 FTE. Colocation excludes hardware refresh beyond year three and assumes no residual value.

The cheapest monthly bill is the most expensive three-year decision. Hetzner costs 47% less per month than you pay today and still leaves you £102,680 worse off over three years. Not because the hardware is a bad deal — it is a good deal — but because you would be buying it with engineering time you do not have spare.

The hybrid option is a genuine coin-flip: £340 apart over three years is well inside the error bars on this model. Treat it as cost-neutral and decide it on other grounds, which is what § 09 is for.

§ 08

What would change this answer

This verdict is a function of your scale and your staffing, not a general view about cloud. Here is the arithmetic that decides it, so you can re-run it yourself without us.

The crossover point

Migrating to dedicated hardware costs roughly £242,000 over three years in migration effort and added operations. Against an optimised AWS baseline it saves about 28% of the monthly platform bill. Those break even when the optimised bill reaches about £23,750 a month — which corresponds to a pre-optimisation bill of roughly £32,000 a month.

You are at £18,420. At current growth of about 4% a quarter, you reach that crossover in a little over three years. If growth accelerates, revisit sooner.

Triggers that should make you re-run this

  • Cloud spend passes £32,000 a month with headcount flat. The migration case turns positive.
  • You hire a platform engineer for other reasons. The 0.4 FTE burden stops being a marginal cost and the crossover drops to around £21,000 a month.
  • Batch and ETL compute more than doubles. It is the workload with the strongest case for dedicated hardware and the weakest case for elastic pricing.
  • Egress passes about 40TB a month. Egress is where hyperscaler margin is highest and where the gap widens fastest.
  • An enterprise customer imposes data residency or sovereignty terms your current setup cannot meet.
  • AWS offers a committed-spend agreement below 15%. Below that the lock-in is not worth the discount at your volume.

What would not change it

A competitor announcing they left the cloud. A conference talk. A vendor's TCO calculator built by the vendor whose platform it recommends. None of these are information about your workload.

§ 09

Action plan

30 days−£3,870 / mo
3½ eng-days

Remove waste. No architecture change.

In the first week, take the three cheap reversible items: the support add-ons, the idle load balancers and IPs, and the non-production schedule. Under a day of work for £1,560 a month. Then spend the remaining two and a half days on the app tier rightsizing and the NAT Gateway change, both of which touch production and deserve a staged rollout.

Only the volume and snapshot deletion is irreversible. Snapshot to S3 and wait 30 days before removing anything.

60 days−£880 / mo
1½ eng-days

Storage lifecycle and staging database.

Apply the S3 lifecycle policy to logs and exports. Rightsize the staging database and drop its Multi-AZ configuration. Only now consider a one-year no-upfront Savings Plan, sized against the reduced baseline rather than the old one.

90 daysdecision point

Re-measure, then decide. Do not pre-commit.

Take three clean months of post-optimisation billing and re-run § 07 against it. Move batch to dedicated capacity only if batch volume has grown, or if you are confident the hybrid setup stays in place for four years or more. Otherwise do nothing further.

There is no action at 90 days that we recommend committing to today. Deciding later, with better data, is the recommendation.

§ 10

What we did not assess

A five-day platform assessment has edges. These fell outside them, and you should know which of them might matter more than what is in this report.

  • Application efficiency. Query plans, N+1 access patterns, cache hit rates. Frequently the single largest lever on a compute bill and entirely out of scope here. If your p95 CPU is 19%, the interesting question may be why the workload needs that shape at all.
  • Security posture and compliance. Not reviewed. Several of the § 05 changes touch network paths and should get a normal security review before they ship.
  • Software and licence spend outside the cloud bill. Observability, CI, seat licences. Commonly 20–40% of true infrastructure cost and invisible in a Cost and Usage Report.
  • The analytics stack, billed separately and excluded at your request.
  • Whether your team wants to run more infrastructure. This is a real constraint and it is not a technical one. The TCO model prices it at £110,000 a year per engineer. It does not price attrition.
App. A

Assumptions and sources

InputValue or source
AWS pricingPublic list price, eu-west-2, retrieved at assessment date. No EDP or private pricing assumed.
Alternative platform pricingHetzner, OVH and colocation provider public price lists. EUR converted at 0.855.
Utilisation basisCloudWatch, 14 days, p95 rather than mean. Mean utilisation systematically overstates rightsizing headroom.
Billing basisCost and Usage Report, 3 complete periods, resource granularity.
Discounts modelled1-year no-upfront Compute Savings Plans at approximately 17% on eligible compute. Applied only after waste removal.
Engineer cost£110,000 per year fully loaded. Used for both migration effort and ongoing operational burden.
Error bars±5% on modelled AWS, ±10% on alternative platforms, ±25% on migration effort.
ExcludedHardware refresh beyond 36 months, residual asset value, corporation tax treatment of capex versus opex.

Confidence definitions

  • High Observed directly in billing or utilisation data.
  • Medium Modelled from public pricing using the assumptions above.
  • Low Estimate. Validate before acting.

Effort

Stated in engineer-time for one competent engineer already familiar with the environment, including verification but excluding code review and change-approval waiting time. A day is eight hours. Estimates for work touching production assume a staged rollout rather than a single change.

Risk — findings

  • Low Non-production, or production with an instant and complete rollback.
  • Medium Touches production. Recoverable, but a mistake is visible to customers or costs money before you catch it.
  • High Irreversible, or recoverable only from backup. Deletion of any kind lives here regardless of how safe it looks.

Risk — migration options (§ 06)

  • Low No data movement, no change to the runtime platform, delivered by the existing team inside normal sprint capacity.
  • Medium One workload moves. Rollback is a redeployment. No change to the primary datastore.
  • High Primary datastore moves, or the operating model changes. Rollback means migrating back.
  • Very high As above, plus capital commitment or a contract term that outlives the decision.

These are ordinal judgements, not measurements. We publish the rubric so you can disagree with a specific rating rather than with the report as a whole.