# Cost model — 30-day estimates

Generated from `assets/fixtures-cost.js` and the pure engine `assets/cost.js`. Every workload value is an assumption; provider prices are sourced, not measured usage. Human effort is separate from cash.

Unmeasured workload. Shared account allowances and provisional service prices require confirmation. Human effort is separate. Required services and tax/FX must fit the USD 50 launch ceiling; an unknown required price blocks paid launch.

## Confirmed ceiling; proposed launch

Maximum USD 50/month in recurring service costs for the initial system. This accepts only the spending constraint, not other architectural proposals.

Hosting, database, storage, queues, browser scraping, regional collectors, LLM extraction/review and every other required recurring service share this ceiling.

Proposed: two scrapers, 200 listings each, refreshed daily. One regional host, a 16-hour/day database window and a priced service inventory must be validated before paid launch. All other architectural decisions remain open.

| Monthly budget | USD |
|---|---:|
| Confirmed recurring-service ceiling | 50.00 |
| Expected spending | 34.48 |
| Fixed costs and provisions | 17.00 |
| Variable services | 17.48 |
| Headroom below ceiling | 15.52 |
| Uncertainty reserve (not spending) | 10.00 |
| Unreserved headroom | 5.52 |

Human review: 7.84 hours/month, 117.6 cases; USD 470.40 imputed effort is separate. 12000 captures/month; 7.33 browser-hours; 588 extraction and 294 review attempts. These are unmeasured workload assumptions.

### Complete service inventory and qualifications

## name

Hosting and APIs

## basis

Workers Paid base plus usage

## provision

USD 5 fixed base; usage after shared allowances

## name

Database and storage

## basis

Neon compute/storage; R2 artifacts

## provision

Metered; active hours and retention are assumptions, not caps

## name

Queues and browser scraping

## basis

Queue deliveries and Browser Run time/daily peaks

## provision

Metered; shared allowances must be reconciled

## name

Regional collectors

## basis

One shared host for two logical scrapers

## provision

USD 10/month provisional, quote required

## name

LLM extraction and review

## basis

Separate bounded models and token budgets

## provision

Metered; all attempts including retries count

## name

Other required services

## basis

Authentication, backup/restore, logs, monitoring, domains or proxies if needed

## provision

USD 2/month provisional; itemized vendor quotes required. Do not assume a service fits this amount


- Two logical scrapers share one regional host; two authorized real sources remain to be selected. Pantry & Pour is a fictional fixture, not a measured source.
- 200 listings per source, one refresh per day, 30 days. Database: 0.25 CU for 480 hours (16 hours/day), 1 GB storage. Runtime and storage growth are unmeasured.
- USD 10/month regional-host provision is a conservative allowance, not a provider quote. USD 2/month covers other required recurring services provisionally; availability at that price is not established.
- Workers Paid base USD 5 is fully allocated to this app. Workers, Queues, R2 and Browser account-wide included usage is assumed available; never allocate it twice across apps.
- An unused USD 10 uncertainty reserve covers tax/FX, reporting lag, storage growth and other overruns; it is not expected spending or a verified provider cap.
- Before paid launch, price the complete service inventory including authentication, logs, monitoring, backups/restore and any needed proxies. If required costs exceed the provisions, resize or defer launch.

Human review, implementation time, incident labor and existing operator equipment are outside recurring-service cash and remain separate. Paid backups, IdP, monitoring, domains, proxy subscriptions, tax and FX are not exempt: price any required amounts before launch or reserve conservatively; unpriced required services block admission.

### Launch sensitivity

| Assumption | Services USD/month | Headroom USD | Human hours |
|---|---:|---:|---:|
| Expected launch | 34.48 | 15.52 | 7.84 |
| Database active all month | 40.84 | 9.16 | 7.84 |
| Parser failures double to 20% | 38.89 | 11.11 | 15.68 |
| Both changes | 45.25 | 4.75 | 15.68 |
| No shared account allowances | 44.18 | 5.82 | 7.84 |

