CASE 50 · CASCADE · 2025
Per-tenant cost, calculated from the CUR.
A B2B SaaS company knew their gross margin but not their per-customer margin. The largest customer was suspected to be unprofitable, the smallest was suspected to be highly profitable, and nobody could prove either. We built a cost-allocation pipeline that produces per-tenant cost reports nightly.
B2B SaaS
COST
2025
RESULTS
What changed, by the numbers.
TENANT MARGIN VISIBILITY
100%
UNPROFITABLE TENANTS
14
PRICING-MODEL CHANGES
3
NIGHTLY REPORT
AUTO
HOW IT WENT
The technical challenge was attribution. Compute and storage were tagged with tenant IDs (mostly). Networking, observability, and shared services were not. We built a multi-step allocation model in Glue that combined CUR data with application-emitted usage events stored in DynamoDB Streams.
Shared costs allocated proportionally to attributable usage. Tenant-specific costs (their dedicated RDS, their CloudFront distribution) were direct. The output landed in QuickSight, with finance and customer-success leads each getting their own view.
The largest customer turned out to be marginally profitable — not loss-making, but underpriced. Renegotiation followed. Of the other 14 unprofitable accounts, six were renegotiated, four churned (intentionally), and four had product changes that reduced their cost profile. Gross margin improved 7 points within a quarter.
RELATED · SAME DOMAIN
Other engagements in this space.
READY WHEN YOU ARE
Let's get your AWS bill (and architecture) in order.
The discovery call is free. You walk away with at least one concrete idea — even if we never work together.