Ad delivery, the dashboard and payment processing all run on one Cloudflare Worker and one database. This page reports whether that database can be read, checked hourly.
The check is a real read against the database that decides which ad to serve — not a ping that only proves the Worker started. A ping would show green during exactly the failure that blanks every ad slot on every site running the embed.
Hollow squares are days with no data, not good days. They mean no check was recorded: before this page existed, or a period when the scheduled job did not run. They are left out of the uptime percentage rather than counted as successful, because counting them would invent the number this page exists to report.
Stripe processes all payments, and Cloudflare serves everything. If either has an incident it will affect Perch without showing here. Their own status pages are the authority on that: status.stripe.com and cloudflarestatus.com.
We do not publish an uptime SLA. There is no upstream commitment behind one on the plans this runs on, and a promise nobody can honour is worth less than a measurement anybody can check.