# Auditable Kinesis and DynamoDB capacity and cost model

Last calculated: 2026-08-22 (Asia/Dubai)

This is the quantitative control sheet for the Kinesis chapter and the later
cross-service cost chapter. Formulas are region-independent. Mutable price
inputs are isolated in one table and use `eu-west-1`. The examples are planning
estimates, not invoices: inputs are distributions and rounded estimates, AWS
billing has more dimensions, and a workload test must validate skew and
consumer throughput.

The DynamoDB section appended below uses the same discipline: raw item/index
sizes remain separate from API-specific rounding, transaction multipliers, and
replica/index amplification. It does not change any Task 5 inputs or results.

The reliability section appended at the end uses planning inputs rather than
AWS prices or guarantees. It keeps attempts, requests per second, seconds,
records, and capacity shares dimensionally separate.

## Unit discipline

- `B` = byte; `KiB = 1,024 B`; `MiB = 1,048,576 B`; `GiB = 2^30 B`.
- AWS capacity documentation uses `MB/s` for the sustained shard baselines. In
  this model, shard capacity math uses the documented decimal `1,000,000 B/s`
  write and `2,000,000 B/s` read limits. Do not silently substitute MiB/s.
- The current pricing page calls its billing unit `GB` but illustrates binary
  conversion. This model converts metered bytes using `2^30 B` and labels the
  result `modeled billing GB`; confirm the calculator/invoice convention before
  a financial commitment.
- **Raw bytes** are the payload bytes carried by the workload. **Billed bytes**
  apply the service's record/payload-unit rounding. Base64 and Lambda event
  envelope expansion matter to Lambda's 6 MB synchronous invocation payload,
  not to the raw Kinesis record-size input.

