Unit Economics for Cloud Workloads
Calculate the true cost per transaction, per user, and per feature of cloud workloads. Covers cost attribution, unit cost analysis, cost benchmarking, margin analysis, and the patterns that connect cloud spending to business value.
Knowing your total cloud bill is useless without knowing what generates that cost. Unit economics answers: “How much does it cost to serve one user?” “What is the cost per transaction?” “Which features are profitable?” This is the bridge between FinOps cost management and business decision-making.
What Are Unit Economics
Total cloud bill: $500,000/month
→ Meaningless without context
Unit economics:
Cost per user: $0.42/month (1.2M active users)
Cost per transaction: $0.003 (167M transactions/month)
Cost per API call: $0.0001 (5B calls/month)
Cost per GB stored: $0.023/month (2.5PB data)
Why it matters:
Revenue per user: $12.99/month
Cost per user: $0.42/month
Gross margin: 96.8% ← Healthy
But per feature:
Core product: $0.15/user (cost efficient)
Video feature: $2.30/user (expensive!)
ML recommendations: $0.85/user (moderate)
→ Video feature costs 15x more per user than core product
→ Is it generating 15x more value?
Cost Attribution Model
class UnitCostCalculator:
def __init__(self, billing_data, usage_data):
self.billing = billing_data
self.usage = usage_data
def cost_per_user(self, period="month"):
"""Total infrastructure cost divided by active users."""
total_cost = self.billing.total_cost(period)
active_users = self.usage.active_users(period)
return total_cost / active_users
def cost_per_transaction(self, service_name):
"""Cost of a specific service divided by its transactions."""
service_cost = self.billing.service_cost(service_name)
transactions = self.usage.transaction_count(service_name)
return service_cost / transactions
def marginal_cost(self, additional_users):
"""Cost of adding N more users (incremental, not average)."""
# Fixed costs don't increase with users
fixed = self.billing.fixed_costs() # DB licenses, reserved instances
variable = self.billing.variable_costs() # Compute, bandwidth
current_users = self.usage.active_users()
variable_per_user = variable / current_users
return variable_per_user * additional_users
def feature_cost_breakdown(self):
"""Cost per feature based on resource tagging."""
features = {}
for resource in self.billing.tagged_resources():
feature = resource.tags.get("feature", "untagged")
features[feature] = features.get(feature, 0) + resource.cost
return {
feature: {
"total_cost": cost,
"cost_per_user": cost / self.usage.feature_users(feature),
"pct_of_total": cost / self.billing.total_cost(),
}
for feature, cost in features.items()
}
Benchmarking
Industry benchmarks (approximate):
SaaS B2B:
COGS (infrastructure) as % of revenue: 15-25%
Cost per user/month: $0.50 - $5.00
Gross margin target: 75-85%
E-commerce:
Cost per transaction: $0.001 - $0.01
Cost per page view: $0.00001 - $0.0001
Media/Streaming:
Cost per stream-hour: $0.01 - $0.05
Storage per user/month: $0.10 - $0.50
Fintech:
Cost per payment: $0.005 - $0.05
Compliance overhead: 10-20% of infrastructure cost
Executive Dashboard
unit_economics_dashboard:
headline_metrics:
- name: "Cost per Active User"
value: "$0.42/month"
trend: "-5% MoM" # Improving
target: "< $0.50"
- name: "Infrastructure Gross Margin"
value: "96.8%"
trend: "+0.3% MoM"
target: "> 95%"
- name: "Cost per Transaction"
value: "$0.003"
trend: "Flat"
target: "< $0.005"
feature_breakdown:
- feature: "Core Product"
cost_per_user: "$0.15"
revenue_per_user: "$8.99"
margin: "98.3%"
- feature: "Video"
cost_per_user: "$2.30"
revenue_per_user: "$3.00" # Add-on
margin: "23.3%" # RED FLAG
Anti-Patterns
| Anti-Pattern | Consequence | Fix |
|---|---|---|
| Track only total spend | Cannot optimize, no business context | Unit economics per user/feature/transaction |
| No resource tagging | Cannot attribute costs to features | Mandatory tagging in IaC templates |
| Average cost only | Hides expensive outliers | Track P50, P90, P99 cost per user |
| No marginal cost analysis | Over-provision for growth | Separate fixed vs variable costs |
| Finance and engineering silos | No shared cost language | Shared unit economics dashboard |
Unit economics is the Rosetta Stone between engineering and finance. Engineers see requests, latency, and compute. Finance sees revenue, margin, and COGS. Unit economics translates between the two.