The 20% parser-failure sensitivity prices unconstrained demand (1,176 extractions and 588 reviews). Proposed quotas defer work beyond 700 / 350 attempts; freshness and completion would drop. Database and storage charges can continue while jobs pause. The no-allowance case exceeds the USD 40 operating envelope; confirm allocation or revise before admission. Larger scenarios are planning references outside the approved launch budget.

## Scenario summary

| Scenario | Cash incl. base / month | Human hours | Fresh observations | Accepted updates |
|---|---:|---:|---:|---:|
| Proposed launch · two scrapers, daily refresh | USD 34.48 | 7.84 | 9477 | 998 |
| Prototype | USD 30.25 | 19.60 | 23692 | 2494 |
| Pilot | USD 788.62 | 294.00 | 1895330 | 99754 |
| Stress / backfill | USD 63568.36 | 11025.00 | 72583088 | 1528065 |

## Formulas and outcome assumptions

- Captures = sources × listings per source × 24 / refresh hours × 30.
- Fetch attempts = captures × (1 + extra fetch retry rate). Retries do not multiply queue jobs.
- Usable captures = captures × fetch success. Valid claims = usable × deterministic success + LLM attempts × LLM success.
- Accepted = valid × approval rate; pending and rejected are separate, disjoint outcomes. Fresh = accepted × completion within the freshness window.
- Accepted changes = accepted × change rate. Unchanged observations = accepted − changes. Both create an event and projection work.
- Replay reads evidence and database state, runs CPU and job transport. Apply rate adds decision writes and resulting event/projection work; replay never changes observed_at. Default scenarios use deterministic dry-run replay.
- Queue operations = message-size units × (2 × initial messages + total deliveries). Each message is enqueued once and deleted once after eventual success; each delivery adds a read. Reference messages including approximately 100 metadata bytes are assumed below 64,000 bytes and use one billing unit. Larger messages need ceil(total bytes / 64,000) units. Job and event redeliveries are separate inputs.
- Database work = capture round trips + replay reads/writes + event projection queries. Compute charges still use assumed CU-hours; volume is a capacity input.
- R2 = ceil(max(usage − allowance, 0) / billing unit) × rate. Storage rounds to GB-month, requests to million-operation units; zero remains zero.
- Browser billed concurrency = sum of 30 daily peaks / 30. No session seconds implies zero concurrency. hours / 720 is the unrounded average-concurrency capacity lower bound; its ceiling is a whole-browser planning bound only. Neither replaces the explicitly assumed average daily peak. Incompatible workloads have no usable estimate.
- Extraction ≤100,000 input tokens uses Haiku USD 0.10 input / 0.50 output per million; above that uses 0.50 / 2.50 for the whole call. Batch halves the call rate. Input >200,000 and output >32,000 are rejected by this model’s supported bounds.
- All month conversions use 30 days / 720 hours. Decimal GB.

## Proposed launch · two scrapers, daily refresh — assumptions

Proposed: two scrapers, 200 listings each, refreshed daily. One regional host, a 16-hour/day database window and a priced service inventory must be validated before paid launch. All other architectural decisions remain open.

## sources

2

## listings Per Source

200

## refresh Hours

24

## browser Share

20

## retry Rate

10

## browser Sec Per Page

10

## peak Browsers

2

## html K B

150

## screenshot K B

400

## retention Days

90

## cpu Ms Per Capture

20

## cpu Ms Per Event

5

## cpu Ms Per Api

5

## requests Per Capture

1

## db Round Trips

8

## job Hops

1

## event Hops

1

## api Per Day

1000

## change Rate

10

## parser Fail Rate

10

## llm Fallback Rate

50

## reviewer Rate

50

## tok In Extract

6000

## tok Out Extract

800

## tok In Review

4000

## tok Out Review

500

## human Share

20

## human Minutes

4

## hourly Cost

60

## regional Hosts

1

## eur Usd

1.1

## db Cu

0.25

## db Active Hours

480

## db Storage G B

1

## replays Per Month

100

## fetch Success Rate

98

## llm Success Rate

85

## approval Rate

90

## pending Rate

5

## fresh Window Rate

95

## job Redelivery Rate

3

## event Redelivery Rate

2

## replay Apply Rate

0

