Cost envelope and delivery effort
All workload, storage and effort figures on this page are Estimated, not Measured. Prices are published USD rates checked on 2 November 2026, before tax, domain registration or account-wide usage from other projects. Nothing here provisions a paid service.
Pilot workload and application ceilings
Baseline assumption: 100 accounts × 150 alerts per month = 15,000 alerts. Stress envelope: 50,000 accepted alerts per billing month across both environments, maximum raw size 64 KiB. This is a proposed admission envelope; Owner approves pilot size separately.
| Resource | Estimated controlled maximum | Guard |
|---|---|---|
| Accepted alerts | 50,000 per billing month; 100 per account/day | Atomic global and account reservations before persistence |
| Private API requests | 100,000 per billing month, 60/account/minute | Authenticated admission counters; pagination; UI backoff |
| Recalculation jobs | 10,000 per billing month | Coalesce account/period versions; at most 500 facts per job; fail unavailable if affected scope exceeds verified operator bounds |
| Worker invocations | 330,000 from admitted work | 50k intake + 150k parse attempts + 100k API + 30k recalc attempts |
| CPU | 15.25 million ms for the above work | Intake max 25 ms, other workers max 50 ms per invocation; parser compatibility/load spike must pass |
| Queue operations | Reserve at most 600,000/month including DLQ and retry overhead | At most three attempts; IDs under 1 KB; all dispatch and housekeeping counted |
| D1 rows | Reserve at most 25 million read and 5 million written/month | Indexed bounded queries, index-write allowance, metadata audit and 20% early stop |
| D1 storage | 4 GB combined testing/production | Pause intake before 5 GB included limit; no silent history pruning |
| R2 live bytes | About 3.28 GB if all 50k maximum-size emails coexist | Byte reservation, raw expiry, no attachment copies |
| R2 operations | At most 200k Class A, 500k Class B/month | Count writes, lists, replay reads and cleanup overhead |
| AI / Containers / Postgres | Zero in the baseline | Disabled, unprovisioned; no fallback paid vendor |
Budget reservations live in primary D1 and use conditional atomic writes. Failed work does not refund a reservation until reconciliation proves the operation did not occur. Per-worker CPU limits bound an invocation; they are not account spending caps. Reserve a separate housekeeping margin of 1 million CPU ms and job capacity inside the monthly envelope. Query bounds and real metadata must validate the D1 estimates before pilot enablement.
When a cap is reached, new intake or recomputation pauses with an honest pending/unavailable state. Existing history remains accessible within the reserved read budget. Deletion remains operational through reserved capacity. Do not repeatedly enqueue overflow work for tomorrow.
Published price comparison
| Item | Included or published price | Estimated pilot incremental charge |
|---|---|---|
| Workers Paid | US$5/month; 10 million requests, 30 million CPU ms included | US$0 within envelope |
| Workers overage | US$0.30/million requests; US$0.02/million CPU ms | Not authorized as normal operation |
| D1 Paid | 25 billion rows read, 50 million written, 5 GB included | US$0 within envelope |
| D1 overage | US$0.001/million reads; US$1/million writes; US$0.75/GB-month | Pause before planned overage |
| Queues | 1 million operations included; US$0.40/million after | US$0 within envelope |
| R2 Standard | 10 GB-month, 1 million Class A and 10 million Class B included | US$0 within envelope |
| R2 overage | US$0.015/GB-month, US$4.50/million A, US$0.36/million B | Pause before planned overage; provider rounds billing units |
Estimated base total: US$5/month, assuming these allowances are available in the account and configured resources stay within the envelope. Included allowances are shared with other workloads. Before enabling the pilot, reconcile the whole account's usage, not only Optima's counters.
Sources: Workers pricing, D1 pricing, Queues pricing, R2 pricing.
Residual billing risk and stop procedure
Cloudflare provides no general account hard spending cap. Rejected API calls and mail still invoke Workers before application admission, and cleanup/monitoring also consume resources. Therefore these application limits do not guarantee a US$5 maximum during a flood or a bug. Uncontrolled ingress has no finite worst-case bill in this design.
Use provider-side rate controls where available, disable public signup during the pilot and reject unapproved tags early. Set a US$5 account budget alert and early usage alerts at 50% and 80% of each included allowance. Proposed monitor runs hourly; alert delivery and operator response can lag. A primary-D1 kill switch stops expensive writes and jobs. If ingress continues, the runbook removes the email route and disables the affected public Worker route. A kill switch inside a Worker alone cannot stop invocation charges.
The hard unresolved decision is whether the Owner accepts this residual Cloudflare exposure. If an absolute US$5 ceiling is mandatory, do not enable paid production intake until a separately approved provider-level containment approach exists. No extra paid service is silently added to solve it.
Effort by requirement
Ranges are Estimated engineer-days of focused implementation and checks, not elapsed dates or a commitment. They exclude waiting for issuer terms and pilot participants. Shared plumbing is charged once in the most relevant row.
| Scope | Estimated effort | Main uncertainty |
|---|---|---|
| F-01 private access | 3–5 | Workers auth adapter, cross-account tests |
| F-02 card identity | 2–3 | Exact pilot list, artwork rights |
| F-03 intake/setup | 5–8 | Provider confirmations, MIME variants, dedupe |
| F-04 periods/credits | 4–7 | Posting, FX and late refunds |
| F-05 rule engine | 8–15 | Product-specific operators and verified fixtures |
| F-06 compact Home | 2–3 | Snapshot and conditional allowance presentation |
| F-07 transactions/MCC | 2–4 | Provenance, pagination and mixed portions |
| F-08 review sheets | 3–5 | Conflicts, failure preservation, focus behaviour |
| F-09 history | 3–5 | Revisions and actual-period navigation |
| F-10 covered share | 1–2 | Credit/unknown/partial-cap reconciliation |
| F-11 priorities/flags | 2–4 | Evidence and comparable reward units |
| F-12 phone UI | 2–4 | Accessibility and empty/error variants |
| Privacy, operations, CI integration and release tests | 5–8 | Deletion recovery, budgets and backend adapter |
| Total before contingency | 42–73 | Refine after spikes; backend/frontend work can overlap |
A proposed 25% contingency yields about 53–92 engineer-days. This is not a schedule; team availability and review/test time determine calendar duration. The largest risk is incomplete reward evidence, not chart implementation. Do not trade away uncertainty or tenant isolation to meet an inferred deadline.