Open model · schema v1

The assumptions are part of the answer.

One workload enters the model. Five architecture adapters turn it into provider line items. Every material transformation has a stable mapping ID, a dated price source and a visible failure mode.

Demand model
Provider-neutral workload
Traffic resolution
720 hourly buckets
Money unit
Integer microdollars
Provider stacks
Five explicit mappings

01 / Workload contract

Describe demand before choosing products.

The common input is a demand envelope: monthly requests, active CPU per request, end-to-end wall time, memory, inbound and response payloads, object storage retained, storage reads and writes, plus a traffic model. Provider-specific controls only describe the architecture needed to price that same demand.

Same workload

Request, storage and delivery quantities do not change when the user changes provider tabs. An adapter may convert units, but it cannot quietly shrink the workload.

Explicit architecture

Endpoint choice, instance count, capacity benchmark, concurrency and minimum instances are visible inputs because they materially change whether a stack fits.

No inferred services

The engine does not turn a request count into an invented database, queue, cache or observability bill. Missing scope is named as an exclusion.

02 / Traffic and time

Monthly volume and peak shape answer different questions.

A model month contains 720 one-hour buckets. Flat, business_hours and global shapes begin as 168-hour weekly vectors normalized to mean 1.0, then repeat through the month. The engine allocates the entered monthly request total across those buckets and derives average RPS, peak RPS and the peak-to-average ratio.

A spike redistributes a fixed monthly total.

The spike multiplier concentrates more of the existing monthly requests into its selected hours; it does not create extra requests. If launch traffic is additive, increase monthly requests as well. This keeps a shape experiment separate from a volume forecast.

Serverless request, compute, storage and transfer charges depend on the integrated quantity. Shape therefore should not change a linear monthly bill when volume stays fixed. Shape does change the hourly peak used to qualify fixed capacity and the per-hour ALB LCU integration. Monthly growth compounds the request total and reruns the same adapters for each projection month.

03 / Billing semantics

CPU, duration, bytes and money keep their own units.

Compute

Active CPU is not wall time.

Cloudflare Workers uses requests × active CPU milliseconds. Lambda uses memory-weighted wall time rounded to 1 ms. Cloud Run uses request wall time rounded to 100 ms for both configured vCPU and memory. EC2 and Hetzner price selected fixed nodes, then test their capacity against the traffic peak.

Storage

Retained data and operations stay separate.

GB-month is modeled as a constant monthly average. Reads and writes are supplied independently and map to each provider's published object-operation classes. Binary-unit tariffs receive an explicit GB-to-GiB conversion.

Egress

Public delivery remains visible even at $0.

Public response transfer is monthly requests × average response KB ÷ 1,000,000, yielding decimal GB. Inbound bandwidth is not charged as egress; inbound request bytes still affect API Gateway request units where applicable.

Allowances

Greenfield and marginal are different questions.

Greenfield assumes recurring account- or project-wide allowances remain unused. Marginal assumes another workload has consumed shared allowances. Promotional setup credits are excluded in both modes.

Money

Prices are exact rational microdollars.

Price books store an integer numerator, denominator and bundle size. Quantities use fixed-point integers. Each line is rounded half-even once to an integer microdollar, and a provider total is the sum of those stored line-item costs. No binary floating-point currency is accumulated.

04 / Eligibility and warnings

A low total is not allowed to outrank a workload it cannot serve.

For EC2 and Hetzner, usable capacity is nodes × user RPS benchmark × target utilization . It must meet or exceed the highest hourly RPS. HA profiles also require their minimum topology. An underprovisioned or incomplete estimate is excluded from winner selection even if its displayed list-price total is lowest.

Complete

The modeled path is priced and eligible for comparison.

Reference

A self-managed or fixed-capacity reference that fits the entered assumptions and remains eligible.

Underprovisioned

Selected capacity misses the modeled peak. Total stays visible; winner eligibility does not.

Incomplete

A required capability or pricing dimension is unsupported. The model refuses to fill the gap with $0.