## db Reads Per Replay

4

## db Writes Per Replay

2

## db Queries Per Event

3

### Derived counts

## captures

12000

## attempts

13200.000000000002

## browser Attempts

2640.0000000000005

## browser Hours

7.333333333333334

## average Browsers

0.010185185185185186

## implied Browsers

1

## billed Browsers

2

## extractions

588

## unresolved

916.2000000000007

## fresh Observations

9476.649

## accepted Updates

997.542

## reviews

294

## human Cases

117.60000000000001

## successful Captures

11760

## valid Claims

11083.8

## accepted Observations

9975.42

## pending Observations

554.1899999999999

## rejected Observations

554.1899999999993

## unchanged Observations

8977.878

## events

9975.42

## job Deliveries

12215.800000000001

## event Deliveries

10174.9284

## replay Applied

0

## replay Db Queries

400

## replays

100

## api Per Month

30000

## worker Requests

42000

## cpu Ms

445190.642

## queue Messages

21835.42

## queue Message Units

1

## queue Ops

66061.5684

## ingest G B

2.7048

## stored G B

8.1144

## class A

14112

## class B

12448

## db Queries Month

125004.7852

## db Queries Day

4166.826173333333

### Billing lines

| Line | Usage | Included | Price | Divisor | Net USD |
|---|---:|---:|---:|---:|---:|
| Worker requests (intake + product API) | 42000 | 10000000 | 0.3 | 1000000 | 0.0000 |
| Worker CPU time | 445190.642 | 30000000 | 0.02 | 1000000 | 0.0000 |
| Queue operations | 66061.5684 | 1000000 | 0.4 | 1000000 | 0.0000 |
| R2 storage (steady state) | 8.1144 | 10 | 0.015 | 1 | 0.0000 |
| R2 Class A (writes) | 14112 | 1000000 | 4.5 | 1000000 | 0.0000 |
| R2 Class B (reads) | 12448 | 10000000 | 0.36 | 1000000 | 0.0000 |
| Browser Run hours | 7.333333333333334 | 10 | 0.09 | 1 | 0.0000 |
| Browser Run concurrency | 2 | 10 | 2 | 1 | 0.0000 |
| PostgreSQL compute (Neon Launch) | 120 | 0 | 0.106 | 1 | 12.7200 |
| PostgreSQL storage (Neon Launch) | 1 | 0 | 0.35 | 1 | 0.3500 |
| Hyperdrive pooling (included in Workers Paid) | 125004.7852 | 0 | 0 | 1000000 | 0.0000 |
| LLM extraction (Claude Haiku 5.5) | 588 | 0 | 0.001 | 1 | 0.5880 |
| LLM reviewer (Claude Sonnet 5.5) | 294 | 0 | 0.013 | 1 | 3.8220 |
| Regional host provision (quote required) | 1 | 0 | 10 | 1 | 10.0000 |
| Other required services provision (itemized prices required) | 1 | 0 | 2 | 1 | 2.0000 |

## Prototype — assumptions

First vertical slice: fixture-scale sources, daily refresh, one regional host.

## sources

5

## listings Per Source

200

## refresh Hours

24

## browser Share

20

## retry Rate

10

## browser Sec Per Page

10

## peak Browsers

2

## html K B

150

## screenshot K B

400

## retention Days

90

## cpu Ms Per Capture

20

## cpu Ms Per Event

5

## cpu Ms Per Api

5

## requests Per Capture

1

## db Round Trips

8

## job Hops

1

## event Hops

1

## api Per Day

1000

## change Rate

10

## parser Fail Rate

10

## llm Fallback Rate

50

## reviewer Rate

50

## tok In Extract

6000

## tok Out Extract

800

## tok In Review

4000

## tok Out Review

500

## human Share

20

## human Minutes

4

## hourly Cost

60

## regional Hosts

1

## eur Usd

1.1

## db Cu

0.25

## db Active Hours

240

## db Storage G B

1

## replays Per Month

1000

## fetch Success Rate

98

## llm Success Rate

85

## approval Rate

90

## pending Rate

5

## fresh Window Rate

95

## job Redelivery Rate

