Work · Site infrastructure
Worker usage
Everything live on this site runs through one Cloudflare Worker and its database, on Cloudflare’s free plan. This is how much of that plan they have used today and how much is left, and the last 30 days, from Cloudflare’s own analytics.
- Requests today
- 33
- Requests left
- 99,967
- Rows read today
- 27,296
- Rows written today
- 2,648
- Database size
- 6.4 MB
- CPU, typical run
- 8.2 ms
Today against the free plan
Today is the UTC day, Oct 30, 2026: the free plan’s daily limits reset at midnight UTC (8 PM in Michigan in summer). Past a limit, requests fail until then and the pages fall back to the copy in their HTML; nothing is ever billed. Checked Oct 29, 9 PM (Michigan time).
| What | Used | Available | Free plan | Share used |
|---|---|---|---|---|
| Worker requests | 33 | 99,967 | 100,000 a day | under 0.1% |
| Database rows read | 27,296 | 4,972,704 | 5,000,000 a day | 0.5% |
| Database rows written | 2,648 | 97,352 | 100,000 a day | 2.6% |
| Database storage, as Cloudflare counts it | 6.4 MB | 5.0 GB | 5.0 GB | 0.1% |
| CPU, a typical run (median) | 8.2 ms | 1.8 ms to spare | 10 ms a run | 82% |
| CPU, the slowest 1% of runs | 165 ms | over by 155 ms | 10 ms a run | 1650% |
CPU is time spent computing, not waiting on other sites, so a run that waits half a minute for USDA still uses a few milliseconds. The 10 ms is per run. Cloudflare stops a run that uses too much, and a stopped run counts as an error: 0 errors in the last 30 days, though the slowest runs go past 10 ms.
The busiest day of the last 30 was Oct 29, 2026, with 4,246 requests (4.2% of the daily limit).
The last 30 days
Download every day on record (CSV)
Cloudflare keeps 30 days of these figures; this site keeps its own copy of every finished day (35 so far), in that file. Requests include the scheduled runs (two an hour) as well as visitors’ pages asking for live numbers. Rows are the database’s rows read and written, which is how Cloudflare counts database use. CPU is the typical run (median) and the slowest 1% (99th percentile). Days with nothing recorded are left out.
| Day (UTC) | Requests | Errors | Rows read | Rows written | CPU, typical | CPU, slowest 1% |
|---|---|---|---|---|---|---|
| Fri, Oct 30 | 33 | 0 | 27,296 | 2,648 | 8.2 ms | 165 ms |
| Thu, Oct 29 | 4,246 | 0 | 1,813,138 | 59,551 | 9.6 ms | 116 ms |
| Wed, Oct 28 | 1,925 | 0 | 1,734,440 | 28,482 | 6.7 ms | 167 ms |
| Tue, Oct 27 | 3,004 | 0 | 573,094 | 33,374 | 4.5 ms | 95 ms |
| Mon, Oct 26 | 649 | 0 | 160,832 | 2,243 | 3.6 ms | 22 ms |
| Sun, Oct 25 | 202 | 0 | 45,389 | 2,149 | 8.8 ms | 21 ms |
| Sat, Oct 24 | 1,562 | 0 | 288,490 | 11,233 | 7.5 ms | 22 ms |
| Fri, Oct 23 | 782 | 0 | 137,717 | 2,492 | 7.6 ms | 31 ms |
| Thu, Oct 22 | 1,025 | 0 | 141,888 | 6,975 | 7.6 ms | 28 ms |
| Wed, Oct 21 | 182 | 0 | 111,640 | 2,338 | 4.1 ms | 24 ms |
| Tue, Oct 20 | 231 | 0 | 126,763 | 1,448 | 4.3 ms | 22 ms |
| Mon, Oct 19 | 360 | 0 | 86,688 | 10,041 | 2.3 ms | 18 ms |
| Sun, Oct 18 | 464 | 0 | 302,625 | 14,070 | 2.8 ms | 15 ms |
| Sat, Oct 17 | 898 | 0 | 79,364 | 14,207 | 3.1 ms | 19 ms |
| Fri, Oct 16 | 169 | 0 | 18,808 | 4,729 | 2.4 ms | 31 ms |
| Thu, Oct 15 | 877 | 0 | 20,948 | 4,972 | 1.9 ms | 14 ms |
| Wed, Oct 14 | 57 | 0 | 66 | 18 | 3.5 ms | 12 ms |
| Tue, Oct 13 | 17 | 0 | 10 | 3 | 1.7 ms | 14 ms |
| Sat, Oct 10 | 6 | 0 | 3 | 1 | 2.3 ms | 9.4 ms |
| Thu, Oct 8 | 47 | 0 | 23 | 5 | 2.8 ms | 13 ms |
| Wed, Oct 7 | 28 | 0 | 19 | 6 | 1.7 ms | 18 ms |
| Tue, Oct 6 | 15 | 0 | 6 | 2 | 2.6 ms | 11 ms |
| Mon, Oct 5 | 13 | 0 | 10 | 2 | 2.0 ms | 8.9 ms |
| Fri, Oct 2 | 4 | 0 | 3 | 1 | 1.1 ms | 7.3 ms |
| Thu, Oct 1 | 72 | 0 | 56 | 17 | 1.9 ms | 13 ms |
What runs, and when
Most of the Worker’s requests are its own schedule, not visitors. Times are UTC unless noted.
| Job | When | Why then |
|---|---|---|
| Border waits from CBP | every 30 minutes, at :17 and :47 | Crossings post about hourly, at different minutes, and CBP keeps no history, so each reading has to be caught. |
| Beef and pork reports from USDA | weekdays 1:30–6 PM Central until the day’s report is in; 6–8 AM Central for corrections | The only hours USDA posts or corrects them. |
| YouTube numbers | every 3 hours | A small channel’s numbers barely move in an hour. |
| Rebuilding the pages | 11:47 every day; when a new beef and pork report is stored; and on “Update now”, at most once an hour | The pages carry a copy of the data, so they’re rebuilt when it changes. |
| This page’s figures | every hour, at :47 | Cloudflare’s analytics lag a few minutes; hourly is plenty. |
How it works
Checked Oct 29, 9 PM (Michigan time)Cloudflare counts every request a Worker answers and every row its database reads or writes, and publishes those counts through its GraphQL Analytics API. Once an hour the Worker asks for the last 30 days of its account (the free plan’s limits are per account) and keeps the answer as one row in its database, so viewing this page never calls the API. A GitHub Action copies that row into this page when the site is rebuilt, and the script on the page swaps in the newer figures.
The limits shown are Cloudflare’s for the free plan: 100,000 Worker requests a day, 10 ms of CPU per run, 5 million database rows read and 100,000 written a day, and 5 GB of storage. The Worker reads its analytics with a token that can only read them. Its code is in the worker folder of this site’s repository.