Warnings travel with the estimate and its line items. They cover shared allowances, benchmark assumptions, input normalization, capacity shortfalls, storage gaps, provider memory ceilings, unsupported configurations, payload limits and contact-sales tiers. A warning is part of the answer, not optional explanatory copy.

05 / Provider mapping register

Stable IDs make every transformation challengeable.

The IDs below are emitted on the corresponding bill lines. They identify the mapping rule; the dated rate itself lives in the price-book ledger.

01

Workers Paid + R2 Standard

Cloudflare

Complete when the entered workload fits the modeled Workers and R2 path, including the 128 MiB isolate ceiling.
M-CF-001

Workers account, requests and active CPU

Add one Workers Paid account minimum in greenfield mode when requests are non-zero, then net recurring request and CPU allowances. Requests multiply directly; CPU milliseconds equal monthly requests × active CPU per request. Wall time spent waiting on I/O is not substituted for CPU time. Workloads above Workers' 128 MiB per-isolate memory limit are incomplete and cannot win.

M-CF-002

R2 Standard storage and operations

Map stored GB-month to R2 Standard, storage writes to Class A operations and reads to Class B operations. Greenfield mode nets the recurring storage and operation allowances; marginal mode does not.

M-CF-003

Explicit zero-price Internet egress

Multiply monthly responses by average response payload to retain the real transferred GB quantity, then emit it as a visible $0 R2 Internet-egress line. Zero is evidence here, not an omitted component.

02

Lambda x86 + HTTP API or Function URL + S3

AWS serverless

Complete only when the selected endpoint and payload fit the modeled buffered-request path.
M-AWS-LAMBDA-001

Lambda requests and wall-time compute

Map each workload request to one Lambda invocation. Round wall time up to the next millisecond, multiply by configured memory in GiB and requests, then net recurring request and GB-second allowances in greenfield mode. This includes I/O wait; active CPU milliseconds do not replace duration. Memory above Lambda's 10,240 MiB configuration maximum makes the stack incomplete.

M-AWS-APIGW-001

Function URL or HTTP API ingress

A Function URL adds no separate endpoint fee. HTTP API maps each incoming request to at least one 512 KB request unit, using inbound request payload—not response egress—and applies the published request tiers.

M-AWS-S3-001

S3 Standard object storage

Map decimal GB-month, storage writes and reads to S3 Standard storage, PUT-class requests and GET-class requests. Delivery is direct; CloudFront, transfer acceleration, replication and lifecycle retrieval are outside this model.

M-AWS-NET-001

Shared allowance and tiered Internet transfer

Derive public egress from response bytes. Greenfield mode nets the account-wide recurring transfer allowance, then distributes billable GB through the public AWS tiers. Usage beyond the last public tier is flagged as contact-sales and shown provisionally, never presented as a quote.

03

Fixed c6a.large fleet + gp3 + optional ALB + S3

AWS EC2

A capacity-qualified reference. Underprovisioned or structurally incomplete selections cannot win.
M-AWS-EC2-001

Fixed instance capacity and base infrastructure

Bill the selected Linux On-Demand c6a.large nodes for a 720-hour month and their gp3 root volumes. HA includes two public IPv4 addresses for its internet-facing ALB; the node toggle adds one public address per node. Capacity is nodes × the user's RPS-per-node benchmark × target utilization, compared with the highest hourly workload RPS. A workload above the c6a.large's 4 GiB memory is incomplete.

M-AWS-ALB-001

Application Load Balancer and LCU integration

In HA mode add 720 load-balancer hours. For every hourly traffic bucket, compute the LCU maximum across new connections, active connections, processed bytes and paid rule evaluations, then sum those hourly maxima.

M-AWS-EC2-002

Operations remain an explicit exclusion

Emit a zero-price assumption line for patching, observability and engineering work. The zero means no public tariff can be inferred from workload volume; it does not claim operating an instance fleet is free.

M-AWS-S3-001 / M-AWS-NET-001

Shared object-storage and transfer rules