3

## event Redelivery Rate

2

## replay Apply Rate

0

## db Reads Per Replay

4

## db Writes Per Replay

2

## db Queries Per Event

3

### Derived counts

## captures

30000

## attempts

33000

## browser Attempts

6600

## browser Hours

18.333333333333332

## average Browsers

0.02546296296296296

## implied Browsers

1

## billed Browsers

2

## extractions

1470

## unresolved

2290.5

## fresh Observations

23691.622499999998

## accepted Updates

2493.855

## reviews

735

## human Cases

294

## successful Captures

29400

## valid Claims

27709.5

## accepted Observations

24938.55

## pending Observations

1385.4750000000001

## rejected Observations

1385.4750000000006

## unchanged Observations

22444.695

## events

24938.55

## job Deliveries

31312

## event Deliveries

25437.321

## replay Applied

0

## replay Db Queries

4000

## replays

1000

## api Per Month

30000

## worker Requests

60000

## cpu Ms

903426.605

## queue Messages

55338.55

## queue Message Units

1

## queue Ops

167426.421

## ingest G B

6.762

## stored G B

20.285999999999998

## class A

35280

## class B

31870

## db Queries Month

315511.963

## db Queries Day

10517.065433333333

### Billing lines

| Line | Usage | Included | Price | Divisor | Net USD |
|---|---:|---:|---:|---:|---:|
| Worker requests (intake + product API) | 60000 | 10000000 | 0.3 | 1000000 | 0.0000 |
| Worker CPU time | 903426.605 | 30000000 | 0.02 | 1000000 | 0.0000 |
| Queue operations | 167426.421 | 1000000 | 0.4 | 1000000 | 0.0000 |
| R2 storage (steady state) | 20.285999999999998 | 10 | 0.015 | 1 | 0.1650 |
| R2 Class A (writes) | 35280 | 1000000 | 4.5 | 1000000 | 0.0000 |
| R2 Class B (reads) | 31870 | 10000000 | 0.36 | 1000000 | 0.0000 |
| Browser Run hours | 18.333333333333332 | 10 | 0.09 | 1 | 0.7500 |
| Browser Run concurrency | 2 | 10 | 2 | 1 | 0.0000 |
| PostgreSQL compute (Neon Launch) | 60 | 0 | 0.106 | 1 | 6.3600 |
| PostgreSQL storage (Neon Launch) | 1 | 0 | 0.35 | 1 | 0.3500 |
| Hyperdrive pooling (included in Workers Paid) | 315511.963 | 0 | 0 | 1000000 | 0.0000 |
| LLM extraction (Claude Haiku 5.5) | 1470 | 0 | 0.001 | 1 | 1.4700 |
| LLM reviewer (Claude Sonnet 5.5) | 735 | 0 | 0.013 | 1 | 9.5550 |
| Regional collector host | 1 | 0 | 6.6000000000000005 | 1 | 6.6000 |

## Pilot — assumptions

Twenty sources at 6-hour refresh with a small consumer audience.

## sources

20

## listings Per Source

1000

## refresh Hours

6

## browser Share

25

## retry Rate

10

## browser Sec Per Page

10

## peak Browsers

8

## html K B

150

## screenshot K B

400

## retention Days

30

## cpu Ms Per Capture

20

## cpu Ms Per Event

5

## cpu Ms Per Api

5

## requests Per Capture

1

## db Round Trips

8

## job Hops

1

## event Hops

1

## api Per Day

20000

## change Rate

5

## parser Fail Rate

10

## llm Fallback Rate

50

## reviewer Rate

25

## tok In Extract

6000

## tok Out Extract

800

## tok In Review

4000

## tok Out Review

500

## human Share

5

## human Minutes

3

## hourly Cost

60

## regional Hosts

2

## eur Usd

1.1

## db Cu

1

## db Active Hours

720

## db Storage G B

20

## replays Per Month

20000

## fetch Success Rate

98

## llm Success Rate

85

## approval Rate

90

## pending Rate

5

## fresh Window Rate

95

## job Redelivery Rate

3

## event Redelivery Rate

2

## replay Apply Rate

0

