ByteScope

Serverless Cost

Describe what your Worker does. See which Free limit breaks first, what Paid costs, and what changes at ten times the traffic.

Runs entirely in your browser. What you type is not sent anywhere; the rates are a checked table built into the page.

Start from
Each request
Cron Triggers

24 cron runs a day

Durable Objects
Stored data
Comparison settings

Workers Free

Fits the Free plan · Hits the wall first: CPU time

QuotaUsageLimitHeadroom
Worker requests / day20,024 requests100,000 requests
Source checked 2026-09-23
×5.0
CPU time per invocation5 ms10 ms
Source checked 2026-09-23
×2.0
Subrequests per invocation3 subrequests50 subrequests
Source checked 2026-09-23
×16.7
Cron Triggers total1 triggers5 triggers
Source checked 2026-09-23
×5.0
KV reads / day40,000 reads100,000 reads
Source checked 2026-09-23
×2.5
KV writes / day24 writes1,000 writes
Source checked 2026-09-23
×41.7
KV storage total0.01 GB1 GB
Source checked 2026-09-23
×100
D1 rows read / day402,400 rows5,000,000 rows
Source checked 2026-09-23
×12.4
D1 rows written / day20,240 rows100,000 rows
Source checked 2026-09-23
×4.9
D1 storage total0.5 GB5 GB
Source checked 2026-09-23
×10.0
R2 Class A ops / month0 operations1,000,000 operations
Source checked 2026-09-23
×∞
R2 Class B ops / month304,375 operations10,000,000 operations
Source checked 2026-09-23
×32.9
R2 storage total2 GB-month10 GB-month
Source checked 2026-09-23
×5.0
Durable Object requests / day0 requests100,000 requests
Source checked 2026-09-23
×∞
Durable Object duration / day0 GB-s13,000 GB-s
Source checked 2026-09-23
×∞

Headroom is limit divided by usage. Below ×1.0 the limit is already hit. An unused quota never hits the wall, and shows as null in the copied JSON.

Workers Paid, per month: $5.00

ItemUsageIncludedBillableCost
Base subscription$5.00
Source checked 2026-09-23
Worker requests $0.3 / 1,000,000609,481 requests10,000,000 requests0 requests$0.00
Source checked 2026-09-23
CPU time $0.02 / 1,000,0001,829,903 ms30,000,000 ms0 ms$0.00
Source checked 2026-09-23
KV reads $0.5 / 1,000,0001,217,500 reads10,000,000 reads0 reads$0.00
Source checked 2026-09-23
KV writes $5 / 1,000,000730.5 writes1,000,000 writes0 writes$0.00
Source checked 2026-09-23
KV storage $0.5 / 10.01 GB-month1 GB-month0 GB-month$0.00
Source checked 2026-09-23
D1 rows read $0.001 / 1,000,00012,248,050 rows25,000,000,000 rows0 rows$0.00
Source checked 2026-09-23
D1 rows written $1 / 1,000,000616,055 rows50,000,000 rows0 rows$0.00
Source checked 2026-09-23
D1 storage $0.75 / 10.5 GB-month5 GB-month0 GB-month$0.00
Source checked 2026-09-23
R2 Class A ops $4.5 / 1,000,0000 operations1,000,000 operations0 operations$0.00
Source checked 2026-09-23
R2 Class B ops $0.36 / 1,000,000304,375 operations10,000,000 operations0 operations$0.00
Source checked 2026-09-23
R2 storage $0.015 / 12 GB-month10 GB-month0 GB-month$0.00
Source checked 2026-09-23
Durable Object requests $0.15 / 1,000,0000 requests1,000,000 requests0 requests$0.00
Source checked 2026-09-23
Durable Object duration $12.5 / 1,000,0000 GB-s400,000 GB-s0 GB-s$0.00
Source checked 2026-09-23
Total$5.00

Growth

TrafficFits FreeFirst wallPaid / month
×1yesCPU time$5.00
×2yesKV reads$5.00
×10noKV reads$6.24

Requests, Durable Object traffic and stored data are multiplied. Cron is not: a schedule runs the same number of times whatever your traffic.

Compute only: Cloudflare vs Lambda vs Cloud Run

Workers bill CPU time, so waiting on fetch(), KV or D1 is free. Lambda and Cloud Run bill wall time multiplied by memory. Storage and databases are left out on all three.