**Inference:** the following documented capacity/record facts are the planning
inputs below; they were retrieved 2026-08-22 from
[Kinesis quotas](https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html)
and [large-record behavior](https://docs.aws.amazon.com/streams/latest/dev/large-records.html)
(C15,C17,C71; A16,A95):

- one provisioned shard sustains up to `1 MB/s` or `1,000 records/s` writes and
  up to `2 MB/s` reads;
- a stream defaults to a `1 MiB` maximum record, can be configured up to `10
  MiB` where supported, and the `1–10 MiB` feature is for intermittent burst
  records rather than sustained large-record ingestion;
- enhanced fan-out supplies a registered consumer up to `2 MB/s/shard` of
  dedicated read throughput; standard consumers share the shard read capacity.

## Variables

| Symbol | Unit | Meaning |
|---|---:|---|
| `r_avg`, `r_peak` | records/s | Average and design-peak producer rate. Use a percentile/window, not the maximum of one sample. |
| `b_avg`, `b_p99` | B/record | Raw average and tail payload sizes, including the Kinesis partition key where the API limit requires it. |
| `f` | count | Consumers that each read the full stream. Separate standard and enhanced-fan-out consumers. |
| `k_skew` | ratio >= 1 | Hottest-shard rate divided by average shard rate under the proposed key. Derive from measurements; do not guess permanently. |
| `u_target` | ratio in `(0,1)` | Target maximum utilization after applying skew, leaving retry/recovery headroom. |
| `S` | shards | Open provisioned shards or the modeled shard-equivalent capacity. |
| `w_shard` | B/s | Sustained write byte capacity per shard (`1,000,000`). |
| `n_shard` | records/s | Sustained write record capacity per shard (`1,000`). |
| `q_shard` | B/s | Sustained read capacity per shard (`2,000,000`). |
| `t_out` | s | Consumer outage or producer-over-consumer interval. |
| `mu` | records/s | Sustainable consumer commit rate, including downstream writes and retries. |
| `lambda` | records/s | Arrival rate during recovery. |
| `B0` | records | Backlog at recovery start. |
| `rho_retry` | ratio | Additional producer or consumer work caused by retry/replay. |
| `T` | s | Billing interval; example month is 30 days = `2,592,000 s`, while hourly inputs use 720 h. |

Track rate and bytes independently. A stream can hit the record limit with tiny
events or the byte limit with large ones.

## Machine-readable worked-example inputs

The verifier parses this delimited block as the single calculation input source,
recomputes every core output and sensitivity, and compares those results with
the printed examples below. Change inputs here, then update the rendered
explanation only after the verifier reports every affected value.

<!-- TASK5_MODEL_VALUES_BEGIN -->
```text
r_avg=5000
r_peak=8000
b_avg=700
k_skew=1.25
u_target=0.80
write_shard_Bps=1000000
write_shard_rps=1000
read_shard_Bps=2000000
full_stream_consumers=2
outage_seconds=900
recovery_mu=9000
recovery_slow_mu=6000
skew_sensitivity=1.50
double_peak_rps=16000
month_seconds=2592000
month_hours=720
od_in_price=0.091
od_out_price=0.045
od_stream_hour_price=0.045
provisioned_shard_hour_price=0.017
provisioned_million_put_price=0.0165
provisioned_efo_hour_price=0.017
provisioned_efo_read_price=0.0147
advantage_commitment_MiBps=25
advantage_in_price=0.0364
advantage_out_price=0.018
```
<!-- TASK5_MODEL_VALUES_END -->

## Portable capacity formulas

### Write, shards, skew, and headroom

```text
raw_write_Bps       = r * b_avg
byte_shards         = ceil(raw_write_Bps / w_shard)
record_shards       = ceil(r / n_shard)
base_shards         = max(byte_shards, record_shards)
planned_shards      = ceil(max(raw_write_Bps / w_shard,
                               r / n_shard) * k_skew / u_target)

effective_rps_capacity = planned_shards * n_shard * u_target / k_skew
effective_Bps_capacity = planned_shards * w_shard * u_target / k_skew
headroom_rps            = effective_rps_capacity - r_peak
headroom_ratio          = effective_rps_capacity / r_peak - 1
```

**Inference:** `k_skew` is a workload property, not a shard-count magic factor. More shards can
reduce collisions among many keys, but cannot spread one partition key: that
key still maps to one shard. If `one_key_Bps > w_shard` or
`one_key_rps > n_shard`, change the ordering scope/key or accept serialization
and shed/admit work; resharding alone cannot fix it (C75; A95,A97, retrieved
2026-08-22).

### Read capacity

```text
raw_read_Bps = raw_write_Bps * f

standard_shared_capacity_Bps = S * q_shard
standard_read_ok = sum(full_stream_standard_consumer_Bps)
                   <= standard_shared_capacity_Bps

efo_capacity_per_consumer_Bps = S * q_shard
efo_read_ok = each_consumer_Bps <= efo_capacity_per_consumer_Bps
```

These are source-read limits, not downstream commit rates. A Lambda concurrency
limit, DynamoDB hot key, network call, schema poison record, or checkpoint
policy can bind first.

### Backlog growth, drain, and retention margin

```text
backlog_growth_rps = max(0, lambda - mu)
backlog_after_t    = B0 + backlog_growth_rps * t

outage_backlog_records = lambda * t_out
outage_backlog_bytes   = outage_backlog_records * b_avg

if mu <= lambda: drain_time = infinite
if mu >  lambda: drain_time = B0 / (mu - lambda)

recovery_finish_age = t_out + drain_time
retention_margin    = configured_retention - recovery_finish_age
```

Run the calculation per consumer and, where skew matters, per key/shard. Add
retry/replay amplification: `effective_mu = measured_commits / (1 + rho_retry)`.
Require retention margin for detection, deployment, operator decision, and a
slower-than-modeled drain; “positive by seconds” is not an operable recovery
plan.

## Worked capacity example: execution feed

Illustrative assumptions, chosen for arithmetic clarity rather than as a claim
about the reference repository:

| Input | Value |
|---|---:|
| Average rate | `5,000 records/s` |
| Design peak | `8,000 records/s` |
| Average raw payload | `700 B` |
| Measured skew factor | `1.25` hottest/average |
| Target utilization | `0.80` |
| Full-stream consumers | 2 |
| Consumer outage | 900 s |
| Measured recovery commit rate | `9,000 records/s` while live arrival remains `5,000 records/s` |

Calculation:

```text
average raw write = 5,000 * 700 = 3,500,000 B/s = 3.5 MB/s
peak raw write    = 8,000 * 700 = 5,600,000 B/s = 5.6 MB/s

peak byte baseline   = ceil(5.6 / 1) = 6 shards
peak record baseline = ceil(8,000 / 1,000) = 8 shards
planned shards       = ceil(max(5.6, 8) * 1.25 / 0.80) = 13

effective record capacity = 13 * 1,000 * 0.80 / 1.25 = 8,320 records/s
modeled headroom above 8,000 peak = 320 records/s = 4%
```

That 4% is headroom *after* the modeled 20% utilization reserve and 1.25 skew
factor; it is not permission to ignore a worse key distribution. Sensitivity:
`k_skew = 1.5` needs 15 shards at the same peak/utilization, while doubling peak
to 16,000 records/s needs 25 shards. Always load-test the key distribution.

The two consumers together read `7.0 MB/s` raw at average traffic. Thirteen
shards expose `26 MB/s` shared standard-read capacity in the ideal aggregate,
but multiple standard consumers contend per shard. Enhanced fan-out gives each
registered consumer its own per-shard pipe. Neither option proves the two sinks
can commit `5,000 records/s`.

Backlog:

```text
outage backlog = 5,000 * 900 = 4,500,000 records
raw backlog    = 4,500,000 * 700 = 3.15 GB (decimal)
net drain rate = 9,000 - 5,000 = 4,000 records/s
ideal drain    = 4,500,000 / 4,000 = 1,125 s = 18.75 minutes
age at finish  = 15 + 18.75 = 33.75 minutes, before detection/deploy/retry margin
```

If recovery capacity falls to `5,000 records/s`, drain time is infinite. If it
is `6,000`, ideal drain is 75 minutes. This sensitivity matters more than a
single precise-looking estimate.

## Billing formulas: raw bytes are not billed units

Current price semantics were retrieved 2026-08-22 from the
[Kinesis pricing page](https://aws.amazon.com/kinesis/data-streams/pricing/)
and `eu-west-1` values from the
[dated AWS Price List offer snapshot](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonKinesis/20260813193954/eu-west-1/index.json),
published 2026-08-13 (C49,C78; A46,A99).

### On-demand Standard

```text
billable_ingest_bytes_per_record = ceil(raw_record_bytes / 1,024) * 1,024
modeled_ingest_GB = records * billable_ingest_bytes_per_record / 2^30
modeled_read_GB   = records * raw_record_bytes * full_stream_reads / 2^30

cost = ingest_GB * P_od_in
     + standard_read_GB * P_od_out
     + efo_read_GB * P_od_efo_out
     + stream_hours * P_od_stream_hour
     + retention + transfer + consumer_compute + sinks + operations
```

### Provisioned

```text
put_units_per_record = ceil(raw_record_bytes / 25 KiB)
put_units             = records * put_units_per_record

cost = shard_hours * P_shard_hour
     + put_units / 1,000,000 * P_million_put_units
     + efo_consumer_shard_hours * P_efo_consumer_shard_hour
     + efo_read_GB * P_efo_read_GB
     + retention + transfer + consumer_compute + sinks + operations
```

`PutRecords` batching reduces HTTP/API calls; provisioned PUT billing still
counts 25 KiB chunks per record. KPL aggregation can change how many Kinesis
records are billed, but adds buffering/deaggregation and order compatibility
constraints. Model the actual producer behavior, not just logical user-event
count.

### On-demand Advantage

```text
account_billed_ingest_rate = max(actual_aggregate_rate, 25 MiB/s commitment)
account_billed_read_rate   = max(actual_aggregate_rate, 25 MiB/s commitment)

cost = committed_or_actual_ingest_GB * P_adv_in
     + committed_or_actual_read_GB * P_adv_out
     + retention + transfer + consumer_compute + sinks + operations
```

Advantage is an account-level regional decision across all on-demand streams,
not a per-stream toggle. It removes the Standard fixed stream-hour and EFO price
premium, supports warm throughput, and carries the current `25 MiB/s` ingest
plus `25 MiB/s` retrieval commitment (C70; A95, retrieved 2026-08-22). AWS's
pricing and developer pages use both MB/s and MiB/s typography; this model uses
the developer guide's MiB/s wording and requires calculator confirmation before
commitment.

## Dated `eu-west-1` price input table

| Dimension | Input | Unit |
|---|---:|---|
| On-demand Standard Data-In | `$0.091` | modeled billing GB |
| On-demand Standard standard Data-Out | `$0.045` | modeled billing GB |
| On-demand Standard EFO Data-Out | `$0.057` | modeled billing GB |
| On-demand Standard stream | `$0.045` | stream-hour |
| On-demand Advantage actual Data-In | `$0.0364` | modeled billing GB |
| On-demand Advantage ingestion shortfall | `$0.0364` | modeled billing GB |
| On-demand Advantage actual Data-Out | `$0.018` | modeled billing GB |
| On-demand Advantage retrieval shortfall | `$0.018` | modeled billing GB |
| Provisioned shard | `$0.017` | shard-hour |
| Provisioned PUT payload unit | `$0.0165` | million 25 KiB units |
| Provisioned EFO registration | `$0.017` | consumer-shard-hour |
| Provisioned EFO retrieval | `$0.0147` | modeled billing GB |
| Provisioned extended retention, 1–7 days | `$0.023` | extended shard-hour |
| Long-term retention storage beyond 7 days | `$0.023` | GB-month |

The current Price List exposes separate actual-usage and shortfall operations
for Advantage ingest and retrieval at the same respective rates. The verifier
selects and asserts all four operations, not merely similarly named products; a
later audit must refresh publication date and price dimensions.

## Worked cost estimate for the execution feed

Assume 30 days (`2,592,000 s`, 720 h), `5,000 records/s`, `700 B` raw records,
two full-stream consumers, one-day retention, same-Region transfer, and exclude
Lambda/Flink, DynamoDB/OpenSearch/S3, CloudWatch, KMS, replay, support, and staff
cost. Exclusions are material and printed to prevent false comparison.

```text
raw volume          = 8,448.96 modeled GB/month
1 KiB-rounded input = 12,359.62 modeled GB/month
two raw reads       = 16,897.92 modeled GB/month

On-demand Standard:
  Data-In    = 12,359.62 * 0.091 = $1,124.73
  Data-Out   = 16,897.92 * 0.045 =   $760.41
  stream     = 720 * 0.045       =    $32.40
  unrounded subtotal                  = $1,917.53; report about $1,918/month

Provisioned, 13 shards, two EFO consumers:
  shard hours = 13 * 720 * 0.017              = $159.12
  PUT units   = 12.96B * 0.0165 / 1M          = $213.84
  EFO hours   = 13 * 2 * 720 * 0.017          = $318.24
  EFO reads   = 16,897.92 * 0.0147            = $248.40
  unrounded subtotal                            = $939.60; report about $940/month
```

This example suggests provisioned can be cheaper for this predictable shape;
it does **not** establish a universal break-even. Standard `GetRecords` could
remove EFO charges but changes contention/latency; KPL aggregation could change
PUT units; on-demand has operational value; skew may require more shards; and
all excluded downstream/operational costs can dominate. Report the comparison
as roughly `$1.9k` versus `$0.94k` under printed assumptions, not cents.

At the current Advantage minimum, 25 MiB/s in and 25 MiB/s out for 30 days is
`63,281.25 modeled GB` in each direction before higher actual usage. At the
dated rates, that is roughly `$3.4k/month` before retention/downstream costs.
Therefore this one stream alone is below the commitment; aggregate all regional
on-demand streams and EFO use before deciding.

## Sensitivity and audit checklist

Recalculate at least these cases:

1. `r_peak / 2`, `r_peak * 2`, and a tenfold short burst;
2. `k_skew = 1.0`, measured value, and an incident value;
3. one consumer versus doubled fan-out, standard versus EFO;
4. 700 B versus 1,025 B to expose on-demand 1 KiB rounding;
5. aggregation off/on with its buffering and deaggregation constraints;
6. outage and drain with `mu <= lambda`, narrow positive margin, and target
   recovery headroom;
7. live plus replay load, including downstream writes and duplicate attempts;
8. retention that expires before detection + deploy + drain;
9. On-demand Standard versus account-level Advantage commitment versus
   provisioned shards;
10. Lambda/Flink, sinks, storage, logs/metrics, KMS, transfer/NAT, support, and
    engineering/on-call cost.

Before publication: re-download the offer file, assert Region/publication date,
recompute every number independently, and round conclusions to the uncertainty
of the workload assumptions.

## DynamoDB capacity and amplification model

Last validated: 2026-08-22. The formulas are Region-independent. No DynamoDB
price is multiplied here, so there is no hidden Region price input; a later
price example must use a dated `eu-west-1` offer and keep table, index, global
replica, backup/export, Streams, transfer, KMS, and observability dimensions
separate.

Current standard reads round evaluated data in 4 KiB units: strongly consistent
reads use one unit per chunk, eventually consistent reads use one-half, and
transactional reads use twice the strong amount. Standard writes round each
item to 1 KiB. A transaction consumes two underlying operations for each base
item it targets; indexes are not transaction targets, so asynchronously
maintained GSI entries are added at ordinary index-write cost after commit. `Query`
charges evaluated bytes before its filter, `BatchGetItem` rounds each item, and
an update is based on the larger before/after item. (C82,C83; A100,A101,A104,
retrieved 2026-08-22.)

Let `ceil_q(x) = ceil(x/q)`. Then:

```text
strong_read(x KiB)       = ceil_4(x)
eventual_read(x KiB)     = 0.5 * ceil_4(x)
transactional_read(x)    = 2 * ceil_4(x)
standard_write(x KiB)    = ceil_1(x)
transactional_base(x)    = 2 * ceil_1(x)
logical_transaction      = sum(transactional base targets) + sum(ordinary GSI entries)
moved_index_key          = base update + old index delete + new index put
sparse_index_enter       = one index put when indexed attributes appear
sparse_index_leave       = one index delete when indexed attributes disappear
sparse_index_key_move    = old index delete + new index put
```

The verifier owns these exact inputs and compares every printed result.

<!-- TASK6_CAPACITY_VALUES_BEGIN -->
```text
write_kib=1.2
index_kib=0.6
moved_old_kib=0.35
moved_new_kib=0.35
read_kib=10
query_items=40
query_item_bytes=600
query_returned=4
batch_a_kib=1.5
batch_b_kib=6.5
txn_order_kib=1.2
txn_idem_kib=0.7
txn_outbox_kib=1.6
txn_sentinel_present=1
txn_sentinel_kib=0.2
txn_gsi_count=3
txn_order_account_gsi_kib=0.45
txn_order_status_gsi_kib=0.35
txn_outbox_ready_gsi_kib=0.45
ap01_peak_s=2000
ap02_peak_s=1200
ap03_peak_s=400
ap04_peak_s=1500
ap05_peak_s=1000
ap06_peak_s=2000
ap07_peak_s=3000
ap08_peak_s=2000
ap09_peak_s=5000
ap10_peak_s=1500
ap11_peak_s=300
ap12_peak_s=2000
ap13_peak_s=5000
ap14_peak_s=20
ap15_peak_s=200
ap17_peak_s=2000
ap18_peak_s=100
ap06_requests_s=2000
ap06_pages_per_request=1
ap06_items_per_page=100
ap06_item_kib=0.4
ap06_top_symbol_share=0.08
partition_read_units_s=3000
target_partition_utilization=0.80
ap09_write_s=5000
ap09_receipt_kib=0.35
ap09_protected_state_kib=0.8
ap13_write_s=5000
ap13_checkpoint_kib=0.3
ap16_create_s=5000
ap16_claim_s=5100
ap16_complete_s=5000
ap16_retry_s=100
ap16_reschedule_s=20
ap16_ready_index_kib=0.45
partition_write_units_s=1000
ledger_max_postings_account_month=2000000
ledger_posting_kib=0.6
ledger_bucket_max_postings=250000
ledger_bucket_max_kib=150000
```
<!-- TASK6_CAPACITY_VALUES_END -->

### Worked results

<!-- TASK6_CAPACITY_RENDER_BEGIN -->
| Result ID | Calculation | Result |
|---|---|---:|
| standard_write_units | `ceil(1.2 / 1)` | 2 |
| base_plus_index_units | `ceil(1.2) + ceil(0.6)` | 3 |
| moved_index_units | `ceil(1.2) + ceil(0.35 old delete) + ceil(0.35 new put)` | 4 |
| strong_read_units | `ceil(10 / 4)` | 3 |
| eventual_read_units | `0.5 * ceil(10 / 4)` | 1.5 |
| transactional_read_units | `2 * ceil(10 / 4)` | 6 |
| query_eventual_units | `0.5 * ceil(24,000 / 4,096)` | 3 |
| batch_eventual_units | `0.5 * (ceil(1.5 / 4) + ceil(6.5 / 4))` | 1.5 |
| accepted_order_v1_base_txn_units | `2 * (ceil(1.2)+ceil(0.7)+ceil(1.6)+1*ceil(0.2))` | 12 |
| accepted_order_v1_gsi_units | `ceil(0.45)+ceil(0.35)+ceil(0.45)` | 3 |
| accepted_order_v1_total_units | `12 + 3` | 15 |
| ap06_page_kib | `1 * 100 * 0.4` | 40 |
| ap06_eventual_rru_per_page | `0.5 * ceil(40/4)` | 5 |
| ap06_aggregate_rru_s | `2,000 * 5` | 10000 |
| ap06_top_symbol_rru_s | `10,000 * 0.08` | 800 |
| ap06_shards | `ceil(800 / (3,000 * 0.80))` | 1 |
| ap09_atomic_path_wru_per_event | `2 * (ceil(0.35)+ceil(0.8))` | 4 |
| ap09_receipt_wru_per_event | `2 * ceil(0.35)` | 2 |
| ap09_receipt_aggregate_wru_s | `5,000 * 2` | 10000 |
| ap09_receipt_shards | `ceil(10,000 / (1,000 * 0.80))` | 13 |
| ap09_receipt_per_shard_wru_s | `10,000 / 13` | 769.23 |
| ap09_receipt_headroom_percent | `(800 - 769.2308) / 800 * 100` | 3.85 |
| ap13_checkpoint_wru_per_event | `ceil(0.3)` | 1 |
| ap13_checkpoint_aggregate_wru_s | `5,000 * 1` | 5000 |
| ap13_checkpoint_shards | `ceil(5,000 / (1,000 * 0.80))` | 7 |
| ap13_checkpoint_per_shard_wru_s | `5,000 / 7` | 714.29 |
| ap13_checkpoint_headroom_percent | `(800 - 714.2857) / 800 * 100` | 10.71 |
| ap16_create_base_wru_s | `5,000 * ceil(1.6) * 2` | 20000 |
| ap16_claim_base_wru_s | `5,100 * ceil(1.6)` | 10200 |
| ap16_complete_base_wru_s | `5,000 * ceil(1.6)` | 10000 |
| ap16_retry_base_wru_s | `100 * ceil(1.6)` | 200 |
| ap16_reschedule_base_wru_s | `20 * ceil(1.6)` | 40 |
| ap16_base_total_wru_s | `20,000+10,200+10,000+200+40` | 40440 |
| ap16_ready_create_insert_wru_s | `5,000 * ceil(0.45)` | 5000 |
| ap16_ready_claim_delete_wru_s | `5,100 * ceil(0.45)` | 5100 |
| ap16_ready_retry_insert_wru_s | `100 * ceil(0.45)` | 100 |
| ap16_ready_reschedule_move_wru_s | `20 * 2 * ceil(0.45)` | 40 |
| ap16_no_retry_move_floor_index_wru_s | `5,000 inserts + 5,000 deletes` | 10000 |
| ap16_ready_index_wru_s | `5,000+5,100+100+40` | 10240 |
| ap16_ready_shards | `ceil(10,240 / (1,000 * 0.80))` | 13 |
| ap16_per_shard_wru_s | `10,240 / 13` | 787.69 |
| ap16_headroom_percent | `(800 - 787.6923) / 800 * 100` | 1.54 |
| ap16_total_lifecycle_wru_s | `40,440+10,240` | 50680 |
| ledger_month_kib | `2,000,000 * 0.6` | 1200000 |
| ledger_sub_buckets | `max(ceil(2,000,000/250,000), ceil(1,200,000/150,000))` | 8 |
| ledger_bucket_max_mib | `150,000 / 1,024` | 146.48 |
<!-- TASK6_CAPACITY_RENDER_END -->

TASK6_RESULT|standard_write_units|2
TASK6_RESULT|base_plus_index_units|3
TASK6_RESULT|moved_index_units|4
TASK6_RESULT|strong_read_units|3
TASK6_RESULT|eventual_read_units|1.5
TASK6_RESULT|transactional_read_units|6
TASK6_RESULT|query_eventual_units|3
TASK6_RESULT|batch_eventual_units|1.5
TASK6_RESULT|accepted_order_v1_base_txn_units|12
TASK6_RESULT|accepted_order_v1_gsi_units|3
TASK6_RESULT|accepted_order_v1_total_units|15
TASK6_RESULT|ap06_page_kib|40
TASK6_RESULT|ap06_eventual_rru_per_page|5
TASK6_RESULT|ap06_aggregate_rru_s|10000
TASK6_RESULT|ap06_top_symbol_rru_s|800
TASK6_RESULT|ap06_shards|1
TASK6_RESULT|ap09_atomic_path_wru_per_event|4
TASK6_RESULT|ap09_receipt_wru_per_event|2
TASK6_RESULT|ap09_receipt_aggregate_wru_s|10000
TASK6_RESULT|ap09_receipt_shards|13
TASK6_RESULT|ap09_receipt_per_shard_wru_s|769.23
TASK6_RESULT|ap09_receipt_headroom_percent|3.85
TASK6_RESULT|ap13_checkpoint_wru_per_event|1
TASK6_RESULT|ap13_checkpoint_aggregate_wru_s|5000
TASK6_RESULT|ap13_checkpoint_shards|7
TASK6_RESULT|ap13_checkpoint_per_shard_wru_s|714.29
TASK6_RESULT|ap13_checkpoint_headroom_percent|10.71
TASK6_RESULT|ap16_create_base_wru_s|20000
TASK6_RESULT|ap16_claim_base_wru_s|10200
TASK6_RESULT|ap16_complete_base_wru_s|10000
TASK6_RESULT|ap16_retry_base_wru_s|200
TASK6_RESULT|ap16_reschedule_base_wru_s|40
TASK6_RESULT|ap16_base_total_wru_s|40440
TASK6_RESULT|ap16_ready_create_insert_wru_s|5000
TASK6_RESULT|ap16_ready_claim_delete_wru_s|5100
TASK6_RESULT|ap16_ready_retry_insert_wru_s|100
TASK6_RESULT|ap16_ready_reschedule_move_wru_s|40
TASK6_RESULT|ap16_no_retry_move_floor_index_wru_s|10000
TASK6_RESULT|ap16_ready_index_wru_s|10240
TASK6_RESULT|ap16_ready_shards|13
TASK6_RESULT|ap16_per_shard_wru_s|787.69
TASK6_RESULT|ap16_headroom_percent|1.54
TASK6_RESULT|ap16_total_lifecycle_wru_s|50680
TASK6_RESULT|ledger_month_kib|1200000
TASK6_RESULT|ledger_sub_buckets|8
TASK6_RESULT|ledger_bucket_max_mib|146.48

### Interpretation and sensitivity

**Inference:** The named `accepted_order_v1` variant targets four base items:
order, idempotency result, outbox event, and AP17 sentinel. Their rounded units
sum to six and the transaction's two operations make 12. After commit, the two
order GSIs and AP16 READY GSI add three ordinary index units, for 15 total—not
`2 × (base + indexes)`. Record `ConsumedCapacity` by AP/table/index and validate
serialized sizes (C95; A100,A101,A104, retrieved 2026-08-22).

The Query returning only four rows still evaluates 24,000 bytes and consumes
three eventual units. The BatchGet example is also 1.5 units, but for a
different reason: each item rounds before summation. Mutation fixtures move
every input across a billing bucket, proving the results are not hard-coded.

**Inference:** AP06 assumes one 100-item page/request and 0.4 KiB/index item.
That is 40 KiB and five eventual read units/query: 10,000 units/s aggregate at
2,000 queries/s. An 8% top-symbol share is 800 units/s, so the formula selects
one shard under a 2,400-unit/s target. These are planning assumptions, not
measured traffic (C87; A22,A105, retrieved 2026-08-22; F24,F32,F33).

**Inference:** AP09 atomically targets one 0.35-KiB receipt and one 0.8-KiB
protected-state item. Both round to one base write and the transaction
multiplier makes four WRU/event total. Capacity placement is separate: the
receipt lane alone is two WRU/event, so 5,000 events/s needs thirteen
deterministic event-ID shards at the 800-WRU/s target (769.23/shard, 3.85%
headroom). The protected state must bind to its own AP lane and measured key
distribution; this receipt calculation cannot authorize it. AP13 uses one
ordinary sub-1-KiB conditional write/event, so 5,000/s needs seven deterministic
source-key shards (714.29/shard, 10.71% headroom). Both mappings are versioned
for a drain/reconcile/cutover rather than changing `N` in place (C87,C90,C95;
A20,A22,A100,A101,A105, retrieved 2026-08-22; F11,F24,F32,F33).

**Inference:** AP16's balanced steady planning lifecycle is 5,000 creates/s,
5,100 claims/s, 5,000 completions/s, 100 retries/s, and 20 READY-key
reschedules/s. READY and IN_FLIGHT populations are therefore stable: claim =
create+retry = complete+retry. Sub-1-KiB GSI work is 5,000 create inserts,
5,100 claim deletes, 100 retry inserts, and 20 delete+put moves = 10,240
units/s. The no-retry/no-move floor is 10,000. Thirteen shards yield 787.69
units/s/shard and 1.54% headroom below the 800 target. Base create/claim/
complete/retry/reschedule work is respectively 20,000/10,200/10,000/200/40,
or 40,440 units/s; full lifecycle work is 50,680 units/s. These are planning
assumptions, not measured traffic (C87,C95; A100,A104,A105, retrieved
2026-08-22).

**Inference:** AP10/AP11 admit at most 2,000,000 postings/account/month at 0.6
KiB each (1,200,000 KiB). A deterministic sequence-range sub-bucket rolls at
250,000 postings or 150,000 KiB, whichever comes first; the example therefore
requires eight buckets with a 146.48 MiB byte ceiling. Reject/escalate beyond
the monthly cap instead of silently growing one key (C87,C95; A100,A104,A105,
retrieved 2026-08-22).

**Inference:** For MREC with `r` replica Regions, separately model the applicable replicated
write units for each replica and TTL replicated deletes. Do not multiply a
local transactional assumption into MRSC: current MRSC tables do not support
transaction APIs (C85,C89; A107, retrieved 2026-08-22).

## CQRS break-even model

Last validated: 2026-08-22. This reusable model deliberately uses **modeled
cost units (CU)** rather than mutable AWS prices. One CU must represent the
same fully loaded economic unit on both sides of the equation. Task 10 can
replace each coefficient with dated `eu-west-1` service, storage, and labor
prices while preserving the dimensional formula (C49,C102; F19,F20).

Reads and writes are measured in **millions of logical operations per month**.
Variable coefficients are CU per million reads or writes; fixed burden is CU
per month. Transport, projection/index writes, storage, replay/rebuild,
reconciliation, and fixed engineering/on-call burden remain separate so no
free projection is smuggled into the ratio.

<!-- TASK7_CQRS_VALUES_BEGIN -->
```text
writes_million=10
reads_million=85
read_work_avoided_cu_per_million=1.8
transport_cu_per_million_writes=0.2
projection_write_cu_per_million_writes=0.5
storage_cu_per_million_writes=0.1
replay_rebuild_cu_per_million_writes=0.08
reconciliation_cu_per_million_writes=0.12
fixed_operational_cu_per_month=18
low_volume_writes_million=1
high_volume_writes_million=100
half_read_benefit_factor=0.5
double_projection_write_factor=2
double_storage_factor=2
```
<!-- TASK7_CQRS_VALUES_END -->

The next table is the only reader-visible derivation surface in this document.
The verifier derives every row from the canonical block, including the symbolic
equations, all fourteen visible inputs, the base calculation, and every
sensitivity. `W` and `R` are millions of writes and reads/month; `a` is avoided
CU/million reads; `v` is total variable CU/million writes; `F` is CU/month.

<!-- TASK7_COST_CQRS_VISIBLE_BEGIN -->
| Kind | Key | Visible value or equation | Unit |
|---|---|---|---|
| INPUT | writes_million | 10 | million writes/month |
| INPUT | reads_million | 85 | million reads/month |
| INPUT | read_work_avoided_cu_per_million | 1.80 | CU/million reads |
| INPUT | transport_cu_per_million_writes | 0.20 | CU/million writes |
| INPUT | projection_write_cu_per_million_writes | 0.50 | CU/million writes |
| INPUT | storage_cu_per_million_writes | 0.10 | CU/million writes |
| INPUT | replay_rebuild_cu_per_million_writes | 0.08 | CU/million writes |
| INPUT | reconciliation_cu_per_million_writes | 0.12 | CU/million writes |
| INPUT | fixed_operational_cu_per_month | 18 | CU/month |
| INPUT | low_volume_writes_million | 1 | million writes/month |
| INPUT | high_volume_writes_million | 100 | million writes/month |
| INPUT | half_read_benefit_factor | 0.50 | ratio |
| INPUT | double_projection_write_factor | 2 | ratio |
| INPUT | double_storage_factor | 2 | ratio |
| FORMULA | monthly_net | R * a - W * v - F | CU/month |
| FORMULA | break_even_ratio | R/W = (v + F/W) / a | reads/write |
| DERIVATION | variable_cost_per_million_writes | 0.20 + 0.50 + 0.10 + 0.08 + 0.12 = 1.00 | CU/million writes |
| DERIVATION | read_work_avoided | 85 * 1.80 = 153.00 | CU/month |
| DERIVATION | variable_projection_cost | 10 * 1.00 = 10.00 | CU/month |
| DERIVATION | fixed_operational_cost | 18.00 | CU/month |
| DERIVATION | net_benefit | 153.00 - 10.00 - 18.00 = 125.00 | CU/month |
| DERIVATION | break_even | (1.00 + 18.00 / 10) / 1.80 = 1.56 | reads/write |
| DERIVATION | low_volume_sensitivity | (1.00 + 18.00 / 1) / 1.80 = 10.56 | reads/write |
| DERIVATION | high_volume_sensitivity | (1.00 + 18.00 / 100) / 1.80 = 0.66 | reads/write |
| DERIVATION | half_read_benefit_sensitivity | (1.00 + 18.00 / 10) / (1.80 * 0.50) = 3.11 | reads/write |
| DERIVATION | double_projection_storage_sensitivity | 0.20 + 0.50 * 2 + 0.10 * 2 + 0.08 + 0.12 = 1.60; (1.60 + 18.00 / 10) / 1.80 = 1.89 | reads/write |
<!-- TASK7_COST_CQRS_VISIBLE_END -->

This is an architectural comparison, not an AWS invoice.

<!-- TASK7_CQRS_RENDER_BEGIN -->
| Metric | Unit | Result |
|---|---|---:|
| read_work_avoided_cu_month | CU/month | 153.0 |
| variable_projection_cu_month | CU/month | 10.0 |
| fixed_operational_cu_month | CU/month | 18.0 |
| net_benefit_cu_month | CU/month | 125.0 |
| break_even_reads_per_write | reads/write | 1.56 |
| low_volume_reads_per_write | reads/write | 10.56 |
| high_volume_reads_per_write | reads/write | 0.66 |
| half_benefit_reads_per_write | reads/write | 3.11 |
| double_projection_reads_per_write | reads/write | 1.89 |
<!-- TASK7_CQRS_RENDER_END -->

TASK7_RESULT|read_work_avoided_cu_month|153.0
TASK7_RESULT|variable_projection_cu_month|10.0
TASK7_RESULT|fixed_operational_cu_month|18.0
TASK7_RESULT|net_benefit_cu_month|125.0
TASK7_RESULT|break_even_reads_per_write|1.56
TASK7_RESULT|low_volume_reads_per_write|10.56
TASK7_RESULT|high_volume_reads_per_write|0.66
TASK7_RESULT|half_benefit_reads_per_write|3.11
TASK7_RESULT|double_projection_reads_per_write|1.89

**Inference:** the validated sensitivity rows expose fixed-cost dilution,
reduced read benefit, and added fan-out. Crossing a numeric threshold is
necessary but not sufficient: the projection still needs an SLO, safe overload
policy, ownership, rebuild test, reconciliation, and acceptable residual risk
(C44,C48,C102; F13,F14,F19,F20).

## Reliability recovery planning model

These values are illustrative workload inputs, not AWS service limits, prices,
or promises. `recovery_capacity_rps` means measured end-to-end committed work,
not broker reads. `safety_reservation_rps` is deliberately unused capacity for
variance and incident control. Stability requires `recovery_capacity_rps >
live_arrival_rps + safety_reservation_rps`; the redrive limiter can reduce the
remaining rate further.

The input domain requires `recovery_capacity_rps > 0 records/s`; zero or negative total capacity is rejected before any capacity-share division, while zero-spare and negative-spare fixtures retain positive total capacity.

<!-- TASK8_RECOVERY_VALUES_BEGIN -->
```text
retry_layers=3
attempts_per_layer=3
sensitivity_attempts_per_layer=4
arrival_rps=200
service_time_seconds=0.12
headroom_ratio=1.5
slow_service_multiplier=2
backlog_records=900000
recovery_capacity_rps=800
live_arrival_rps=500
safety_reservation_rps=100
replay_rate_cap_rps=200
```
<!-- TASK8_RECOVERY_VALUES_END -->

<!-- TASK8_COST_RESULTS_BEGIN -->
```text
TASK8_RESULT|nested_retry_worst_case_attempts|27.0
TASK8_RESULT|nested_retry_sensitivity_attempts|64.0
TASK8_RESULT|base_concurrency|24.0
TASK8_RESULT|planned_concurrency|36
TASK8_RESULT|slow_dependency_planned_concurrency|72
TASK8_RESULT|raw_spare_rps|200.0
TASK8_RESULT|effective_redrive_rps|200.0
TASK8_RESULT|recovery_status|POSITIVE_DRAIN
TASK8_RESULT|backlog_growth_rps|0
TASK8_RESULT|backlog_drain_seconds|4500.0
TASK8_RESULT|backlog_drain_minutes|75.0
TASK8_RESULT|recovery_action|bounded replay
TASK8_RESULT|live_capacity_percent|62.5
TASK8_RESULT|replay_capacity_percent|25.0
TASK8_RESULT|safety_capacity_percent|12.5
```
<!-- TASK8_COST_RESULTS_END -->

<!-- TASK8_COST_MODEL_VISIBLE_BEGIN -->
| Kind | Name | Value or equation | Unit |
|---|---|---:|---|
| INPUT | retry_layers | 3 | ratio/count |
| INPUT | attempts_per_layer | 3 | ratio/count |
| INPUT | sensitivity_attempts_per_layer | 4 | ratio/count |
| INPUT | arrival_rps | 200 | records/s |
| INPUT | service_time_seconds | 0.12 | s |
| INPUT | headroom_ratio | 1.50 | ratio/count |
| INPUT | slow_service_multiplier | 2 | ratio/count |
| INPUT | backlog_records | 900000 | records |
| INPUT | recovery_capacity_rps | 800 | records/s |
| INPUT | live_arrival_rps | 500 | records/s |
| INPUT | safety_reservation_rps | 100 | records/s |
| INPUT | replay_rate_cap_rps | 200 | records/s |
| FORMULA | nested_retry | attempts_per_layer ^ retry_layers | attempts |
| FORMULA | concurrency | ceil(arrival_rps * service_time_seconds * headroom_ratio) | concurrent requests |
| FORMULA | raw_spare | recovery_capacity_rps - live_arrival_rps - safety_reservation_rps | records/s |
| FORMULA | effective_replay | max(0, min(replay_rate_cap_rps, raw_spare_rps)) | records/s |
| FORMULA | drain_time | if effective_redrive_rps > 0 then backlog_records / effective_redrive_rps else infinite | s |
| FORMULA | negative_branch | if raw_spare_rps < 0 then backlog_growth_rps = -raw_spare_rps | records/s |
| RESULT | nested_retry_worst_case_attempts | 27 | attempts |
| RESULT | nested_retry_sensitivity_attempts | 64 | attempts |
| RESULT | base_concurrency | 24 | concurrent requests |
| RESULT | planned_concurrency | 36 | concurrent requests |
| RESULT | slow_dependency_planned_concurrency | 72 | concurrent requests |
| RESULT | raw_spare_rps | 200 | records/s |
| RESULT | effective_redrive_rps | 200 | records/s |
| RESULT | recovery_status | POSITIVE_DRAIN | state |
| RESULT | backlog_growth_rps | 0 | records/s |
| RESULT | backlog_drain_seconds | 4500 | s |
| RESULT | backlog_drain_minutes | 75 | min |
| RESULT | recovery_action | bounded replay | action |
| RESULT | live_capacity_percent | 62.50 | % |
| RESULT | replay_capacity_percent | 25 | % |
| RESULT | safety_capacity_percent | 12.50 | % |
<!-- TASK8_COST_MODEL_VISIBLE_END -->

Interpretation: `ceil(arrival rate × service time × headroom)` gives 36 planned
concurrent requests and 72 at the 2x slowdown. Raw spare is `mu - lambda -
reserve`; effective replay is `max(0, min(cap, raw_spare))`. Positive spare can
drain, zero spare means no drain and infinite drain time, and negative spare
means backlog growth at the deficit rate plus admission reduction or capacity
restoration. The positive example drains 900,000 records in 4,500 seconds or 75
minutes. Detection, deployment, skew, retries, and reconciliation margin must
be added before setting retention.

## Trading architecture selection envelopes

These Task 9 values are **illustrative planning assumptions**, not AWS prices,
quotas, service promises, or measured production facts. They expose the ratios
that would falsify each architecture choice without duplicating Task 10's dated
regional price analysis. Before selection, measure request and event-rate
distributions, serialized payloads, key skew, end-to-end committed throughput,
tail latency, dependency slowdowns, rebuild time, reconciliation breaks, and
the engineering/on-call/compliance hours needed to own each variant (C112;
F19,F20).

<!-- TASK9_MODEL_VALUES_BEGIN -->
```text
a_commands_peak_rps=1000
a_reads_peak_rps=50000
a_low_reads_peak_rps=12000
a_authoritative_writes_per_command=4
a_projection_writes_per_command=4
a_projection_write_migration_trigger=6
b_average_events_rps=5000
b_peak_events_rps=8000
b_payload_bytes=700
b_fanout_consumers=3
b_top_symbol_share=0.12
b_hot_share_sensitivity=0.15
b_single_lane_capacity_rps=1000
b_recovery_capacity_rps=12000
b_live_allocation_rps=8000
b_safety_reservation_rps=1000
b_replay_cap_rps=3000
b_backlog_records=4500000
b_zero_spare_capacity_rps=9000
c_total_arrival_rps=24000
c_match_partitions=8
c_service_time_us=180
c_top_symbol_share=0.20
c_hot_share_sensitivity=0.24
c_service_time_sensitivity_us=220
c_hot_dedicated_partition=1
c_hot_partition_other_live_rps=0
c_hot_safety_reservation_rps=300
c_hot_replay_cap_rps=400
c_hot_backlog_commands=240000
c_hot_zero_capacity_rps=5100
c_burst_arrival_rps=6200
c_burst_duration_seconds=2
```
<!-- TASK9_MODEL_VALUES_END -->

The same complete table is rendered in the Task 9 chapter. All formula rows,
inputs, base results, and sensitivities are validated against the block above.

<!-- TASK9_COST_VISIBLE_BEGIN -->
| Kind | Key | Value or equation | Unit |
|---|---|---:|---|
| INPUT | a_commands_peak_rps | 1000 | commands/s |
| INPUT | a_reads_peak_rps | 50000 | reads/s |
| INPUT | a_low_reads_peak_rps | 12000 | reads/s |
| INPUT | a_authoritative_writes_per_command | 4 | writes/command |
| INPUT | a_projection_writes_per_command | 4 | writes/command |
| INPUT | a_projection_write_migration_trigger | 6 | writes/command |
| INPUT | b_average_events_rps | 5000 | events/s |
| INPUT | b_peak_events_rps | 8000 | events/s |
| INPUT | b_payload_bytes | 700 | B/event |
| INPUT | b_fanout_consumers | 3 | consumers |
| INPUT | b_top_symbol_share | 0.12 | ratio |
| INPUT | b_hot_share_sensitivity | 0.15 | ratio |
| INPUT | b_single_lane_capacity_rps | 1000 | events/s |
| INPUT | b_recovery_capacity_rps | 12000 | committed events/s |
| INPUT | b_live_allocation_rps | 8000 | events/s |
| INPUT | b_safety_reservation_rps | 1000 | events/s |
| INPUT | b_replay_cap_rps | 3000 | events/s |
| INPUT | b_backlog_records | 4500000 | events |
| INPUT | b_zero_spare_capacity_rps | 9000 | committed events/s |
| INPUT | c_total_arrival_rps | 24000 | commands/s |
| INPUT | c_match_partitions | 8 | partitions |
| INPUT | c_service_time_us | 180 | us/command |
| INPUT | c_top_symbol_share | 0.20 | ratio |
| INPUT | c_hot_share_sensitivity | 0.24 | ratio |
| INPUT | c_service_time_sensitivity_us | 220 | us/command |
| INPUT | c_hot_dedicated_partition | 1 | boolean 1=yes |
| INPUT | c_hot_partition_other_live_rps | 0 | commands/s |
| INPUT | c_hot_safety_reservation_rps | 300 | commands/s |
| INPUT | c_hot_replay_cap_rps | 400 | commands/s |
| INPUT | c_hot_backlog_commands | 240000 | commands |
| INPUT | c_hot_zero_capacity_rps | 5100 | commands/s |
| INPUT | c_burst_arrival_rps | 6200 | commands/s |
| INPUT | c_burst_duration_seconds | 2 | s |
| FORMULA | a_read_write_ratio | a_reads_peak_rps / a_commands_peak_rps | reads/command |
| FORMULA | a_total_write_amplification | a_authoritative_writes_per_command + a_projection_writes_per_command | writes/command |
| FORMULA | b_raw_bytes_per_second | events_rps * b_payload_bytes | B/s |
| FORMULA | b_fanout_bytes_per_second | raw_bytes_per_second * b_fanout_consumers | B/s |
| FORMULA | b_hot_symbol_rate | events_rps * symbol_share | events/s |
| FORMULA | b_replay_rate | max(0,min(replay_cap,recovery-live-safety)) | events/s |
| FORMULA | b_drain_time | backlog / replay_rate; infinite when replay_rate <= 0 | s |
| FORMULA | c_partition_arrival | c_total_arrival_rps / c_match_partitions | commands/s/partition |
| FORMULA | c_utilization | arrival_rps * service_time_us / 1000000 | ratio |
| FORMULA | c_hottest_symbol_utilization | c_total_arrival_rps * share * service_time_us / 1000000 | ratio |
| FORMULA | c_hot_partition_live | hottest_symbol_rps + other_live_rps | commands/s |
| FORMULA | c_hot_arithmetic_spare | service_capacity - hot_partition_live | commands/s |
| FORMULA | c_hot_replay_rate | max(0,min(replay_cap,service_capacity-hot_live-safety)) | commands/s |
| FORMULA | c_hot_drain_time | hot_backlog / hot_replay_rate; infinite when replay_rate <= 0 | s |
| FORMULA | c_burst_queue_growth | max(0,burst_arrival-service_capacity) * burst_duration | commands |
| RESULT | a_read_write_ratio | 50.00 | reads/command |
| RESULT | a_low_read_write_ratio | 12.00 | reads/command |
| RESULT | a_projection_write_amplification | 4 | writes/command |
| RESULT | a_total_write_amplification | 8 | writes/command |
| RESULT | a_migration_trigger | REASSESS_AT_6_PROJECTION_WRITES | state |
| RESULT | b_average_raw_Bps | 3500000 | B/s |
| RESULT | b_peak_raw_Bps | 5600000 | B/s |
| RESULT | b_average_fanout_Bps | 10500000 | B/s |
| RESULT | b_peak_fanout_Bps | 16800000 | B/s |
| RESULT | b_top_symbol_average_rps | 600 | events/s |
| RESULT | b_top_symbol_peak_rps | 960 | events/s |
| RESULT | b_hot_sensitivity_peak_rps | 1200 | events/s |
| RESULT | b_hot_sensitivity_state | OVER_SINGLE_LANE | state |
| RESULT | b_live_capacity_percent | 66.67 | % |
| RESULT | b_replay_capacity_percent | 25.00 | % |
| RESULT | b_safety_capacity_percent | 8.33 | % |
| RESULT | b_replay_rate_rps | 3000 | events/s |
| RESULT | b_backlog_drain_seconds | 1500.00 | s |
| RESULT | b_backlog_drain_minutes | 25.00 | min |
| RESULT | b_zero_spare_state | NO_SAFE_DRAIN | state |
| RESULT | c_partition_arrival_rps | 3000.00 | commands/s/partition |
| RESULT | c_partition_service_capacity_rps | 5555.56 | commands/s/partition |
| RESULT | c_partition_utilization | 0.5400 | ratio |
| RESULT | c_partition_headroom_percent | 46.00 | % |
| RESULT | c_hottest_symbol_rps | 4800 | commands/s |
| RESULT | c_hottest_symbol_utilization | 0.8640 | ratio |
| RESULT | c_hot_share_sensitivity_rps | 5760 | commands/s |
| RESULT | c_hot_share_sensitivity_utilization | 1.0368 | ratio |
| RESULT | c_service_time_sensitivity_utilization | 1.0560 | ratio |
| RESULT | c_hottest_sensitivity_state | OVER_CAPACITY | state |
| RESULT | c_hot_partition_assignment | DEDICATED_HOT_BOOK | state |
| RESULT | c_hot_partition_other_live_rps | 0 | commands/s |
| RESULT | c_hot_partition_live_rps | 4800 | commands/s |
| RESULT | c_hot_arithmetic_spare_rps | 755.56 | commands/s |
| RESULT | c_hot_partition_headroom_percent | 13.60 | % |
| RESULT | c_hot_safety_reservation_rps | 300 | commands/s |
| RESULT | c_hot_effective_replay_rps | 400 | commands/s |
| RESULT | c_hot_backlog_drain_seconds | 600.00 | s |
| RESULT | c_hot_backlog_drain_minutes | 10.00 | min |
| RESULT | c_hot_zero_spare_state | NO_SAFE_DRAIN | state |
| RESULT | c_burst_excess_rps | 644.44 | commands/s |
| RESULT | c_burst_queue_growth_commands | 1288.89 | commands |
| RESULT | c_tail_service_capacity_rps | 4545.45 | commands/s |
| RESULT | c_p99_latency_state | UNVALIDATED_LOAD_TEST_REQUIRED | state |
<!-- TASK9_COST_VISIBLE_END -->

<!-- TASK9_INTERPRETATION_BEGIN -->
Interpretation by variant:

- **Variant A:** the base planning point has 50 reads per command, four
  deliberate projection writes, and eight total logical writes. Task 10's dated model puts ARCA's 50 reads/command below its 75.462912 reads/write cost break-even and at -$887.203238/month; choose ARCA only when the measured 95 ms p99 read-latency gain, 2-second freshness, and command/read isolation justify that cost. The lower-read
  sensitivity is 12 reads/command. Reassess when measured read work avoided no
  longer covers variable projection/storage/rebuild work and fixed ownership,
  or when projection fan-out reaches six writes/command.
- **Variant B:** raw traffic is 3,500,000 B/s average and 5,600,000 B/s peak;
  three full consumers turn that into 10,500,000 and 16,800,000 downstream B/s
  before protocol/storage amplification. A 12% top symbol reaches 960 events/s
  at peak against the 1,000-event/s planning lane; 15% reaches 1,200 and forces
  admission, a different source-order/merge design, or a new substrate. Of
  12,000 committed events/s, the model reserves 66.67% live, 25% replay, and
  8.33% safety; 4,500,000 events drain in 1,500 seconds (25 minutes). At 9,000
  total capacity, live plus safety leaves no safe drain.
- **Variant C:** the average across eight partitions is 3,000 commands/s, 0.54
  utilization, and 46% arithmetic headroom at 180 us, but it is not an
  admission or latency proof. The 20% hottest book has a dedicated partition,
  so its 4,800/s includes 0/s co-located book traffic; utilization is 0.864,
  arithmetic spare is 755.56/s, and headroom is 13.60%. After a 300/s hot-book
  safety reserve, effective replay is capped at 400/s; 240,000 commands drain
  in 600.00 seconds (10.00 minutes). A 5,100/s zero-capacity case leaves no
  safe hot-book replay. A 6,200/s burst for 2 seconds exceeds nominal service
  capacity by 644.44/s and grows the queue by 1,288.89 commands before retries
  or downstream delay. A 24% hot share reaches 5,760/s and 1.0368 utilization;
  a 220 us service-time tail gives 4,545.45/s capacity and 1.0560 utilization.
  The sub-1-ms p99 is therefore an unvalidated scenario target until measured
  burst, tail, queue, journal, and replay load tests prove it. Admission,
  migration, and replay use this hottest-partition envelope, never aggregate
  spare on unrelated books.
<!-- TASK9_INTERPRETATION_END -->

Variable drivers are service requests, bytes, fan-out, writes/indexes, compute,
storage/retention, transfer, replay, evidence, and reconciliation. Fixed burden
is architecture design, exchange/FIX certification, schema and policy ownership,
security review, on-call, game days, compliance evidence, and trained operations.
The model chooses neither service nor price; Task 10 will attach dated
`eu-west-1` prices.

## Task 10 dated cross-service cost, performance, and capacity model

Last validated: 2026-08-22. This extension preserves every Task 5–9 block and
uses one new closed model copied byte-for-byte into the reader chapter.
Portable formulas are separate from mutable prices. `B` and `KiB` retain the
definitions above; price-list `GB` is modeled as `2^30 B`, the month is
2,592,000 seconds / 720 hours, and every multiplication retains its dimension.

All workload, FTE/salary, on-call, compliance, expected-loss, cache-hit,
compression, skew, utilization, and retention values are illustrative planning
assumptions. Free tier, progressive tiers above the declared first tier, tax,
support, credits, and commitments/Savings Plans are excluded symmetrically.
Each PRICE row records service, SKU, usage type, operation, unit, tier boundary,
publication, region, currency, retrieval date, and route (C49,C113,C116;
A99,A123–A127, retrieved 2026-08-22; F19,F20).

Expected correctness/availability loss is a scenario input, never permission to violate an invariant or mandatory control.

<!-- TASK10_CANONICAL_BEGIN -->
# official AWS prices retrieved 2026-08-22
META|task10-v1|eu-west-1|USD|2026-08-22|2592000s_720h|1GB=2^30B
PRICE|lambda_request_usd|AWSLambda|B5V2RNHAWGVJBZD3|EU-Request|none|Request|0|Inf|0.0000002000|2026-08-19T22:47:03Z|retrieved_2026-08-22|A123
PRICE|lambda_gb_second_usd|AWSLambda|SGGKTWDV7PGMPPSJ|EU-Lambda-GB-Second|none|Lambda-GB-Second|0|6000000000|0.0000166667|2026-08-19T22:47:03Z|retrieved_2026-08-22|A123
PRICE|fargate_vcpu_hour_usd|AmazonECS|K4EXFQ5YFQCP98EN|EU-Fargate-vCPU-Hours:perCPU|none|hours|0|Inf|0.0404800000|2026-07-07T16:06:51Z|retrieved_2026-08-22|A124
PRICE|fargate_gb_hour_usd|AmazonECS|UP5ETC3QSW2QZGEY|EU-Fargate-GB-Hours|none|hours|0|Inf|0.0044450000|2026-07-07T16:06:51Z|retrieved_2026-08-22|A124
PRICE|ddb_wru_usd|AmazonDynamoDB|F4EZE5SAMS3D49NJ|EU-WriteRequestUnits|PayPerRequestThroughput|WriteRequestUnits|0|Inf|0.0000007050|2026-08-15T03:52:56Z|retrieved_2026-08-22|A125
PRICE|ddb_replicated_wru_usd|AmazonDynamoDB|Y8RETJA3NHS97536|EU-ReplWriteRequestUnits|PayPerRequestThroughput|ReplicatedWriteRequestUnits|0|Inf|0.0000007050|2026-08-15T03:52:56Z|retrieved_2026-08-22|A125
PRICE|ddb_rru_usd|AmazonDynamoDB|3ERQSZWPAMX2JWHN|EU-ReadRequestUnits|PayPerRequestThroughput|ReadRequestUnits|0|Inf|0.0000001415|2026-08-15T03:52:56Z|retrieved_2026-08-22|A125
PRICE|kinesis_shard_hour_usd|AmazonKinesis|C8T9ZXPQRX6FS23J|EU-Storage-ShardHour|shardHourStorage|ShardHour|0|Inf|0.0170000000|2026-08-13T19:39:54Z|retrieved_2026-08-22|A99
PRICE|kinesis_put_payload_unit_usd|AmazonKinesis|XE5NBZYRTSWZZ8J7|EU-PutRequestPayloadUnits|PutRequest|PutRequest|0|Inf|0.0000000165|2026-08-13T19:39:54Z|retrieved_2026-08-22|A99
PRICE|kinesis_efo_consumer_shard_hour_usd|AmazonKinesis|HUJ72XPTKF8QXV6H|EU-EnhancedFanoutHour|ConsumerHour|ConsumerShardHour|0|Inf|0.0170000000|2026-08-13T19:39:54Z|retrieved_2026-08-22|A99
PRICE|kinesis_efo_gb_usd|AmazonKinesis|W6ZVCP635EBGH7N7|EU-ReadBytes|EnhancedFanoutDataRetrieval|GB|0|Inf|0.0147000000|2026-08-13T19:39:54Z|retrieved_2026-08-22|A99
PRICE|s3_standard_gb_month_usd|AmazonS3|4AJHPB29ZPVFADXP|EU-TimedStorage-ByteHrs|none|GB-Mo|0|51200|0.0230000000|2026-08-18T18:11:13Z|retrieved_2026-08-22|A126
PRICE|s3_restore_request_usd|AmazonS3|ETABQUNVVQGWUQN4|EU-Requests-Tier3|RestoreObject|Requests|0|Inf|0.0000550000|2026-08-18T18:11:13Z|retrieved_2026-08-22|A126
PRICE|s3_get_request_usd|AmazonS3|ZCQD4CM637S7D8U5|EU-Requests-Tier2|none|Requests|0|Inf|0.0000004000|2026-08-18T18:11:13Z|retrieved_2026-08-22|A126
PRICE|s3_restore_retrieval_gb_usd|AmazonS3|G6YZ6EAX5498CAQ2|EU-Standard-Retrieval-Bytes|RestoreObject|GB|0|Inf|0.0100000000|2026-08-18T18:11:13Z|retrieved_2026-08-22|A126
SETTING|region|eu-west-1|region
SETTING|currency|USD|currency
SETTING|retrieval_date|2026-08-22|date
SETTING|lambda_architecture|x86_64|architecture
SETTING|kinesis_capacity_mode|provisioned|mode
SETTING|kinesis_read_mode|EFO|mode
SETTING|replay_expired_post_reingest_read_mode|EFO|mode
SETTING|ddb_capacity_mode|on_demand|mode
SETTING|ddb_read_consistency|eventual|setting
SETTING|free_tier_tiering_commitments|excluded_symmetrically|policy
LANE|order|ddb_txn_order_kib|ddb_order_hot_share|base|transactional
LANE|idempotency|ddb_txn_idempotency_kib|ddb_idempotency_hot_share|base|transactional
LANE|outbox|ddb_txn_outbox_kib|ddb_outbox_hot_share|base|transactional
LANE|sentinel|ddb_txn_sentinel_kib|ddb_sentinel_hot_share|base|transactional
LANE|order_account_gsi|ddb_order_account_gsi_kib|ddb_order_account_gsi_hot_share|gsi|ordinary
LANE|order_status_gsi|ddb_order_status_gsi_kib|ddb_order_status_gsi_hot_share|gsi|ordinary
LANE|outbox_ready_gsi|ddb_outbox_ready_gsi_kib|ddb_outbox_ready_gsi_hot_share|gsi|ordinary
INPUT|month_seconds|2592000|s/month
INPUT|month_hours|720|h/month
INPUT|avg_orders_rps|100|requests/s
INPUT|peak_orders_rps|400|requests/s
INPUT|active_duty_cycle|0.25|ratio
INPUT|accept_rate|0.95|accepted/orders
INPUT|fills_per_accepted|1.2|fills/accepted
INPUT|market_updates_rps|5000|records/s
INPUT|peak_market_rps|8000|records/s
INPUT|burst_seconds|60|s
INPUT|payload_bytes|700|B/record
INPUT|billing_chunk_bytes|25600|B/Kinesis-PUT-payload-unit
INPUT|put_payload_chunk_bytes|25600|B/payload-unit
INPUT|fanout_consumers|3|consumers
INPUT|projection_fanout|4|projection-writes/accepted
INPUT|batch_small|1|records/invocation
INPUT|batch_medium|10|records/invocation
INPUT|batch_large|100|records/invocation
INPUT|flush_small_ms|5|ms
INPUT|flush_medium_ms|50|ms
INPUT|flush_large_ms|500|ms
INPUT|retry_rate|0.02|retries/original
INPUT|partial_failure_rate|0.01|failed-records/original
INPUT|replay_ratio|0.05|replay-records/original
INPUT|lambda_memory_gb|1|GB/invocation
INPUT|lambda_duration_s|0.08|s/invocation
INPUT|lambda_headroom|1.5|ratio
INPUT|lambda_tail_target_ms|200|ms
INPUT|lambda_measured_p99_ms|180|ms
INPUT|lambda_cold_p99_ms|350|ms
INPUT|fargate_tasks|2|tasks
INPUT|fargate_vcpu|1|vCPU/task
INPUT|fargate_memory_gb|2|GB/task
INPUT|fargate_worker_service_s|0.08|s/batch
INPUT|fargate_events_per_batch|10|events/batch
INPUT|fargate_capacity_headroom|1.5|ratio
INPUT|fargate_ha_min_tasks|2|tasks
INPUT|fargate_scaling_lag_s|30|s
INPUT|compute_peak_to_active_ratio|4|peak/active
INPUT|compute_crossing_search_max_average_rps|10000|time-averaged-events/s
INPUT|partial_batch_checkpoint_enabled|1|boolean
INPUT|ddb_txn_order_kib|1.2|KiB/item
INPUT|ddb_txn_idempotency_kib|0.7|KiB/item
INPUT|ddb_txn_outbox_kib|1.6|KiB/item
INPUT|ddb_txn_sentinel_kib|0.2|KiB/item
INPUT|ddb_order_account_gsi_kib|0.45|KiB/index-entry
INPUT|ddb_order_status_gsi_kib|0.35|KiB/index-entry
INPUT|ddb_outbox_ready_gsi_kib|0.45|KiB/index-entry
INPUT|ddb_order_hot_share|0.30|ratio
INPUT|ddb_idempotency_hot_share|0.20|ratio
INPUT|ddb_outbox_hot_share|0.25|ratio
INPUT|ddb_sentinel_hot_share|0.10|ratio
INPUT|ddb_order_account_gsi_hot_share|0.20|ratio
INPUT|ddb_order_status_gsi_hot_share|0.15|ratio
INPUT|ddb_outbox_ready_gsi_hot_share|0.25|ratio
INPUT|ddb_transaction_multiplier|2|WRU/ordinary-WRU
INPUT|ddb_hot_share|0.30|ratio
INPUT|ddb_lane_target_wru_s|1000|WRU/s
INPUT|ddb_global_table_replicas|0|added-replica-regions
INPUT|ddb_replica_storage_usd_month|0|USD/month-scenario
INPUT|ddb_replica_restore_usd_month|0|USD/month-scenario
INPUT|ddb_replica_topology_other_usd_month|0|USD/month-scenario
INPUT|kinesis_skew|1.25|hottest/average
INPUT|kinesis_top_key_share|0.15|ratio
INPUT|kinesis_util_target|0.80|ratio
INPUT|kinesis_shard_write_rps|1000|records/s/shard
INPUT|kinesis_shard_write_Bps|1000000|B/s/shard
INPUT|kinesis_shard_read_Bps|2000000|B/s/shard
INPUT|kinesis_recovery_commit_rps|9000|committed-records/s
INPUT|kinesis_zero_spare_commit_rps|6000|committed-records/s
INPUT|kinesis_safety_rps|1000|records/s
INPUT|kinesis_backlog_records|4500000|records
INPUT|kinesis_retention_hours|24|hours
INPUT|replay_age_hours|30|hours
INPUT|replay_sensitivity_ratio|0.20|replay-records/original
INPUT|replay_retrieval_consumers|3|consumers
INPUT|replay_consumer_batch_records|100|records/invocation
INPUT|replay_consumer_memory_gb|1|GB/invocation
INPUT|replay_consumer_duration_s|0.08|s/invocation
INPUT|replay_sink_consumers|3|consumers
INPUT|replay_sink_wru_per_record|1|WRU/written-record
INPUT|replay_sink_write_fraction|0.10|written/replayed-record
INPUT|replay_duplicate_rate|0.02|duplicates/attempt
INPUT|replay_idempotency_rru_per_attempt|1|RRU/attempt
INPUT|replay_reconciliation_rate|0.01|reconciliations/attempt
INPUT|replay_sink_capacity_wru_s|2000|WRU/s
INPUT|replay_retained_source_capacity_rps|4000|source-records/s
INPUT|replay_restore_source_capacity_rps|4000|source-records/s
INPUT|replay_consumer_capacity_rps|4000|source-records/s
INPUT|replay_stream_reingest_capacity_rps|5000|source-records/s
INPUT|replay_expired_post_reingest_read_capacity_rps|4000|source-records/s
INPUT|replay_archive_object_bytes|134217728|B/object
INPUT|audit_monthly_ingest_gb|100|GB/month
INPUT|audit_retention_months|24|months
INPUT|audit_year1_months|12|months
INPUT|audit_year2_months|24|months
INPUT|audit_object_lock_usd_year|0|USD/year-scenario
INPUT|audit_requests_usd_year|0|USD/year-scenario
INPUT|audit_transitions_usd_year|0|USD/year-scenario
INPUT|audit_retrieval_usd_year|0|USD/year-scenario
INPUT|audit_kms_usd_year|0|USD/year-scenario
INPUT|audit_export_usd_year|0|USD/year-scenario
INPUT|audit_legal_review_usd_year|0|USD/year-scenario
INPUT|active_accounts|50000|accounts-month
INPUT|ddb_read_item_kib|6|KiB/item
INPUT|cqrs_rru_avoided_per_read|4|RRU/read
INPUT|cqrs_zero_benefit_rru|0|RRU/read
INPUT|cqrs_projection_writes|4|writes/source-write
INPUT|cqrs_transport_requests_per_write|1|requests/source-write
INPUT|cqrs_cache_storage_usd_month|150|USD/month
INPUT|cqrs_rebuild_ratio|0.05|rebuild-writes/source-write
INPUT|cqrs_reconciliation_rate|0.01|reconciliations/source-write
INPUT|cqrs_engineering_hours|6|hours/month
INPUT|cqrs_oncall_hours|2|hours/month
INPUT|cqrs_hourly_usd|150|USD/hour
INPUT|cqrs_fixed_ops_usd|1000|USD/month
INPUT|cqrs_source_p99_ms|120|ms
INPUT|cqrs_projection_p99_ms|25|ms
INPUT|cqrs_freshness_s|2|s
INPUT|allocation_accepted_order|0.20|ratio
INPUT|allocation_execution_fill|0.20|ratio
INPUT|allocation_million_market_updates|0.35|ratio
INPUT|allocation_active_account_month|0.05|ratio
INPUT|allocation_projection_update|0.15|ratio
INPUT|allocation_retained_audit_year|0.05|ratio
INPUT|engineering_usd|12000|USD/month
INPUT|oncall_usd|6000|USD/month
INPUT|compliance_usd|4000|USD/month
INPUT|expected_loss_usd|5000|USD/month
FORMULA|business_counts|orders=avg_orders_rps*month_seconds*duty; accepted=orders*accept_rate; fills=accepted*fills_per_accepted|events/month
FORMULA|batching|invocations=orders/batch*(1+retry); chunks=ceil(batch*payload/billing_chunk); redelivery=batch*(retry+partial); concurrency=ceil(peak/batch*duration*headroom)|mixed
FORMULA|fanout|consumer_work=market_updates*consumers*(1+retry+replay)|records/month
FORMULA|cqrs_break_even|R/W=(projection_variable+fixed_ops/W)/(rru_avoided*rru_price)|reads/write
FORMULA|kinesis_capacity|shards=ceil(max(peak*payload/Bps_limit,peak/rps_limit)*skew/util_target)|shards
FORMULA|kinesis_recovery|drain=backlog/(commit-live-safety); no_safe_drain when denominator<=0|s
FORMULA|dynamodb_amplification|WRU/order=2*sum(ceil(each transaction target KiB))+sum(ceil(each GSI entry KiB))|WRU/order
FORMULA|compute_break_even|events/s=fargate_monthly*batch/(month_seconds*(1+retry)*(request_price+memory*duration*GBs_price))|events/s
FORMULA|unit_economics|unit_cost=allocated_numerator/business_denominator|USD/business-unit
FORMULA|sensitivity|recompute(base;traffic*0.5;traffic*2;fanout*2;burst*10;replay)|scenario
FORMULA|audit_cohorts|exposure=monthly_ingest*sum(cohort_months); retained_years=months/12; unit=annual_storage/retained_years|GB-month,USD/year
FORMULA|compute_capacity|capacity_per_task=batch/service; tasks=max(HA,ceil(peak*headroom/capacity)); active_crossing=average_crossing/duty|events/s,tasks
FORMULA|cqrs_components|threshold=(transport+projection_index+cache+rebuild+reconciliation+engineering+oncall+other_fixed)/avoided_read|reads/write
FORMULA|scenario_economics|recompute all priced components and six marginal/allocated/fully-loaded units under traffic,fanout,replay,retention,replicas|USD
FORMULA|compute_stepwise_capacity|for each average rate derive active=average/duty, peak=active*peak_ratio, tasks=max(HA,ceil(peak*headroom/task_capacity)), then compare Lambda to fleet|state,USD/month
FORMULA|dynamodb_physical_lanes|each base table and GSI lane=peak*lane_share*rounded_lane_WRU; feasibility=max(actual lane)|WRU/s
FORMULA|replica_billing|single Region=base_WRU+GSI_WRU; with n added Regions all n+1 Regions bill base_rWRU+ordinary_GSI_WRU+typed topology scenarios|USD/month
FORMULA|replay_full_path|select retained EFO or expired S3 restore/re-ingest plus selected post-read mode; effective rate=min(source,post-read,consumer,stream,spare,sink); then price retrieval+consumer+sink+idempotency+reconciliation and drain|USD/month,state
DRIVER|eventbridge|scenario_both|batching|cqrs|capacity
DRIVER|sqs_sns|scenario_both|batching|cqrs|capacity
DRIVER|step_functions|scenario_both|batching|cqrs|capacity
DRIVER|api|scenario_both|batching|cqrs|capacity
DRIVER|storage|modeled_both|batching|cqrs|capacity
DRIVER|retention_storage_class|scenario_both|batching|cqrs|capacity
DRIVER|cache_search_analytics|scenario_both|batching|cqrs|capacity
DRIVER|logs|scenario_both|batching|cqrs|capacity
DRIVER|traces|scenario_both|batching|cqrs|capacity
DRIVER|data_transfer|scenario_both|batching|cqrs|capacity
DRIVER|nat|scenario_both|batching|cqrs|capacity
DRIVER|kms|scenario_both|batching|cqrs|capacity
DRIVER|backup_export|scenario_both|batching|cqrs|capacity
DRIVER|retries_dlqs|scenario_both|batching|cqrs|capacity
DRIVER|replay_reconciliation|scenario_both|batching|cqrs|capacity
DRIVER|multi_az_region|scenario_both|batching|cqrs|capacity
DRIVER|support_discounts_tax|excluded_both:risk=invoice_variance|batching|cqrs|capacity
DRIVER|engineering_oncall|modeled_both|batching|cqrs|capacity
DRIVER|expected_correctness_availability_loss|scenario_both|batching|cqrs|capacity
SEMANTIC|chapter_preamble|chapter|PREAMBLE|closed_section|C49,C102,C112,C113|F19,F20|governed_v1|sha256:cba4691ddd0a5f8c505f912abd6e74e8e92ad9a1d0cc0d944abcf1ceb1cb8ee2
SEMANTIC|chapter_optimization|chapter|Optimization sequence|closed_section|C105,C108,C109,C110,C111,C112,C113,C114,C115|F19,F20|governed_v1|sha256:5df27fc8fa9967350996427e01a73d32711e29e84259785a277df899c130ec92
SEMANTIC|chapter_canonical|chapter|Canonical quantitative model|closed_section|C49,C78,C82,C95,C113,C114,C116|A44,A45,A46,A75,A99,A100,A123,A124,A125,A126,A127,F19,F20|governed_v1|sha256:8f58dbcc483b1919e737cfd56bf9a0c72a2d73da6c2f6f6d1ae8730a7d62e430
SEMANTIC|chapter_units|chapter|Six fintech unit economics|closed_section|C113|A123,A125,A126,F19,F20|governed_v1|sha256:e8806b03a1ee9f755ba30021e667475d67e01833be7d067424f163e0d4a70c11
SEMANTIC|chapter_batching|chapter|Batching and fan-out|closed_section|C73,C76,C113,C114|A96,A98,A99|governed_v1|sha256:7e01449e43e4d6717a1cead2bce8afbfd009355ec470638d6fe5f822da5ee060
SEMANTIC|chapter_cqrs|chapter|CQRS dated break-even|closed_section|C35,C46,C97,C100,C102,C113|A113,F06,F19,F20|governed_v1|sha256:171d71d4deebb924fa714becdd5abdbd6545549dca1d179be33229ab6ce98dc1
SEMANTIC|chapter_capacity|chapter|Kinesis and DynamoDB feasibility|closed_section|C70,C75,C77,C78,C82,C83,C85,C87,C89,C95,C114,C116|A95,A97,A99,A100,A101,A104,A105,A107,A125,A126,A127|governed_v1|sha256:308324dd1d668fac5ac28f2c744e6de0ba14c3c0816b6f326d1a39fc7c4322ff
SEMANTIC|chapter_compute|chapter|Lambda versus sustained compute|closed_section|C53,C111,C115|A51,A58,A59,A67,A123,A124,F09|governed_v1|sha256:e1209232ceaad7d07a40403ccbc3fa93263ae96b8405c87bfa9bbacc1424168b
SEMANTIC|chapter_completeness|chapter|Cost-completeness matrix|closed_section|C113,C114,C115,C116|A99,A123,A124,A125,A126,A127,F19,F20|governed_v1|sha256:7fe8b6d53e48c78f022b44f8507055150d279a16f3c4ba6536377cbe63bb024f
SEMANTIC|chapter_decisions|chapter|Decision table|closed_section|C113,C114,C115,C116|A99,A123,A124,A125,A126,A127,F19,F20|governed_v1|sha256:014719b2690da00561b3ed80403caa462c16e4b3de0b94511f0c05867a5db53c
SEMANTIC|chapter_sensitivity|chapter|Sensitivity and falsification|closed_section|C113,C114,C115,C116|A99,A123,A124,A125,A126,A127,F19,F20|governed_v1|sha256:75da42848f4b0ef5676461becc537c9d5057956bc4aaf57aaa9553b0061833df
SEMANTIC|chapter_questions|chapter|Senior quantitative interview questions|closed_section|C113,C114,C115,C116|A99,A123,A124,A125,A126,A127,F19,F20|governed_v1|sha256:06f4826de85f0686d232faeaf6e37300c4ea11f6ef88080b35055a02634541aa
SEMANTIC|chapter_sources|chapter|Sources|closed_section|C49,C102,C112,C113,C114,C115,C116|A44,A45,A46,A51,A67,A75,A95,A99,A100,A101,A102,A103,A104,A105,A107,A123,A124,A125,A126,A127,F19,F20|governed_v1|sha256:ee256848006c6fee0d9a58d8468c12bcfff8a3f0a8c285ab344c2d239db4ea7a
SEMANTIC|cost_task10|cost|Task 10 dated cross-service cost, performance, and capacity model|closed_section|C49,C113,C114,C115,C116|A99,A123,A124,A125,A126,A127,F19,F20|governed_v1|sha256:ac59c724a9788bb76a02762d63496cc5fce4974be506f2b685e2b8a065c0f789
RESULT|monthly_orders|64800000.0|orders/month
RESULT|monthly_accepted_orders|61560000.0|accepted/month
RESULT|monthly_fills|73872000.0|fills/month
RESULT|monthly_market_updates|12960000000.0|records/month
RESULT|monthly_projection_updates|246240000.0|updates/month
RESULT|batch_small_invocations|66096000.0|invocations/month
RESULT|batch_small_chunks|1.0|chunks/invocation
RESULT|batch_small_flush_ms|5.0|ms
RESULT|batch_small_redelivery_records|0.03|record-attempts/original-batch
RESULT|batch_small_expected_extra_attempts|0.03|record-attempts/original-batch
RESULT|batch_small_conditional_max_coupled_records|1.0|records/poison-batch
RESULT|batch_small_concurrency|48.0|concurrent-invocations
RESULT|batch_small_commits|66744000.0|commits/month
RESULT|batch_medium_invocations|6609600.0|invocations/month
RESULT|batch_medium_chunks|1.0|chunks/invocation
RESULT|batch_medium_flush_ms|50.0|ms
RESULT|batch_medium_redelivery_records|0.3|record-attempts/original-batch
RESULT|batch_medium_expected_extra_attempts|0.3|record-attempts/original-batch
RESULT|batch_medium_conditional_max_coupled_records|10.0|records/poison-batch
RESULT|batch_medium_concurrency|5.0|concurrent-invocations
RESULT|batch_medium_commits|6674400.0|commits/month
RESULT|batch_large_invocations|660960.0|invocations/month
RESULT|batch_large_chunks|3.0|chunks/invocation
RESULT|batch_large_flush_ms|500.0|ms
RESULT|batch_large_redelivery_records|3.0|record-attempts/original-batch
RESULT|batch_large_expected_extra_attempts|3.0|record-attempts/original-batch
RESULT|batch_large_conditional_max_coupled_records|100.0|records/poison-batch
RESULT|batch_large_concurrency|1.0|concurrent-invocations
RESULT|batch_large_commits|667440.0|commits/month
RESULT|fanout_consumer_work_records|41601600000.0|consumer-records/month
RESULT|partial_batch_checkpoint_state|ENABLED_LIMITS_SUCCESSFUL_PREFIX_REPLAY|state
RESULT|lambda_monthly_usd|43.908549|USD/month
RESULT|fargate_monthly_usd|71.0928|USD/month
RESULT|fargate_capacity_per_task_rps|125.0|events/s/task
RESULT|fargate_required_tasks|5.0|tasks
RESULT|fargate_minimum_feasible_monthly_usd|177.732|USD/month
RESULT|fargate_baseline_basket_state|PRICE_ONLY_INFEASIBLE|state
RESULT|compute_break_even_events_rps|438.422795|source-records/s
RESULT|compute_break_even_average_rps|438.422795|time-averaged-events/s
RESULT|compute_break_even_active_rps|1753.691181|active-period-events/s
RESULT|compute_break_even_lambda_usd|177.732|USD/month
RESULT|compute_break_even_plugback_usd|177.732|USD/month
RESULT|compute_crossing_state|NO_CAPACITY_FEASIBLE_PRICE_CROSSING|state
RESULT|compute_candidate_average_rps|438.422795|time-averaged-events/s
RESULT|compute_candidate_active_rps|1753.691181|active-period-events/s
RESULT|compute_candidate_peak_rps|7014.764726|peak-events/s
RESULT|compute_candidate_required_tasks|85.0|tasks
RESULT|compute_candidate_fleet_usd|3021.444|USD/month
RESULT|compute_candidate_lambda_usd|177.732|USD/month
RESULT|compute_candidate_price_gap_usd|2843.712|USD/month
RESULT|compute_candidate_queue_events|0.0|events
RESULT|compute_crossing_search_max_average_rps|10000.0|time-averaged-events/s
RESULT|fargate_scaling_lag_queue_events|4500.0|events
RESULT|lambda_warm_tail_margin_ms|20.0|ms
RESULT|lambda_cold_tail_state|TARGET_MISSED|state
RESULT|ddb_wru_per_order|15.0|WRU/order
RESULT|ddb_base_wru_per_order|12.0|WRU/order
RESULT|ddb_gsi_wru_per_order|3.0|WRU/order
RESULT|ddb_replica_wru_per_order|0.0|WRU/order/replicas
RESULT|ddb_replica_base_rwru_per_order|12.0|WRU/order
RESULT|ddb_replica_gsi_wru_per_order|3.0|WRU/order
RESULT|ddb_replica_base_usd_month|559.17216|USD/month
RESULT|ddb_replica_gsi_usd_month|139.79304|USD/month
RESULT|ddb_replica_exclusions_state|ZERO_PLANNING_INPUTS_REPRICE_BEFORE_TOPOLOGY_DECISION|state
RESULT|ddb_topology_state|SINGLE_REGION_ORDINARY_WRU|state
RESULT|ddb_topology_region_count|1.0|Regions
RESULT|ddb_topology_base_usd|559.17216|USD/month
RESULT|ddb_topology_gsi_usd|139.79304|USD/month
RESULT|ddb_unequal_price_single_region_units|15.0|synthetic-cost-units
RESULT|ddb_unequal_price_two_region_units|54.0|synthetic-cost-units
RESULT|ddb_unequal_price_probe_state|OPERATION_SPLIT_PROVEN|state
RESULT|ddb_monthly_usd|1122.141535|USD/month
RESULT|ddb_billing_aggregate_wru_s|1800.0|WRU/s
RESULT|ddb_max_hot_lane_wru_s|480.0|WRU/s
RESULT|ddb_max_hot_lane_id|order|identifier
RESULT|ddb_max_hot_lane_state|FEASIBLE|state
RESULT|ddb_lane_headroom_wru_s|520.0|WRU/s
RESULT|kinesis_planned_shards|13.0|shards
RESULT|kinesis_put_payload_units|13219200000.0|synthetic-cost-units
RESULT|kinesis_monthly_usd|1263.9698|USD/month
RESULT|s3_monthly_usd|59.611731|USD/month
RESULT|kinesis_hot_key_rps|1200.0|source-records/s
RESULT|kinesis_hot_key_state|INFEASIBLE_SINGLE_KEY|state
RESULT|kinesis_standard_required_Bps|10500000.0|B/s
RESULT|kinesis_standard_capacity_Bps|26000000.0|B/s
RESULT|kinesis_standard_read_state|AGGREGATE_FITS_MEASURE_PER_SHARD|state
RESULT|kinesis_replay_spare_rps|3000.0|source-records/s
RESULT|kinesis_drain_seconds|1500.0|s
RESULT|kinesis_zero_drain_state|NO_SAFE_DRAIN_AT_ZERO_SPARE|state
RESULT|kinesis_retention_margin_hours|-6.0|hours
RESULT|kinesis_replay_retention_state|REPLAY_EXPIRED_RESTORE_REQUIRED|state
RESULT|audit_year1_storage_gb_month|7800.0|GB-month/cumulative-cohort-period
RESULT|audit_year1_storage_usd|179.4|USD/cumulative-cohort-period
RESULT|audit_year1_retained_years|1.0|retained-years
RESULT|audit_two_year_storage_gb_month|30000.0|GB-month/cumulative-cohort-period
RESULT|audit_two_year_storage_usd|690.0|USD/cumulative-cohort-period
RESULT|audit_two_year_retained_years|2.0|retained-years
RESULT|audit_steady_storage_gb_month|28800.0|GB-month/year
RESULT|audit_steady_storage_usd|662.4|USD/year
RESULT|audit_steady_retained_years|2.0|retained-years
RESULT|audit_year1_cost_per_retained_year_usd|179.4|USD/retained-audit-year
RESULT|audit_two_year_cost_per_retained_year_usd|345.0|USD/retained-audit-year
RESULT|audit_steady_cost_per_retained_year_usd|331.2|USD/retained-audit-year
RESULT|audit_object_lock_usd_year|0.0|USD/year-scenario
RESULT|audit_requests_usd_year|0.0|USD/year-scenario
RESULT|audit_transitions_usd_year|0.0|USD/year-scenario
RESULT|audit_retrieval_usd_year|0.0|USD/year-scenario
RESULT|audit_kms_usd_year|0.0|USD/year-scenario
RESULT|audit_export_usd_year|0.0|USD/year-scenario
RESULT|audit_legal_review_usd_year|0.0|USD/year-scenario
RESULT|audit_adjacent_scenario_total_usd_year|0.0|USD/year-scenario
RESULT|audit_adjacent_scenarios_state|ZERO_PLANNING_INPUTS_REPRICE_BEFORE_DECISION|state
RESULT|cqrs_transport_usd_month|94.392164|USD/month
RESULT|cqrs_projection_index_usd_month|173.5992|USD/month
RESULT|cqrs_cache_storage_usd_month|150.0|USD/month
RESULT|cqrs_rebuild_replay_usd_month|8.67996|USD/month
RESULT|cqrs_reconciliation_usd_month|2.679914|USD/month
RESULT|cqrs_engineering_usd_month|900.0|USD/month
RESULT|cqrs_oncall_usd_month|300.0|USD/month
RESULT|cqrs_break_even_reads_per_write|75.462912|reads/write
RESULT|cqrs_read_heavy_net_usd|-887.203238|USD/month
RESULT|cqrs_mixed_net_usd|-2350.607558|USD/month
RESULT|cqrs_write_heavy_net_usd|-2559.665318|USD/month
RESULT|cqrs_zero_benefit_state|NO_ECONOMIC_WIN_ZERO_BENEFIT|state
RESULT|cqrs_half_volume_break_even|142.908388|reads/write
RESULT|cqrs_double_volume_break_even|41.740175|reads/write
RESULT|cqrs_half_benefit_break_even|150.925825|reads/write
RESULT|cqrs_double_fanout_break_even|80.744184|reads/write
RESULT|cqrs_measured_p99_gain_ms|95.0|ms
RESULT|cqrs_measured_freshness_s|2.0|s
RESULT|ddb_eventual_rru|1.0|RRU/read
RESULT|ddb_strong_rru|2.0|RRU/read
RESULT|ddb_transactional_rru|4.0|RRU/read
RESULT|marginal_platform_usd|2489.631616|USD/month
RESULT|allocated_platform_usd|24489.631616|USD/month
RESULT|fully_loaded_risk_adjusted_usd|29489.631616|USD/month
RESULT|allocation_share_sum|1.0|ratio
RESULT|lambda_contribution_percent|1.763656|percent
RESULT|ddb_contribution_percent|45.072593|percent
RESULT|kinesis_contribution_percent|50.76935|percent
RESULT|s3_contribution_percent|2.3944|percent
RESULT|half_traffic_shards|7.0|shards
RESULT|double_traffic_shards|25.0|shards
RESULT|double_fanout_work_records|83203200000.0|consumer-records/month
RESULT|tenfold_burst_lambda_concurrency|48.0|concurrent-invocations
RESULT|tenfold_burst_queue_records|4300800.0|records
RESULT|replay_load_records|2592000000.0|records/month
RESULT|ddb_lane_order_wru_per_order|4.0|WRU/order
RESULT|ddb_lane_order_hot_wru_s|480.0|WRU/s
RESULT|ddb_lane_order_state|FEASIBLE|state
RESULT|ddb_lane_idempotency_wru_per_order|2.0|WRU/order
RESULT|ddb_lane_idempotency_hot_wru_s|160.0|WRU/s
RESULT|ddb_lane_idempotency_state|FEASIBLE|state
RESULT|ddb_lane_outbox_wru_per_order|4.0|WRU/order
RESULT|ddb_lane_outbox_hot_wru_s|400.0|WRU/s
RESULT|ddb_lane_outbox_state|FEASIBLE|state
RESULT|ddb_lane_sentinel_wru_per_order|2.0|WRU/order
RESULT|ddb_lane_sentinel_hot_wru_s|80.0|WRU/s
RESULT|ddb_lane_sentinel_state|FEASIBLE|state
RESULT|ddb_lane_order_account_gsi_wru_per_order|1.0|WRU/order
RESULT|ddb_lane_order_account_gsi_hot_wru_s|80.0|WRU/s
RESULT|ddb_lane_order_account_gsi_state|FEASIBLE|state
RESULT|ddb_lane_order_status_gsi_wru_per_order|1.0|WRU/order
RESULT|ddb_lane_order_status_gsi_hot_wru_s|60.0|WRU/s
RESULT|ddb_lane_order_status_gsi_state|FEASIBLE|state
RESULT|ddb_lane_outbox_ready_gsi_wru_per_order|1.0|WRU/order
RESULT|ddb_lane_outbox_ready_gsi_hot_wru_s|100.0|WRU/s
RESULT|ddb_lane_outbox_ready_gsi_state|FEASIBLE|state
RESULT|replay_efo_retrieval_gb|1267.34376|GB/month
RESULT|replay_efo_retrieval_usd|18.629953|USD/month
RESULT|replay_source_state|EXPIRED_S3_RESTORE_REINGEST|state
RESULT|replay_source_available_rps|4000.0|source-records/s
RESULT|replay_effective_rate_rps|3000.0|source-records/s
RESULT|replay_rate_bottleneck|KINESIS_SPARE|state
RESULT|replay_sink_capacity_source_rps|6535.947712|source-records/s
RESULT|replay_archive_objects|3380.0|objects/month
RESULT|replay_s3_source_gb|422.44792|GB/month
RESULT|replay_s3_restore_request_usd|0.1859|USD/month
RESULT|replay_s3_get_request_usd|0.001352|USD/month
RESULT|replay_s3_retrieval_usd|4.224479|USD/month
RESULT|replay_reingest_put_units|648000000.0|payload-units/month
RESULT|replay_reingest_put_usd|10.692|USD/month
RESULT|replay_post_reingest_read_mode|EFO|state
RESULT|replay_post_reingest_read_capacity_rps|4000.0|source-records/s
RESULT|replay_post_reingest_read_gb|1267.34376|GB/month
RESULT|replay_post_reingest_read_usd|18.629953|USD/month
RESULT|replay_post_reingest_read_capacity_state|CAPACITY_AVAILABLE|state
RESULT|replay_consumer_invocations|19440000.0|invocations/month
RESULT|replay_consumer_compute_usd|29.808052|USD/month
RESULT|replay_sink_attempts|1982880000.0|attempts/month
RESULT|replay_sink_projection_wru|198288000.0|WRU/month
RESULT|replay_sink_projection_usd|139.79304|USD/month
RESULT|replay_idempotency_rru|1982880000.0|RRU/month
RESULT|replay_idempotency_usd|280.57752|USD/month
RESULT|replay_reconciliation_attempts|19828800.0|attempts/month
RESULT|replay_reconciliation_usd|6.771535|USD/month
RESULT|replay_sink_demand_wru_s|918.0|WRU/s
RESULT|replay_sink_capacity_headroom_wru_s|1082.0|WRU/s
RESULT|replay_sink_capacity_state|CAPACITY_FEASIBLE|state
RESULT|replay_drain_seconds|216000.0|s
RESULT|replay_retained_probe_source_state|RETAINED_KINESIS_EFO|state
RESULT|replay_retained_probe_effective_rate_rps|3000.0|source-records/s
RESULT|replay_retained_probe_rate_bottleneck|KINESIS_SPARE|state
RESULT|replay_retained_probe_drain_seconds|216000.0|s
RESULT|replay_retained_probe_efo_usd|18.629953|USD/month
RESULT|replay_retained_probe_s3_usd|0.0|USD/month
RESULT|replay_retained_probe_reingest_usd|0.0|USD/month
RESULT|replay_expired_probe_source_state|EXPIRED_S3_RESTORE_REINGEST|state
RESULT|replay_expired_probe_efo_usd|18.629953|USD/month
RESULT|replay_expired_probe_s3_usd|4.411731|USD/month
RESULT|replay_expired_probe_reingest_usd|10.692|USD/month
RESULT|replay_sink_limited_500_rate_rps|1633.986928|source-records/s
RESULT|replay_sink_limited_500_drain_seconds|396576.0|s
RESULT|replay_sink_limited_500_demand_wru_s|500.0|WRU/s
RESULT|replay_sink_limited_500_state|SINK|state
RESULT|replay_consumer_limited_rate_rps|1000.0|source-records/s
RESULT|replay_consumer_limited_drain_seconds|648000.0|s
RESULT|replay_consumer_limited_state|CONSUMER|state
RESULT|replay_zero_spare_rate_rps|0.0|source-records/s
RESULT|replay_zero_spare_drain_state|NO_SAFE_DRAIN|state
RESULT|replay_zero_spare_drain_seconds|INFINITE|s
RESULT|accepted_order_marginal_numerator_usd|497.926323|USD/numerator-period
RESULT|accepted_order_marginal_usd|0.000008|USD/business-unit
RESULT|accepted_order_allocated_numerator_usd|4897.926323|USD/numerator-period
RESULT|accepted_order_allocated_usd|0.00008|USD/business-unit
RESULT|accepted_order_fully_loaded_numerator_usd|5897.926323|USD/numerator-period
RESULT|accepted_order_fully_loaded_usd|0.000096|USD/business-unit
RESULT|accepted_order_denominator|61560000.0|business-units
RESULT|execution_fill_marginal_numerator_usd|497.926323|USD/numerator-period
RESULT|execution_fill_marginal_usd|0.000007|USD/business-unit
RESULT|execution_fill_allocated_numerator_usd|4897.926323|USD/numerator-period
RESULT|execution_fill_allocated_usd|0.000066|USD/business-unit
RESULT|execution_fill_fully_loaded_numerator_usd|5897.926323|USD/numerator-period
RESULT|execution_fill_fully_loaded_usd|0.00008|USD/business-unit
RESULT|execution_fill_denominator|73872000.0|business-units
RESULT|million_market_updates_marginal_numerator_usd|871.371066|USD/numerator-period
RESULT|million_market_updates_marginal_usd|0.067235|USD/business-unit
RESULT|million_market_updates_allocated_numerator_usd|8571.371066|USD/numerator-period
RESULT|million_market_updates_allocated_usd|0.661371|USD/business-unit
RESULT|million_market_updates_fully_loaded_numerator_usd|10321.371066|USD/numerator-period
RESULT|million_market_updates_fully_loaded_usd|0.796402|USD/business-unit
RESULT|million_market_updates_denominator|12960.0|business-units
RESULT|active_account_month_marginal_numerator_usd|124.481581|USD/numerator-period
RESULT|active_account_month_marginal_usd|0.00249|USD/business-unit
RESULT|active_account_month_allocated_numerator_usd|1224.481581|USD/numerator-period
RESULT|active_account_month_allocated_usd|0.02449|USD/business-unit
RESULT|active_account_month_fully_loaded_numerator_usd|1474.481581|USD/numerator-period
RESULT|active_account_month_fully_loaded_usd|0.02949|USD/business-unit
RESULT|active_account_month_denominator|50000.0|business-units
RESULT|projection_update_marginal_numerator_usd|373.444742|USD/numerator-period
RESULT|projection_update_marginal_usd|0.000002|USD/business-unit
RESULT|projection_update_allocated_numerator_usd|3673.444742|USD/numerator-period
RESULT|projection_update_allocated_usd|0.000015|USD/business-unit
RESULT|projection_update_fully_loaded_numerator_usd|4423.444742|USD/numerator-period
RESULT|projection_update_fully_loaded_usd|0.000018|USD/business-unit
RESULT|projection_update_denominator|246240000.0|business-units
RESULT|retained_audit_year_marginal_numerator_usd|1493.778969|USD/numerator-period
RESULT|retained_audit_year_marginal_usd|746.889485|USD/business-unit
RESULT|retained_audit_year_allocated_numerator_usd|14693.778969|USD/numerator-period
RESULT|retained_audit_year_allocated_usd|7346.889485|USD/business-unit
RESULT|retained_audit_year_fully_loaded_numerator_usd|17693.778969|USD/numerator-period
RESULT|retained_audit_year_fully_loaded_usd|8846.889485|USD/business-unit
RESULT|retained_audit_year_denominator|2.0|business-units
RESULT|scenario_half_marginal_usd|1269.295808|USD/month
RESULT|scenario_half_accepted_order_marginal_usd|0.000008|USD/business-unit
RESULT|scenario_half_accepted_order_allocated_usd|0.000151|USD/business-unit
RESULT|scenario_half_accepted_order_fully_loaded_usd|0.000184|USD/business-unit
RESULT|scenario_half_execution_fill_marginal_usd|0.000007|USD/business-unit
RESULT|scenario_half_execution_fill_allocated_usd|0.000126|USD/business-unit
RESULT|scenario_half_execution_fill_fully_loaded_usd|0.000153|USD/business-unit
RESULT|scenario_half_million_market_updates_marginal_usd|0.068558|USD/business-unit
RESULT|scenario_half_million_market_updates_allocated_usd|1.256829|USD/business-unit
RESULT|scenario_half_million_market_updates_fully_loaded_usd|1.526891|USD/business-unit
RESULT|scenario_half_active_account_month_marginal_usd|0.002539|USD/business-unit
RESULT|scenario_half_active_account_month_allocated_usd|0.046539|USD/business-unit
RESULT|scenario_half_active_account_month_fully_loaded_usd|0.056539|USD/business-unit
RESULT|scenario_half_projection_update_marginal_usd|0.000002|USD/business-unit
RESULT|scenario_half_projection_update_allocated_usd|0.000028|USD/business-unit
RESULT|scenario_half_projection_update_fully_loaded_usd|0.000034|USD/business-unit
RESULT|scenario_half_retained_audit_year_marginal_usd|380.788742|USD/business-unit
RESULT|scenario_half_retained_audit_year_allocated_usd|6980.788742|USD/business-unit
RESULT|scenario_half_retained_audit_year_fully_loaded_usd|8480.788742|USD/business-unit
RESULT|scenario_double_marginal_usd|4930.303231|USD/month
RESULT|scenario_double_accepted_order_marginal_usd|0.000008|USD/business-unit
RESULT|scenario_double_accepted_order_allocated_usd|0.000044|USD/business-unit
RESULT|scenario_double_accepted_order_fully_loaded_usd|0.000052|USD/business-unit
RESULT|scenario_double_execution_fill_marginal_usd|0.000007|USD/business-unit
RESULT|scenario_double_execution_fill_allocated_usd|0.000036|USD/business-unit
RESULT|scenario_double_execution_fill_fully_loaded_usd|0.000043|USD/business-unit
RESULT|scenario_double_million_market_updates_marginal_usd|0.066574|USD/business-unit
RESULT|scenario_double_million_market_updates_allocated_usd|0.363642|USD/business-unit
RESULT|scenario_double_million_market_updates_fully_loaded_usd|0.431158|USD/business-unit
RESULT|scenario_double_active_account_month_marginal_usd|0.002465|USD/business-unit
RESULT|scenario_double_active_account_month_allocated_usd|0.013465|USD/business-unit
RESULT|scenario_double_active_account_month_fully_loaded_usd|0.015965|USD/business-unit
RESULT|scenario_double_projection_update_marginal_usd|0.000002|USD/business-unit
RESULT|scenario_double_projection_update_allocated_usd|0.000008|USD/business-unit
RESULT|scenario_double_projection_update_fully_loaded_usd|0.00001|USD/business-unit
RESULT|scenario_double_retained_audit_year_marginal_usd|1479.090969|USD/business-unit
RESULT|scenario_double_retained_audit_year_allocated_usd|8079.090969|USD/business-unit
RESULT|scenario_double_retained_audit_year_fully_loaded_usd|9579.090969|USD/business-unit
RESULT|scenario_double_fanout_marginal_usd|3347.042662|USD/month
RESULT|scenario_double_fanout_accepted_order_marginal_usd|0.000011|USD/business-unit
RESULT|scenario_double_fanout_accepted_order_allocated_usd|0.000082|USD/business-unit
RESULT|scenario_double_fanout_accepted_order_fully_loaded_usd|0.000099|USD/business-unit
RESULT|scenario_double_fanout_execution_fill_marginal_usd|0.000009|USD/business-unit
RESULT|scenario_double_fanout_execution_fill_allocated_usd|0.000069|USD/business-unit
RESULT|scenario_double_fanout_execution_fill_fully_loaded_usd|0.000082|USD/business-unit
RESULT|scenario_double_fanout_million_market_updates_marginal_usd|0.090391|USD/business-unit
RESULT|scenario_double_fanout_million_market_updates_allocated_usd|0.684527|USD/business-unit
RESULT|scenario_double_fanout_million_market_updates_fully_loaded_usd|0.819557|USD/business-unit
RESULT|scenario_double_fanout_active_account_month_marginal_usd|0.003347|USD/business-unit
RESULT|scenario_double_fanout_active_account_month_allocated_usd|0.025347|USD/business-unit
RESULT|scenario_double_fanout_active_account_month_fully_loaded_usd|0.030347|USD/business-unit
RESULT|scenario_double_fanout_projection_update_marginal_usd|0.000002|USD/business-unit
RESULT|scenario_double_fanout_projection_update_allocated_usd|0.000015|USD/business-unit
RESULT|scenario_double_fanout_projection_update_fully_loaded_usd|0.000018|USD/business-unit
RESULT|scenario_double_fanout_retained_audit_year_marginal_usd|1004.112799|USD/business-unit
RESULT|scenario_double_fanout_retained_audit_year_allocated_usd|7604.112799|USD/business-unit
RESULT|scenario_double_fanout_retained_audit_year_fully_loaded_usd|9104.112799|USD/business-unit
RESULT|scenario_replay_marginal_usd|3961.683055|USD/month
RESULT|scenario_replay_accepted_order_marginal_usd|0.000013|USD/business-unit
RESULT|scenario_replay_accepted_order_allocated_usd|0.000084|USD/business-unit
RESULT|scenario_replay_accepted_order_fully_loaded_usd|0.000101|USD/business-unit
RESULT|scenario_replay_execution_fill_marginal_usd|0.000011|USD/business-unit
RESULT|scenario_replay_execution_fill_allocated_usd|0.00007|USD/business-unit
RESULT|scenario_replay_execution_fill_fully_loaded_usd|0.000084|USD/business-unit
RESULT|scenario_replay_million_market_updates_marginal_usd|0.10699|USD/business-unit
RESULT|scenario_replay_million_market_updates_allocated_usd|0.701126|USD/business-unit
RESULT|scenario_replay_million_market_updates_fully_loaded_usd|0.836157|USD/business-unit
RESULT|scenario_replay_active_account_month_marginal_usd|0.003962|USD/business-unit
RESULT|scenario_replay_active_account_month_allocated_usd|0.025962|USD/business-unit
RESULT|scenario_replay_active_account_month_fully_loaded_usd|0.030962|USD/business-unit
RESULT|scenario_replay_projection_update_marginal_usd|0.000002|USD/business-unit
RESULT|scenario_replay_projection_update_allocated_usd|0.000016|USD/business-unit
RESULT|scenario_replay_projection_update_fully_loaded_usd|0.000019|USD/business-unit
RESULT|scenario_replay_retained_audit_year_marginal_usd|1188.504916|USD/business-unit
RESULT|scenario_replay_retained_audit_year_allocated_usd|7788.504916|USD/business-unit
RESULT|scenario_replay_retained_audit_year_fully_loaded_usd|9288.504916|USD/business-unit
RESULT|scenario_replay_kinesis_usd|1351.93566|USD/month
RESULT|scenario_replay_efo_retrieval_usd|74.519813|USD/month
RESULT|scenario_replay_consumer_compute_usd|119.232207|USD/month
RESULT|scenario_replay_sink_projection_usd|559.17216|USD/month
RESULT|scenario_replay_idempotency_usd|1122.31008|USD/month
RESULT|scenario_replay_reconciliation_usd|27.086141|USD/month
RESULT|scenario_one_replica_marginal_usd|3188.596816|USD/month
RESULT|scenario_one_replica_accepted_order_marginal_usd|0.00001|USD/business-unit
RESULT|scenario_one_replica_accepted_order_allocated_usd|0.000082|USD/business-unit
RESULT|scenario_one_replica_accepted_order_fully_loaded_usd|0.000098|USD/business-unit
RESULT|scenario_one_replica_execution_fill_marginal_usd|0.000009|USD/business-unit
RESULT|scenario_one_replica_execution_fill_allocated_usd|0.000068|USD/business-unit
RESULT|scenario_one_replica_execution_fill_fully_loaded_usd|0.000082|USD/business-unit
RESULT|scenario_one_replica_million_market_updates_marginal_usd|0.086112|USD/business-unit
RESULT|scenario_one_replica_million_market_updates_allocated_usd|0.680248|USD/business-unit
RESULT|scenario_one_replica_million_market_updates_fully_loaded_usd|0.815278|USD/business-unit
RESULT|scenario_one_replica_active_account_month_marginal_usd|0.003189|USD/business-unit
RESULT|scenario_one_replica_active_account_month_allocated_usd|0.025189|USD/business-unit
RESULT|scenario_one_replica_active_account_month_fully_loaded_usd|0.030189|USD/business-unit
RESULT|scenario_one_replica_projection_update_marginal_usd|0.000002|USD/business-unit
RESULT|scenario_one_replica_projection_update_allocated_usd|0.000015|USD/business-unit
RESULT|scenario_one_replica_projection_update_fully_loaded_usd|0.000018|USD/business-unit
RESULT|scenario_one_replica_retained_audit_year_marginal_usd|956.579045|USD/business-unit
RESULT|scenario_one_replica_retained_audit_year_allocated_usd|7556.579045|USD/business-unit
RESULT|scenario_one_replica_retained_audit_year_fully_loaded_usd|9056.579045|USD/business-unit
RESULT|scenario_one_replica_topology_state|GLOBAL_TABLE_ALL_REGIONS_BASE_RWRU_GSI_WRU|state
RESULT|scenario_one_replica_region_count|2.0|Regions
RESULT|scenario_one_replica_base_rwru_usd|1118.34432|USD/month
RESULT|scenario_one_replica_gsi_wru_usd|279.58608|USD/month
<!-- TASK10_CANONICAL_END -->
<!-- TASK10_RENDER_BEGIN -->
| Result ID | Value | Unit |
|---|---:|---|
| monthly_orders | 64800000.0 | orders/month |
| monthly_accepted_orders | 61560000.0 | accepted/month |
| monthly_fills | 73872000.0 | fills/month |
| monthly_market_updates | 12960000000.0 | records/month |
| monthly_projection_updates | 246240000.0 | updates/month |
| batch_small_invocations | 66096000.0 | invocations/month |
| batch_small_chunks | 1.0 | chunks/invocation |
| batch_small_flush_ms | 5.0 | ms |
| batch_small_redelivery_records | 0.03 | record-attempts/original-batch |
| batch_small_expected_extra_attempts | 0.03 | record-attempts/original-batch |
| batch_small_conditional_max_coupled_records | 1.0 | records/poison-batch |
| batch_small_concurrency | 48.0 | concurrent-invocations |
| batch_small_commits | 66744000.0 | commits/month |
| batch_medium_invocations | 6609600.0 | invocations/month |
| batch_medium_chunks | 1.0 | chunks/invocation |
| batch_medium_flush_ms | 50.0 | ms |
| batch_medium_redelivery_records | 0.3 | record-attempts/original-batch |
| batch_medium_expected_extra_attempts | 0.3 | record-attempts/original-batch |
| batch_medium_conditional_max_coupled_records | 10.0 | records/poison-batch |
| batch_medium_concurrency | 5.0 | concurrent-invocations |
| batch_medium_commits | 6674400.0 | commits/month |
| batch_large_invocations | 660960.0 | invocations/month |
| batch_large_chunks | 3.0 | chunks/invocation |
| batch_large_flush_ms | 500.0 | ms |
| batch_large_redelivery_records | 3.0 | record-attempts/original-batch |
| batch_large_expected_extra_attempts | 3.0 | record-attempts/original-batch |
| batch_large_conditional_max_coupled_records | 100.0 | records/poison-batch |
| batch_large_concurrency | 1.0 | concurrent-invocations |
| batch_large_commits | 667440.0 | commits/month |
| fanout_consumer_work_records | 41601600000.0 | consumer-records/month |
| partial_batch_checkpoint_state | ENABLED_LIMITS_SUCCESSFUL_PREFIX_REPLAY | state |
| lambda_monthly_usd | 43.908549 | USD/month |
| fargate_monthly_usd | 71.0928 | USD/month |
| fargate_capacity_per_task_rps | 125.0 | events/s/task |
| fargate_required_tasks | 5.0 | tasks |
| fargate_minimum_feasible_monthly_usd | 177.732 | USD/month |
| fargate_baseline_basket_state | PRICE_ONLY_INFEASIBLE | state |
| compute_break_even_events_rps | 438.422795 | source-records/s |
| compute_break_even_average_rps | 438.422795 | time-averaged-events/s |
| compute_break_even_active_rps | 1753.691181 | active-period-events/s |
| compute_break_even_lambda_usd | 177.732 | USD/month |
| compute_break_even_plugback_usd | 177.732 | USD/month |
| compute_crossing_state | NO_CAPACITY_FEASIBLE_PRICE_CROSSING | state |
| compute_candidate_average_rps | 438.422795 | time-averaged-events/s |
| compute_candidate_active_rps | 1753.691181 | active-period-events/s |
| compute_candidate_peak_rps | 7014.764726 | peak-events/s |
| compute_candidate_required_tasks | 85.0 | tasks |
| compute_candidate_fleet_usd | 3021.444 | USD/month |
| compute_candidate_lambda_usd | 177.732 | USD/month |
| compute_candidate_price_gap_usd | 2843.712 | USD/month |
| compute_candidate_queue_events | 0.0 | events |
| compute_crossing_search_max_average_rps | 10000.0 | time-averaged-events/s |
| fargate_scaling_lag_queue_events | 4500.0 | events |
| lambda_warm_tail_margin_ms | 20.0 | ms |
| lambda_cold_tail_state | TARGET_MISSED | state |
| ddb_wru_per_order | 15.0 | WRU/order |
| ddb_base_wru_per_order | 12.0 | WRU/order |
| ddb_gsi_wru_per_order | 3.0 | WRU/order |
| ddb_replica_wru_per_order | 0.0 | WRU/order/replicas |
| ddb_replica_base_rwru_per_order | 12.0 | WRU/order |
| ddb_replica_gsi_wru_per_order | 3.0 | WRU/order |
| ddb_replica_base_usd_month | 559.17216 | USD/month |
| ddb_replica_gsi_usd_month | 139.79304 | USD/month |
| ddb_replica_exclusions_state | ZERO_PLANNING_INPUTS_REPRICE_BEFORE_TOPOLOGY_DECISION | state |
| ddb_topology_state | SINGLE_REGION_ORDINARY_WRU | state |
| ddb_topology_region_count | 1.0 | Regions |
| ddb_topology_base_usd | 559.17216 | USD/month |
| ddb_topology_gsi_usd | 139.79304 | USD/month |
| ddb_unequal_price_single_region_units | 15.0 | synthetic-cost-units |
| ddb_unequal_price_two_region_units | 54.0 | synthetic-cost-units |
| ddb_unequal_price_probe_state | OPERATION_SPLIT_PROVEN | state |
| ddb_monthly_usd | 1122.141535 | USD/month |
| ddb_billing_aggregate_wru_s | 1800.0 | WRU/s |
| ddb_max_hot_lane_wru_s | 480.0 | WRU/s |
| ddb_max_hot_lane_id | order | identifier |
| ddb_max_hot_lane_state | FEASIBLE | state |
| ddb_lane_headroom_wru_s | 520.0 | WRU/s |
| kinesis_planned_shards | 13.0 | shards |
| kinesis_put_payload_units | 13219200000.0 | synthetic-cost-units |
| kinesis_monthly_usd | 1263.9698 | USD/month |
| s3_monthly_usd | 59.611731 | USD/month |
| kinesis_hot_key_rps | 1200.0 | source-records/s |
| kinesis_hot_key_state | INFEASIBLE_SINGLE_KEY | state |
| kinesis_standard_required_Bps | 10500000.0 | B/s |
| kinesis_standard_capacity_Bps | 26000000.0 | B/s |
| kinesis_standard_read_state | AGGREGATE_FITS_MEASURE_PER_SHARD | state |
| kinesis_replay_spare_rps | 3000.0 | source-records/s |
| kinesis_drain_seconds | 1500.0 | s |
| kinesis_zero_drain_state | NO_SAFE_DRAIN_AT_ZERO_SPARE | state |
| kinesis_retention_margin_hours | -6.0 | hours |
| kinesis_replay_retention_state | REPLAY_EXPIRED_RESTORE_REQUIRED | state |
| audit_year1_storage_gb_month | 7800.0 | GB-month/cumulative-cohort-period |
| audit_year1_storage_usd | 179.4 | USD/cumulative-cohort-period |
| audit_year1_retained_years | 1.0 | retained-years |
| audit_two_year_storage_gb_month | 30000.0 | GB-month/cumulative-cohort-period |
| audit_two_year_storage_usd | 690.0 | USD/cumulative-cohort-period |
| audit_two_year_retained_years | 2.0 | retained-years |
| audit_steady_storage_gb_month | 28800.0 | GB-month/year |
| audit_steady_storage_usd | 662.4 | USD/year |
| audit_steady_retained_years | 2.0 | retained-years |
| audit_year1_cost_per_retained_year_usd | 179.4 | USD/retained-audit-year |
| audit_two_year_cost_per_retained_year_usd | 345.0 | USD/retained-audit-year |
| audit_steady_cost_per_retained_year_usd | 331.2 | USD/retained-audit-year |
| audit_object_lock_usd_year | 0.0 | USD/year-scenario |
| audit_requests_usd_year | 0.0 | USD/year-scenario |
| audit_transitions_usd_year | 0.0 | USD/year-scenario |
| audit_retrieval_usd_year | 0.0 | USD/year-scenario |
| audit_kms_usd_year | 0.0 | USD/year-scenario |
| audit_export_usd_year | 0.0 | USD/year-scenario |
| audit_legal_review_usd_year | 0.0 | USD/year-scenario |
| audit_adjacent_scenario_total_usd_year | 0.0 | USD/year-scenario |
| audit_adjacent_scenarios_state | ZERO_PLANNING_INPUTS_REPRICE_BEFORE_DECISION | state |
| cqrs_transport_usd_month | 94.392164 | USD/month |
| cqrs_projection_index_usd_month | 173.5992 | USD/month |
| cqrs_cache_storage_usd_month | 150.0 | USD/month |
| cqrs_rebuild_replay_usd_month | 8.67996 | USD/month |
| cqrs_reconciliation_usd_month | 2.679914 | USD/month |
| cqrs_engineering_usd_month | 900.0 | USD/month |
| cqrs_oncall_usd_month | 300.0 | USD/month |
| cqrs_break_even_reads_per_write | 75.462912 | reads/write |
| cqrs_read_heavy_net_usd | -887.203238 | USD/month |
| cqrs_mixed_net_usd | -2350.607558 | USD/month |
| cqrs_write_heavy_net_usd | -2559.665318 | USD/month |
| cqrs_zero_benefit_state | NO_ECONOMIC_WIN_ZERO_BENEFIT | state |
| cqrs_half_volume_break_even | 142.908388 | reads/write |
| cqrs_double_volume_break_even | 41.740175 | reads/write |
| cqrs_half_benefit_break_even | 150.925825 | reads/write |
| cqrs_double_fanout_break_even | 80.744184 | reads/write |
| cqrs_measured_p99_gain_ms | 95.0 | ms |
| cqrs_measured_freshness_s | 2.0 | s |
| ddb_eventual_rru | 1.0 | RRU/read |
| ddb_strong_rru | 2.0 | RRU/read |
| ddb_transactional_rru | 4.0 | RRU/read |
| marginal_platform_usd | 2489.631616 | USD/month |
| allocated_platform_usd | 24489.631616 | USD/month |
| fully_loaded_risk_adjusted_usd | 29489.631616 | USD/month |
| allocation_share_sum | 1.0 | ratio |
| lambda_contribution_percent | 1.763656 | percent |
| ddb_contribution_percent | 45.072593 | percent |
| kinesis_contribution_percent | 50.76935 | percent |
| s3_contribution_percent | 2.3944 | percent |
| half_traffic_shards | 7.0 | shards |
| double_traffic_shards | 25.0 | shards |
| double_fanout_work_records | 83203200000.0 | consumer-records/month |
| tenfold_burst_lambda_concurrency | 48.0 | concurrent-invocations |
| tenfold_burst_queue_records | 4300800.0 | records |
| replay_load_records | 2592000000.0 | records/month |
| ddb_lane_order_wru_per_order | 4.0 | WRU/order |
| ddb_lane_order_hot_wru_s | 480.0 | WRU/s |
| ddb_lane_order_state | FEASIBLE | state |
| ddb_lane_idempotency_wru_per_order | 2.0 | WRU/order |
| ddb_lane_idempotency_hot_wru_s | 160.0 | WRU/s |
| ddb_lane_idempotency_state | FEASIBLE | state |
| ddb_lane_outbox_wru_per_order | 4.0 | WRU/order |
| ddb_lane_outbox_hot_wru_s | 400.0 | WRU/s |
| ddb_lane_outbox_state | FEASIBLE | state |
| ddb_lane_sentinel_wru_per_order | 2.0 | WRU/order |
| ddb_lane_sentinel_hot_wru_s | 80.0 | WRU/s |
| ddb_lane_sentinel_state | FEASIBLE | state |
| ddb_lane_order_account_gsi_wru_per_order | 1.0 | WRU/order |
| ddb_lane_order_account_gsi_hot_wru_s | 80.0 | WRU/s |
| ddb_lane_order_account_gsi_state | FEASIBLE | state |
| ddb_lane_order_status_gsi_wru_per_order | 1.0 | WRU/order |
| ddb_lane_order_status_gsi_hot_wru_s | 60.0 | WRU/s |
| ddb_lane_order_status_gsi_state | FEASIBLE | state |
| ddb_lane_outbox_ready_gsi_wru_per_order | 1.0 | WRU/order |
| ddb_lane_outbox_ready_gsi_hot_wru_s | 100.0 | WRU/s |
| ddb_lane_outbox_ready_gsi_state | FEASIBLE | state |
| replay_efo_retrieval_gb | 1267.34376 | GB/month |
| replay_efo_retrieval_usd | 18.629953 | USD/month |
| replay_source_state | EXPIRED_S3_RESTORE_REINGEST | state |
| replay_source_available_rps | 4000.0 | source-records/s |
| replay_effective_rate_rps | 3000.0 | source-records/s |
| replay_rate_bottleneck | KINESIS_SPARE | state |
| replay_sink_capacity_source_rps | 6535.947712 | source-records/s |
| replay_archive_objects | 3380.0 | objects/month |
| replay_s3_source_gb | 422.44792 | GB/month |
| replay_s3_restore_request_usd | 0.1859 | USD/month |
| replay_s3_get_request_usd | 0.001352 | USD/month |
| replay_s3_retrieval_usd | 4.224479 | USD/month |
| replay_reingest_put_units | 648000000.0 | payload-units/month |
| replay_reingest_put_usd | 10.692 | USD/month |
| replay_post_reingest_read_mode | EFO | state |
| replay_post_reingest_read_capacity_rps | 4000.0 | source-records/s |
| replay_post_reingest_read_gb | 1267.34376 | GB/month |
| replay_post_reingest_read_usd | 18.629953 | USD/month |
| replay_post_reingest_read_capacity_state | CAPACITY_AVAILABLE | state |
| replay_consumer_invocations | 19440000.0 | invocations/month |
| replay_consumer_compute_usd | 29.808052 | USD/month |
| replay_sink_attempts | 1982880000.0 | attempts/month |
| replay_sink_projection_wru | 198288000.0 | WRU/month |
| replay_sink_projection_usd | 139.79304 | USD/month |
| replay_idempotency_rru | 1982880000.0 | RRU/month |
| replay_idempotency_usd | 280.57752 | USD/month |
| replay_reconciliation_attempts | 19828800.0 | attempts/month |
| replay_reconciliation_usd | 6.771535 | USD/month |
| replay_sink_demand_wru_s | 918.0 | WRU/s |
| replay_sink_capacity_headroom_wru_s | 1082.0 | WRU/s |
| replay_sink_capacity_state | CAPACITY_FEASIBLE | state |
| replay_drain_seconds | 216000.0 | s |
| replay_retained_probe_source_state | RETAINED_KINESIS_EFO | state |
| replay_retained_probe_effective_rate_rps | 3000.0 | source-records/s |
| replay_retained_probe_rate_bottleneck | KINESIS_SPARE | state |
| replay_retained_probe_drain_seconds | 216000.0 | s |
| replay_retained_probe_efo_usd | 18.629953 | USD/month |
| replay_retained_probe_s3_usd | 0.0 | USD/month |
| replay_retained_probe_reingest_usd | 0.0 | USD/month |
| replay_expired_probe_source_state | EXPIRED_S3_RESTORE_REINGEST | state |
| replay_expired_probe_efo_usd | 18.629953 | USD/month |
| replay_expired_probe_s3_usd | 4.411731 | USD/month |
| replay_expired_probe_reingest_usd | 10.692 | USD/month |
| replay_sink_limited_500_rate_rps | 1633.986928 | source-records/s |
| replay_sink_limited_500_drain_seconds | 396576.0 | s |
| replay_sink_limited_500_demand_wru_s | 500.0 | WRU/s |
| replay_sink_limited_500_state | SINK | state |
| replay_consumer_limited_rate_rps | 1000.0 | source-records/s |
| replay_consumer_limited_drain_seconds | 648000.0 | s |
| replay_consumer_limited_state | CONSUMER | state |
| replay_zero_spare_rate_rps | 0.0 | source-records/s |
| replay_zero_spare_drain_state | NO_SAFE_DRAIN | state |
| replay_zero_spare_drain_seconds | INFINITE | s |
| accepted_order_marginal_numerator_usd | 497.926323 | USD/numerator-period |
| accepted_order_marginal_usd | 0.000008 | USD/business-unit |
| accepted_order_allocated_numerator_usd | 4897.926323 | USD/numerator-period |
| accepted_order_allocated_usd | 0.00008 | USD/business-unit |
| accepted_order_fully_loaded_numerator_usd | 5897.926323 | USD/numerator-period |
| accepted_order_fully_loaded_usd | 0.000096 | USD/business-unit |
| accepted_order_denominator | 61560000.0 | business-units |
| execution_fill_marginal_numerator_usd | 497.926323 | USD/numerator-period |
| execution_fill_marginal_usd | 0.000007 | USD/business-unit |
| execution_fill_allocated_numerator_usd | 4897.926323 | USD/numerator-period |
| execution_fill_allocated_usd | 0.000066 | USD/business-unit |
| execution_fill_fully_loaded_numerator_usd | 5897.926323 | USD/numerator-period |
| execution_fill_fully_loaded_usd | 0.00008 | USD/business-unit |
| execution_fill_denominator | 73872000.0 | business-units |
| million_market_updates_marginal_numerator_usd | 871.371066 | USD/numerator-period |
| million_market_updates_marginal_usd | 0.067235 | USD/business-unit |
| million_market_updates_allocated_numerator_usd | 8571.371066 | USD/numerator-period |
| million_market_updates_allocated_usd | 0.661371 | USD/business-unit |
| million_market_updates_fully_loaded_numerator_usd | 10321.371066 | USD/numerator-period |
| million_market_updates_fully_loaded_usd | 0.796402 | USD/business-unit |
| million_market_updates_denominator | 12960.0 | business-units |
| active_account_month_marginal_numerator_usd | 124.481581 | USD/numerator-period |
| active_account_month_marginal_usd | 0.00249 | USD/business-unit |
| active_account_month_allocated_numerator_usd | 1224.481581 | USD/numerator-period |
| active_account_month_allocated_usd | 0.02449 | USD/business-unit |
| active_account_month_fully_loaded_numerator_usd | 1474.481581 | USD/numerator-period |
| active_account_month_fully_loaded_usd | 0.02949 | USD/business-unit |
| active_account_month_denominator | 50000.0 | business-units |
| projection_update_marginal_numerator_usd | 373.444742 | USD/numerator-period |
| projection_update_marginal_usd | 0.000002 | USD/business-unit |
| projection_update_allocated_numerator_usd | 3673.444742 | USD/numerator-period |
| projection_update_allocated_usd | 0.000015 | USD/business-unit |
| projection_update_fully_loaded_numerator_usd | 4423.444742 | USD/numerator-period |
| projection_update_fully_loaded_usd | 0.000018 | USD/business-unit |
| projection_update_denominator | 246240000.0 | business-units |
| retained_audit_year_marginal_numerator_usd | 1493.778969 | USD/numerator-period |
| retained_audit_year_marginal_usd | 746.889485 | USD/business-unit |
| retained_audit_year_allocated_numerator_usd | 14693.778969 | USD/numerator-period |
| retained_audit_year_allocated_usd | 7346.889485 | USD/business-unit |
| retained_audit_year_fully_loaded_numerator_usd | 17693.778969 | USD/numerator-period |
| retained_audit_year_fully_loaded_usd | 8846.889485 | USD/business-unit |
| retained_audit_year_denominator | 2.0 | business-units |
| scenario_half_marginal_usd | 1269.295808 | USD/month |
| scenario_half_accepted_order_marginal_usd | 0.000008 | USD/business-unit |
| scenario_half_accepted_order_allocated_usd | 0.000151 | USD/business-unit |
| scenario_half_accepted_order_fully_loaded_usd | 0.000184 | USD/business-unit |
| scenario_half_execution_fill_marginal_usd | 0.000007 | USD/business-unit |
| scenario_half_execution_fill_allocated_usd | 0.000126 | USD/business-unit |
| scenario_half_execution_fill_fully_loaded_usd | 0.000153 | USD/business-unit |
| scenario_half_million_market_updates_marginal_usd | 0.068558 | USD/business-unit |
| scenario_half_million_market_updates_allocated_usd | 1.256829 | USD/business-unit |
| scenario_half_million_market_updates_fully_loaded_usd | 1.526891 | USD/business-unit |
| scenario_half_active_account_month_marginal_usd | 0.002539 | USD/business-unit |
| scenario_half_active_account_month_allocated_usd | 0.046539 | USD/business-unit |
| scenario_half_active_account_month_fully_loaded_usd | 0.056539 | USD/business-unit |
| scenario_half_projection_update_marginal_usd | 0.000002 | USD/business-unit |
| scenario_half_projection_update_allocated_usd | 0.000028 | USD/business-unit |
| scenario_half_projection_update_fully_loaded_usd | 0.000034 | USD/business-unit |
| scenario_half_retained_audit_year_marginal_usd | 380.788742 | USD/business-unit |
| scenario_half_retained_audit_year_allocated_usd | 6980.788742 | USD/business-unit |
| scenario_half_retained_audit_year_fully_loaded_usd | 8480.788742 | USD/business-unit |
| scenario_double_marginal_usd | 4930.303231 | USD/month |
| scenario_double_accepted_order_marginal_usd | 0.000008 | USD/business-unit |
| scenario_double_accepted_order_allocated_usd | 0.000044 | USD/business-unit |
| scenario_double_accepted_order_fully_loaded_usd | 0.000052 | USD/business-unit |
| scenario_double_execution_fill_marginal_usd | 0.000007 | USD/business-unit |
| scenario_double_execution_fill_allocated_usd | 0.000036 | USD/business-unit |
| scenario_double_execution_fill_fully_loaded_usd | 0.000043 | USD/business-unit |
| scenario_double_million_market_updates_marginal_usd | 0.066574 | USD/business-unit |
| scenario_double_million_market_updates_allocated_usd | 0.363642 | USD/business-unit |
| scenario_double_million_market_updates_fully_loaded_usd | 0.431158 | USD/business-unit |
| scenario_double_active_account_month_marginal_usd | 0.002465 | USD/business-unit |
| scenario_double_active_account_month_allocated_usd | 0.013465 | USD/business-unit |
| scenario_double_active_account_month_fully_loaded_usd | 0.015965 | USD/business-unit |
| scenario_double_projection_update_marginal_usd | 0.000002 | USD/business-unit |
| scenario_double_projection_update_allocated_usd | 0.000008 | USD/business-unit |
| scenario_double_projection_update_fully_loaded_usd | 0.00001 | USD/business-unit |
| scenario_double_retained_audit_year_marginal_usd | 1479.090969 | USD/business-unit |
| scenario_double_retained_audit_year_allocated_usd | 8079.090969 | USD/business-unit |
| scenario_double_retained_audit_year_fully_loaded_usd | 9579.090969 | USD/business-unit |
| scenario_double_fanout_marginal_usd | 3347.042662 | USD/month |
| scenario_double_fanout_accepted_order_marginal_usd | 0.000011 | USD/business-unit |
| scenario_double_fanout_accepted_order_allocated_usd | 0.000082 | USD/business-unit |
| scenario_double_fanout_accepted_order_fully_loaded_usd | 0.000099 | USD/business-unit |
| scenario_double_fanout_execution_fill_marginal_usd | 0.000009 | USD/business-unit |
| scenario_double_fanout_execution_fill_allocated_usd | 0.000069 | USD/business-unit |
| scenario_double_fanout_execution_fill_fully_loaded_usd | 0.000082 | USD/business-unit |
| scenario_double_fanout_million_market_updates_marginal_usd | 0.090391 | USD/business-unit |
| scenario_double_fanout_million_market_updates_allocated_usd | 0.684527 | USD/business-unit |
| scenario_double_fanout_million_market_updates_fully_loaded_usd | 0.819557 | USD/business-unit |
| scenario_double_fanout_active_account_month_marginal_usd | 0.003347 | USD/business-unit |
| scenario_double_fanout_active_account_month_allocated_usd | 0.025347 | USD/business-unit |
| scenario_double_fanout_active_account_month_fully_loaded_usd | 0.030347 | USD/business-unit |
| scenario_double_fanout_projection_update_marginal_usd | 0.000002 | USD/business-unit |
| scenario_double_fanout_projection_update_allocated_usd | 0.000015 | USD/business-unit |
| scenario_double_fanout_projection_update_fully_loaded_usd | 0.000018 | USD/business-unit |
| scenario_double_fanout_retained_audit_year_marginal_usd | 1004.112799 | USD/business-unit |
| scenario_double_fanout_retained_audit_year_allocated_usd | 7604.112799 | USD/business-unit |
| scenario_double_fanout_retained_audit_year_fully_loaded_usd | 9104.112799 | USD/business-unit |
| scenario_replay_marginal_usd | 3961.683055 | USD/month |
| scenario_replay_accepted_order_marginal_usd | 0.000013 | USD/business-unit |
| scenario_replay_accepted_order_allocated_usd | 0.000084 | USD/business-unit |
| scenario_replay_accepted_order_fully_loaded_usd | 0.000101 | USD/business-unit |
| scenario_replay_execution_fill_marginal_usd | 0.000011 | USD/business-unit |
| scenario_replay_execution_fill_allocated_usd | 0.00007 | USD/business-unit |
| scenario_replay_execution_fill_fully_loaded_usd | 0.000084 | USD/business-unit |
| scenario_replay_million_market_updates_marginal_usd | 0.10699 | USD/business-unit |
| scenario_replay_million_market_updates_allocated_usd | 0.701126 | USD/business-unit |
| scenario_replay_million_market_updates_fully_loaded_usd | 0.836157 | USD/business-unit |
| scenario_replay_active_account_month_marginal_usd | 0.003962 | USD/business-unit |
| scenario_replay_active_account_month_allocated_usd | 0.025962 | USD/business-unit |
| scenario_replay_active_account_month_fully_loaded_usd | 0.030962 | USD/business-unit |
| scenario_replay_projection_update_marginal_usd | 0.000002 | USD/business-unit |
| scenario_replay_projection_update_allocated_usd | 0.000016 | USD/business-unit |
| scenario_replay_projection_update_fully_loaded_usd | 0.000019 | USD/business-unit |
| scenario_replay_retained_audit_year_marginal_usd | 1188.504916 | USD/business-unit |
| scenario_replay_retained_audit_year_allocated_usd | 7788.504916 | USD/business-unit |
| scenario_replay_retained_audit_year_fully_loaded_usd | 9288.504916 | USD/business-unit |
| scenario_replay_kinesis_usd | 1351.93566 | USD/month |
| scenario_replay_efo_retrieval_usd | 74.519813 | USD/month |
| scenario_replay_consumer_compute_usd | 119.232207 | USD/month |
| scenario_replay_sink_projection_usd | 559.17216 | USD/month |
| scenario_replay_idempotency_usd | 1122.31008 | USD/month |
| scenario_replay_reconciliation_usd | 27.086141 | USD/month |
| scenario_one_replica_marginal_usd | 3188.596816 | USD/month |
| scenario_one_replica_accepted_order_marginal_usd | 0.00001 | USD/business-unit |
| scenario_one_replica_accepted_order_allocated_usd | 0.000082 | USD/business-unit |
| scenario_one_replica_accepted_order_fully_loaded_usd | 0.000098 | USD/business-unit |
| scenario_one_replica_execution_fill_marginal_usd | 0.000009 | USD/business-unit |
| scenario_one_replica_execution_fill_allocated_usd | 0.000068 | USD/business-unit |
| scenario_one_replica_execution_fill_fully_loaded_usd | 0.000082 | USD/business-unit |
| scenario_one_replica_million_market_updates_marginal_usd | 0.086112 | USD/business-unit |
| scenario_one_replica_million_market_updates_allocated_usd | 0.680248 | USD/business-unit |
| scenario_one_replica_million_market_updates_fully_loaded_usd | 0.815278 | USD/business-unit |
| scenario_one_replica_active_account_month_marginal_usd | 0.003189 | USD/business-unit |
| scenario_one_replica_active_account_month_allocated_usd | 0.025189 | USD/business-unit |
| scenario_one_replica_active_account_month_fully_loaded_usd | 0.030189 | USD/business-unit |
| scenario_one_replica_projection_update_marginal_usd | 0.000002 | USD/business-unit |
| scenario_one_replica_projection_update_allocated_usd | 0.000015 | USD/business-unit |
| scenario_one_replica_projection_update_fully_loaded_usd | 0.000018 | USD/business-unit |
| scenario_one_replica_retained_audit_year_marginal_usd | 956.579045 | USD/business-unit |
| scenario_one_replica_retained_audit_year_allocated_usd | 7556.579045 | USD/business-unit |
| scenario_one_replica_retained_audit_year_fully_loaded_usd | 9056.579045 | USD/business-unit |
| scenario_one_replica_topology_state | GLOBAL_TABLE_ALL_REGIONS_BASE_RWRU_GSI_WRU | state |
| scenario_one_replica_region_count | 2.0 | Regions |
| scenario_one_replica_base_rwru_usd | 1118.34432 | USD/month |
| scenario_one_replica_gsi_wru_usd | 279.58608 | USD/month |
<!-- TASK10_RENDER_END -->

### Task 10 interpretation contract

Audit retention uses monthly cohorts: year-one and year-two cumulative
GB-month exposure and the 24-month steady-state annual exposure are priced
before division by retained business-year cohorts. Thus retention changes both
the numerator and denominator. The baseline S3 component is the steady-state
`monthly_ingest * retention_months` inventory.
Object Lock, requests, transitions, retrieval, KMS, export and legal review are
separate typed annual scenario inputs. Their dated planning values are zero and
explicitly classified as requiring repricing before a decision; they are not
implicitly free or hidden in the storage rate.

The two-task Fargate row is a price-only basket. Capacity parity uses measured
service seconds and events/batch, average-to-active and active-to-peak
conversion, peak headroom, HA minimum, scaling lag, and a required-task
function inside each fleet-cost step. The fixed-five-task price equality is a
counterfactual candidate only: its derived peak needs 85 tasks, whose price is
not equal to Lambda. The bounded stepwise solve reports no capacity-feasible
price crossing and the plug-back exposes the positive fleet-price gap.

Batch expected extra attempts per original batch and the conditional whole-batch
poison coupling are separate quantities. CQRS names transport, projection/index,
cache/storage, rebuild/replay, reconciliation, engineering, on-call and other
fixed burden, and derives the zero-benefit branch before division. Half/double
traffic, doubled fan-out and replay each reprice all components and all six unit
metrics; top-key share, DynamoDB lane target, Kinesis retention and global-table
replicas are typed, sensitivity-tested inputs. Task 6's 15 logical WRUs are
decomposed through one frozen typed descriptor into four base-table and three
GSI physical lanes. With `n` added global-table replica Regions, all `n+1`
Regions bill base-table replicated WRUs and ordinary GSI WRUs (C116; A127);
single-Region billing remains ordinary WRUs. Replay selects its source first:
retained records price EFO reads, while expired records price S3 restore and
retrieval, Kinesis re-ingest, and the selected post-reingest read mode. The
canonical expired mode is EFO, so restored records incur EFO GB retrieval and
an explicit post-read capacity gate before consumers. It then prices consumer
compute, projection writes, idempotency/duplicate attempts and reconciliation,
and derives sink demand and drain from the minimum available
source/post-read/consumer/stream/spare/sink rate.