## db Reads Per Replay

4

## db Writes Per Replay

2

## db Queries Per Event

3

### Derived counts

## captures

2400000

## attempts

2640000

## browser Attempts

660000

## browser Hours

1833.3333333333333

## average Browsers

2.5462962962962963

## implied Browsers

3

## billed Browsers

8

## extractions

117600

## unresolved

183240

## fresh Observations

1895329.7999999998

## accepted Updates

99754.20000000001

## reviews

29400

## human Cases

5880

## successful Captures

2352000

## valid Claims

2216760

## accepted Observations

1995084

## pending Observations

110838

## rejected Observations

110838

## unchanged Observations

1895329.8

## events

1995084

## job Deliveries

2443160

## event Deliveries

2034985.68

## replay Applied

0

## replay Db Queries

80000

## replays

20000

## api Per Month

600000

## worker Requests

3000000

## cpu Ms

62038128.4

## queue Messages

4367084

## queue Message Units

1

## queue Ops

13212313.68

## ingest G B

588

## stored G B

588

## class A

2940000

## class B

2489600

## db Queries Month

25000957.04

## db Queries Day

833365.2346666666

### Billing lines

| Line | Usage | Included | Price | Divisor | Net USD |
|---|---:|---:|---:|---:|---:|
| Worker requests (intake + product API) | 3000000 | 10000000 | 0.3 | 1000000 | 0.0000 |
| Worker CPU time | 62038128.4 | 30000000 | 0.02 | 1000000 | 0.6408 |
| Queue operations | 13212313.68 | 1000000 | 0.4 | 1000000 | 4.8849 |
| R2 storage (steady state) | 588 | 10 | 0.015 | 1 | 8.6700 |
| R2 Class A (writes) | 2940000 | 1000000 | 4.5 | 1000000 | 9.0000 |
| R2 Class B (reads) | 2489600 | 10000000 | 0.36 | 1000000 | 0.0000 |
| Browser Run hours | 1833.3333333333333 | 10 | 0.09 | 1 | 164.1000 |
| Browser Run concurrency | 8 | 10 | 2 | 1 | 0.0000 |
| PostgreSQL compute (Neon Launch) | 720 | 0 | 0.106 | 1 | 76.3200 |
| PostgreSQL storage (Neon Launch) | 20 | 0 | 0.35 | 1 | 7.0000 |
| Hyperdrive pooling (included in Workers Paid) | 25000957.04 | 0 | 0 | 1000000 | 0.0000 |
| LLM extraction (Claude Haiku 5.5) | 117600 | 0 | 0.001 | 1 | 117.6000 |
| LLM reviewer (Claude Sonnet 5.5) | 29400 | 0 | 0.013 | 1 | 382.2000 |
| Regional collector host | 2 | 0 | 6.6000000000000005 | 1 | 13.2000 |

## Stress / backfill — assumptions

Stress month: fifty sources at 2-hour refresh, high parser failure, and 500,000 deterministic dry-run replays. Assumed continuous schedule: 200 browsers for 8 hours and 150 for 16 hours each day. Over 30 days this supplies 120,000 browser-hours; average daily peak 200 is an unmeasured billing input, while 166.67 is the average-concurrency capacity lower bound.

## sources

50

## listings Per Source

5000

## refresh Hours

2

## browser Share

40

## retry Rate

20

## browser Sec Per Page

10

## peak Browsers

200

## html K B

150

## screenshot K B

400

## retention Days

30

## cpu Ms Per Capture

20

## cpu Ms Per Event

5

## cpu Ms Per Api

5

## requests Per Capture

1

## db Round Trips

8

## job Hops

1

## event Hops

1

## api Per Day

50000

## change Rate

2

## parser Fail Rate

25

## llm Fallback Rate

100

## reviewer Rate

10

## tok In Extract

6000

## tok Out Extract

800

## tok In Review

4000

## tok Out Review

500

## human Share

1

## human Minutes

3

## hourly Cost

60

## regional Hosts

4

## eur Usd

1.1

## db Cu

4

## db Active Hours

720

## db Storage G B

200

## replays Per Month

500000