ServicePer month
Cloudflare Workers$5.00
Source checked 2026-09-23
AWS Lambda$0.00
Source checked 2026-09-23
Google Cloud Run$0.00
Source checked 2026-09-23

Assumptions

  • Requests and compute time only; storage and databases are not included.
  • Cloudflare: the $5.00 base plus Workers requests and CPU time.
  • 128 MB of memory and 80 ms of wall time per invocation, cron runs included.
  • Lambda: x86, us-east-1, after the monthly free allowance.
  • Cloud Run: request-based billing, Tier 1, 80 concurrent requests per 1 vCPU instance, after the monthly free allowance.

About this tool

Is Cloudflare Workers free enough?

Usually the daily request count is not what breaks first. The Free plan allows 100,000 Worker requests a day, but also only 10 ms of CPU time and 50 subrequests per invocation, 1,000 KV writes a day and 100,000 D1 rows written a day. Describe what one request and one cron run do, and every quota gets a headroom multiple: ×4.0 means four times today's traffic still fits, ×0.8 means the limit is already hit.

What the Workers Paid plan costs

Paid starts at $5 a month and includes 10,000,000 requests and 30,000,000 CPU milliseconds; after that it is $0.30 per million requests and $0.02 per million CPU ms. KV, D1, R2 and Durable Objects each bring their own included amount and overage rate, and the bill is broken into lines so you can see which one the money actually comes from.

Growth, and why cron is different

The growth table multiplies requests, Durable Object traffic and stored data by 2 and 10. Cron Triggers stay as they are: a job that runs every minute runs 1,440 times a day whether you have ten users or ten thousand. That is why the first wall can move as you grow. A cron-heavy Worker tends to run out of D1 or KV writes first, a traffic-heavy one runs out of requests or CPU time.

Compared with AWS Lambda and Cloud Run

The side-by-side covers compute only: requests plus compute time, no storage and no databases. Workers bill CPU time, so waiting on fetch(), KV or D1 costs nothing. Lambda and Cloud Run bill wall time multiplied by the memory you allocate. A 200 ms request that spends 5 ms on the CPU is priced very differently on each, and the assumptions under the table spell out exactly what was compared.

Frequently asked questions

What are the D1 free tier limits?

On the Free plan D1 allows 5,000,000 rows read and 100,000 rows written per day, and 5 GB of storage in total. Rows read counts every row a query scans, not just the rows it returns, so a missing index shows up here first. On Paid, 25,000,000,000 rows read and 50,000,000 rows written a month are included, then $0.001 per million rows read and $1.00 per million rows written.

What is the Workers subrequest limit?

50 subrequests per invocation on Free and 10,000 on Paid. A cron run is an invocation too, so a job that checks 60 URLs in one run is already over the Free limit. This calculator counts your fetch() calls against it; Cloudflare's limits page gives calls to KV, D1 and R2 a separate, higher allowance.

Do Cron Triggers count as requests?

Yes. Cloudflare's own pricing example bills an hourly Cron Trigger as 720 requests a month, so cron runs are added to the request count here. The Free plan allows 5 Cron Triggers per account and Paid allows 250, and on Free each run gets the same 10 ms of CPU time as a request.

Can I use Durable Objects on the Free plan?

Yes, Durable Objects with SQLite storage are available on Free, with 100,000 requests and 13,000 GB-s of duration a day. Duration is billed as if every object holds 128 MB, so 13,000 GB-s is about 104,000 seconds of objects being active per day. On Paid, 1,000,000 requests and 400,000 GB-s a month are included, then $0.15 per million requests and $12.50 per million GB-s.

Why is Lambda so much cheaper or dearer than Workers here?

Because they meter different things. Workers charge for CPU time. Lambda charges $0.20 per million requests and $0.0000166667 per GB-second of wall time after 1,000,000 free requests and 400,000 GB-seconds a month (x86, us-east-1). Cloud Run request-based billing charges per vCPU-second and GiB-second while requests are in flight, and several concurrent requests share one instance. A Worker that mostly waits on the network is cheap on Cloudflare and comparatively expensive elsewhere.

Where do these numbers come from?

Every quota and rate was read off the official Cloudflare, AWS and Google Cloud pricing and limits pages and is stored with its source link and the date it was checked. A daily job re-reads those pages and flags any figure whose wording changed; nothing updates by itself. Open the source next to a number to see the page and date. Figures checked more than 30 days ago are marked as possibly out of date.