The EC2 reference uses the same S3 Standard mapping and AWS Internet-transfer tiers as the serverless stack, so compute architecture changes without quietly changing the storage or delivery workload.

04

Cloud Run request-based + Cloud Storage Standard

Google Cloud Run

Complete for concurrency 1, zero minimum instances and wall time that includes weighted startup overhead.
M-GCP-RUN-001

Request-based CPU, memory and requests

Round wall time up to 100 ms, then multiply by requests and configured vCPU for CPU-seconds, and by workload memory for GiB-seconds. Greenfield mode nets recurring CPU, memory and request allowances. The selected CPU and memory must be a supported Cloud Run pairing; concurrency above 1 or minimum instances above 0 is marked incomplete rather than guessed.

M-GCP-STORAGE-001

Cloud Storage units and operations

Convert the workload's decimal GB-month to binary GiB-month, then map writes to Class A and reads to Class B operations for Standard storage. Greenfield mode nets the modeled recurring storage and operation allowances.

M-GCP-NET-001

North America Premium Tier transfer

Convert public response delivery from decimal GB to GiB, net the recurring allowance in greenfield mode, and apply the published Premium Tier egress bands for the us-central1 reference.

05

Fixed CPX22 nodes · self-managed

Hetzner

A capacity-qualified reference with explicit storage and operations gaps.
M-HETZNER-001

Fixed nodes, addresses and backups

Bill the selected 4 GiB CPX22 nodes for a server-month, add primary IPv4 when selected, and price optional server backups as the documented percentage of server subscription. Capacity uses the user's benchmark and target utilization, not a vendor throughput promise. A per-request memory requirement above the node's memory makes this fixed reference incomplete.

M-HETZNER-002

Included local storage is not object storage

Expose 80 GB of node-local storage per selected node as included. If the workload exceeds it, mark the estimate incomplete; do not invent an extra disk price or treat unreplicated local storage as equivalent to managed object storage.

M-HETZNER-003

Included outbound traffic and overage

Multiply the documented traffic inclusion by selected nodes, subtract it from public response delivery, and price only the positive overage using the published unit.

M-HETZNER-004

Self-managed labour is not silently free

Emit a visible $0 list-price line for the OS, runtime, TLS, scaling, monitoring, backups and incident response. Those costs are excluded because they depend on the operator, not because they are economically zero.

06 / Known exclusions

What the total does not claim.

01

No databases, caches or queues

The current comparison covers HTTP compute, object storage and public response delivery. It does not infer RDS, D1, DynamoDB, Cloud SQL, Redis, queues or event buses from request volume.

02

No CDN or private-network path

Object delivery is direct in the modeled stacks. CloudFront, Cloud CDN, cache hit ratios, NAT gateways, inter-zone transfer, private links and origin shielding need a separate architecture model.

03

No commercial adjustments

Taxes, VAT, support, promotional credits, negotiated discounts, commitments, reservations, Savings Plans, spot capacity and currency conversion are excluded unless a line explicitly says otherwise.

04

No automatic service equivalence

A list-price total does not price latency, durability, operational burden, regional coverage, support or failure modes. Reference and warning labels remain part of the result and should travel with any screenshot or report.

05

No inferred idle or concurrent lifetime

Cloud Run concurrency above one and non-zero minimum instances need arrival overlap and idle-lifetime data. The v1 engine returns an incomplete estimate instead of multiplying an aggregate by a convenient guess.

06

No unlimited payload assumption

Known endpoint or response-size violations produce capability warnings and an incomplete result. Streaming and alternative delivery designs are separate models.

07 / Reproduce a result

The audit trail is deliberately mundane.

  1. Record the workload. Keep every visible input, traffic control and provider-specific architecture setting.
  2. Record each book version. The result displays the immutable version used by each provider adapter.
  3. Follow line-item sources. Each line carries its mapping ID, official URL, recorded verification date and exact cost in microdollars.
  4. Keep the warnings. Completeness and capacity status are required context for the total.