## fetch Success Rate

98

## llm Success Rate

85

## approval Rate

90

## pending Rate

5

## fresh Window Rate

95

## job Redelivery Rate

3

## event Redelivery Rate

2

## replay Apply Rate

0

## db Reads Per Replay

4

## db Writes Per Replay

2

## db Queries Per Event

3

### Derived counts

## captures

90000000

## attempts

108000000

## browser Attempts

43200000

## browser Hours

120000

## average Browsers

166.66666666666666

## implied Browsers

167

## billed Browsers

200

## extractions

22050000

## unresolved

5107500

## fresh Observations

72583087.5

## accepted Updates

1528065

## reviews

2205000

## human Cases

220500

## successful Captures

88200000

## valid Claims

84892500

## accepted Observations

76403250

## pending Observations

4244625

## rejected Observations

4244625

## unchanged Observations

74875185

## events

76403250

## job Deliveries

91361000

## event Deliveries

77931315

## replay Applied

0

## replay Db Queries

2000000

## replays

500000

## api Per Month

1500000

## worker Requests

91500000

## cpu Ms

2224376575

## queue Messages

165103250

## queue Message Units

1

## queue Ops

499498815

## ingest G B

27342

## stored G B

27342

## class A

123479999.99999999

## class B

110750000

## db Queries Month

941393945

## db Queries Day

31379798.166666668

### Billing lines

| Line | Usage | Included | Price | Divisor | Net USD |
|---|---:|---:|---:|---:|---:|
| Worker requests (intake + product API) | 91500000 | 10000000 | 0.3 | 1000000 | 24.4500 |
| Worker CPU time | 2224376575 | 30000000 | 0.02 | 1000000 | 43.8875 |
| Queue operations | 499498815 | 1000000 | 0.4 | 1000000 | 199.3995 |
| R2 storage (steady state) | 27342 | 10 | 0.015 | 1 | 409.9800 |
| R2 Class A (writes) | 123479999.99999999 | 1000000 | 4.5 | 1000000 | 553.5000 |
| R2 Class B (reads) | 110750000 | 10000000 | 0.36 | 1000000 | 36.3600 |
| Browser Run hours | 120000 | 10 | 0.09 | 1 | 10799.1000 |
| Browser Run concurrency | 200 | 10 | 2 | 1 | 380.0000 |
| PostgreSQL compute (Neon Launch) | 2880 | 0 | 0.106 | 1 | 305.2800 |
| PostgreSQL storage (Neon Launch) | 200 | 0 | 0.35 | 1 | 70.0000 |
| Hyperdrive pooling (included in Workers Paid) | 941393945 | 0 | 0 | 1000000 | 0.0000 |
| LLM extraction (Claude Haiku 5.5) | 22050000 | 0 | 0.001 | 1 | 22050.0000 |
| LLM reviewer (Claude Sonnet 5.5) | 2205000 | 0 | 0.013 | 1 | 28665.0000 |
| Regional collector host | 4 | 0 | 6.6000000000000005 | 1 | 26.4000 |

## Price evidence

## id

cf_workers_paid_base

## provider

Cloudflare

## product

Workers Paid plan

## unit

subscription

## price

5

## currency

USD

## included

—

## minimum

USD 5 / month minimum

## billing Unit

per account per month

## url

https://developers.cloudflare.com/workers/platform/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Base fee covers Workers, Pages Functions, KV, Hyperdrive and Durable Objects. Paid-plan allowances for Queues and Browser Run require this plan. Allocated once; never added per scenario.

## id

cf_workers_requests

## provider

Cloudflare

## product

Workers Standard — requests

## unit

million requests

## price

0.3

## currency

USD

## included

10000000

## included Label

10 million / month

## minimum

Workers Paid

## billing Unit

per additional million

## url

https://developers.cloudflare.com/workers/platform/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Cron Trigger and Queue consumer invocations are not counted as requests; subrequests are not billed. Allowance is account-wide.

## id

cf_workers_cpu

## provider

Cloudflare

## product

Workers Standard — CPU time

## unit

million CPU ms

## price

0.02

## currency

USD

## included

30000000

## included Label

30 million CPU ms / month

## minimum

Workers Paid

## billing Unit

per additional million CPU ms

## url

https://developers.cloudflare.com/workers/platform/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Allowance is account-wide. Wall time waiting on the database is not CPU time.

## id

cf_queues_ops

## provider

Cloudflare

## product

Queues — operations

## unit

million operations

## price

0.4

## currency

USD

## included

1000000

## included Label

1,000,000 operations / month

## minimum

Workers Paid

## billing Unit

per additional million operations

## url

https://developers.cloudflare.com/queues/platform/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

One operation per 64 KB written, read or deleted. Under eventual success: one enqueue and one final delete per message plus one read per delivery. Operations = ceil((payload bytes + provider metadata) / 64,000) × (2 × messages + deliveries); these reference messages including approximately 100 metadata bytes are assumed below 64,000 bytes and use one billing unit. Redelivery adds only a read.

## id

cf_r2_storage

## provider

Cloudflare

## product

R2 Standard — storage

## unit

GB-month

## price

0.015

## currency

USD

## included

10

## included Label

10 GB-month / month

## minimum

none

## billing Unit

per GB-month

## url

https://developers.cloudflare.com/r2/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Free tier applies to Standard storage only. Egress is free.

## id

cf_r2_class_a

## provider

Cloudflare

## product

R2 Standard — Class A operations

## unit

million requests

## price

4.5

## currency

USD

## included

1000000

## included Label

1 million / month

## minimum

none

## billing Unit

per million requests

## url

https://developers.cloudflare.com/r2/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Writes / lists (PUT, multipart). One PUT per stored artifact assumed.

## id

cf_r2_class_b

## provider

Cloudflare

## product

R2 Standard — Class B operations

## unit

million requests

## price

0.36

## currency

USD

## included

10000000

## included Label

10 million / month

## minimum

none

## billing Unit

per million requests

## url

https://developers.cloudflare.com/r2/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Reads (GET/HEAD). Egress free.

## id

cf_r2_ia_storage

## provider

Cloudflare

## product

R2 Infrequent Access — storage (not used by default)

## unit

GB-month

## price

0.01

## currency

USD

## included

0

## included Label

none (free tier does not apply)

## minimum

30-day minimum storage duration

## billing Unit

per GB-month; retrieval USD 0.01 / GB; Class A USD 9.00 / M; Class B USD 0.90 / M

## url

https://developers.cloudflare.com/r2/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Reference only: candidate tier for evidence older than the replay window (OPEN).

## id

cf_browser_hours

## provider

Cloudflare

## product

Browser Run — browser hours

## unit

browser hour

## price

0.09

## currency

USD

## included

10

## included Label

10 hours / month

## minimum

Workers Paid (Free plan: 10 minutes / day)

## billing Unit

per additional hour

## url

https://developers.cloudflare.com/browser-run/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Allowance is account-wide.

## id

cf_browser_concurrency

## provider

Cloudflare

## product

Browser Run — concurrent browsers

## unit

browser (monthly average of daily peaks)

## price

2

## currency

USD

## included

10

## included Label

10 browsers (averaged monthly)

## minimum

Workers Paid (Free plan: 3 browsers)

## billing Unit

per additional browser

## url

https://developers.cloudflare.com/browser-run/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Billed on the monthly average of daily peak concurrency, entered as an explicit scheduling assumption. browserHours / 720 is a capacity lower bound, never an automatic billing estimate. No sessions means zero session-concurrency usage. Incompatible assumptions invalidate the estimate.

## id

cf_hyperdrive

## provider

Cloudflare

## product

Hyperdrive — pooling and query cache

## unit

query

## price

0

## currency

USD

## included

unlimited on Workers Paid

## included Label

unlimited (Paid); 100,000 queries / day (Free)

## minimum

Workers Paid

## billing Unit

no per-query charge

## url

https://developers.cloudflare.com/hyperdrive/platform/pricing/

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Included in Workers Paid. Cached and uncached queries count the same against Free-plan limits. Hyperdrive is not storage; the database is billed by its provider.

## id

neon_launch_compute

## provider

Neon

## product

Launch plan — compute

## unit

CU-hour

## price

0.106

## currency

USD

## included

0

## included Label

none

## minimum

no monthly minimum (pay as you go)

## billing Unit

per CU-hour, metered hourly

## url

https://neon.com/pricing

## retrieved

2026-10-12

## status

verified

## account Wide

false

## note

Default managed PostgreSQL option in the model. Scale plan: USD 0.222 / CU-hour.

## id

neon_launch_storage

## provider

Neon

## product

Launch plan — storage

## unit

GB-month

## price

0.35

## currency

USD

## included

0

## included Label

none

## minimum

no monthly minimum

## billing Unit

per GB-month

## url

https://neon.com/pricing

## retrieved

2026-10-12

## status

verified

## account Wide

false

## note

Free plan: 100 CU-hours / project, 1 GB / project.

## id

supabase_pro

## provider

Supabase

## product

Pro plan (alternative, not in totals)

## unit

subscription

## price

25

## currency

USD

## included

USD 10 compute credit (one Micro instance); 8 GB disk / project

## included Label

USD 10 compute credit; 8 GB disk

## minimum

from USD 25 / month

## billing Unit

per organization per month; disk USD 0.125 / GB over 8 GB

## url

https://supabase.com/pricing

## retrieved

2026-10-12

## status

verified

## account Wide

true

## note

Reference alternative. If chosen, the plan fee is allocated infrastructure, not per-scenario cost.

## id

anthropic_haiku_5_5

## provider

Anthropic

## product

Claude Haiku 5.5 — extraction (prompts ≤ 100,000 tokens)

## unit

million tokens

## price

0.1

## price Out

0.5

## currency

USD

## included

0

## included Label

none

## minimum

none

## billing Unit

input USD 0.10 / MTok · output USD 0.50 / MTok

## url

https://platform.claude.com/docs/en/about-claude/pricing

## retrieved

2026-10-12

## status

verified

## account Wide

false

## note

Prompts over 100,000 tokens are priced at USD 0.50 / 2.50. Batch API: 50% off (USD 0.05 / 0.25). Claude 4.7+ tokenizer yields about 30% more tokens for the same text — token inputs are estimates.

## id

anthropic_sonnet_5_5

## provider

Anthropic

## product

Claude Sonnet 5.5 — reviewer

## unit

million tokens

## price

2

## price Out

10

## currency

USD

## included

0

## included Label

none

## minimum

none

## billing Unit

input USD 2 / MTok · output USD 10 / MTok

## url

https://platform.claude.com/docs/en/about-claude/pricing

## retrieved

2026-10-12

## status

verified

## account Wide

false

## note

Batch API: USD 1 / 5. A different model from the extractor keeps the reviewer a separate actor; that is not independent evidence (EST).

## id

anthropic_haiku_4_5

## provider

Anthropic

## product

Claude Haiku 4.5 (reference, not in totals)

## unit

million tokens

## price

1

## price Out

5

## currency

USD

## included

0

## included Label

none

## minimum

none

## billing Unit

input USD 1 / MTok · output USD 5 / MTok

## url

https://platform.claude.com/docs/en/about-claude/pricing

## retrieved

2026-10-12

## status

verified

## account Wide

false

## note

Reference: 10× the Haiku 5.5 input price.

## id

hetzner_cloud_vps

## provider

Hetzner

## product

Cloud shared vCPU server (Germany) — regional collector host

## unit

server-month

## price

6

## currency

EUR

## included

20 TB traffic (EU locations, per official page text)

## included Label

20 TB traffic

## minimum

none

## billing Unit

per server per month, incl. IPv4 (ASSUMPTION)

## url

https://www.hetzner.com/cloud/cost-optimized/

## url Also

https://www.hetzner.com/cloud/

## retrieved

2026-10-12

## status

unverified

## account Wide

false

## note

ASSUMPTION — planning value, not a quote. The official pages render prices client-side and no figure could be read; the CX/CAX lines were marked "not available". Plan size (CX23-class: 2 vCPU, 4 GB) was read from the page; price, VAT basis and IPv4 surcharge are unverified.

