rules.city

CEO audit

Automated daily audit at 05:00 UTC. Scores coverage, freshness, pipeline health, and data quality, then drops actionable findings you can work through.

Headline metrics

Coverage
7%
128 of 1899 city × topic pairs have data
Cities with data
101 / 211
110 cities still empty
Freshness
6%
pairs crawled in the last 30 days
Pipeline success (7d)
21%
22 runs · 64 dead URLs

Records in the database

EntityCount
Institutions489
Fees49
Required documents42
Rules & notes40
Transport routes211
Parking zones22
Procedures120
Press releases125
Sources seeded427

Findings (7 this run)

Critical · pipeline

high-error-rate

Pipeline success rate over the last 7 days is 21%. Investigate.

Needs attention · coverage

cities-empty

110 of 211 cities have zero data. Seed sources for them in the `sources` table, or let the CEO pick the next batch.

Detail
{"cities":[{"slug":"mesa","name":"Mesa"},{"slug":"mumbai","name":"Mumbai"},{"slug":"delhi","name":"Delhi"},{"slug":"hyderabad","name":"Hyderabad"},{"slug":"ahmedabad","name":"Ahmedabad"},{"slug":"pune","name":"Pune"},{"slug":"jaipur","name":"Jaipur"},{"slug":"kanpur","name":"Kanpur"},{"slug":"indore","name":"Indore"},{"slug":"thane","name":"Thane"},{"slug":"bhopal","name":"Bhopal"},{"slug":"visakhapatnam","name":"Visakhapatnam"},{"slug":"patna","name":"Patna"},{"slug":"vadodara","name":"Vadodara"},{"slug":"ghaziabad","name":"Ghaziabad"},{"slug":"tokyo","name":"Tokyo"},{"slug":"yokohama","name":"Yokohama"},{"slug":"osaka","name":"Osaka"},{"slug":"nagoya","name":"Nagoya"},{"slug":"sapporo","name":"Sapporo"}]}
Needs attention · source-health

dead-sources

64 URLs failed in ≥3 of the last 7 pipeline runs. Consider replacing them.

Detail
{"urls":[{"url":"https://primariaclujnapoca.ro/informatii-publice/comunicate-presa/","failures":7},{"url":"https://www.primariatm.ro/comunicate-presa/","failures":7},{"url":"https://lacity.gov/","failures":7},{"url":"https://www.chicago.gov/city/en.html","failures":7},{"url":"https://www.sanjoseca.gov/","failures":7},{"url":"https://louisvilleky.gov/","failures":7},{"url":"https://city.milwaukee.gov/","failures":7},{"url":"https://www.atlantaga.gov/","failures":7},{"url":"https://vancouver.ca/","failures":7},{"url":"https://www.berlin.de/rss/berlin.xml","failures":7},{"url":"https://www.frankfurt.de/","failures":7},{"url":"https://um.warszawa.pl/","failures":7},{"url":"https://www.stockholm.se/","failures":7},{"url":"https://www.amsterdam.nl/","failures":7},{"url":"https://www.cityofathens.gr/","failures":7}]}
Needs attention · freshness

stale-data

Only 6% of topic pages are fresher than 30 days.

Informational · coverage

city-topic-pairs-empty

1771 city/topic pairs are empty. Covered: 128/1899 (7%).

Informational · source-health

never-crawled

200 sources have never been successfully crawled.

Detail
{"examples":[{"city_slug":"abidjan","topic_slug":"city-hall","url":"https://en.wikipedia.org/wiki/Abidjan"},{"city_slug":"abu-dhabi","topic_slug":"city-hall","url":"https://en.wikipedia.org/wiki/Abu_Dhabi"},{"city_slug":"accra","topic_slug":"city-hall","url":"https://en.wikipedia.org/wiki/Accra"},{"city_slug":"addis-ababa","topic_slug":"city-hall","url":"https://en.wikipedia.org/wiki/Addis_Ababa"},{"city_slug":"adelaide","topic_slug":"city-hall","url":"https://en.wikipedia.org/wiki/Adelaide"},{"city_slug":"ahmedabad","topic_slug":"city-hall","url":"https://ahmedabadcity.gov.in/"},{"city_slug":"alexandria","topic_slug":"city-hall","url":"https://en.wikipedia.org/wiki/Alexandria"},{"city_slug":"algiers","topic_slug":"city-hall","url":"https://en.wikipedia.org/wiki/Algiers"},{"city_slug":"amsterdam","topic_slug":"airports","url":"https://en.wikipedia.org/wiki/Amsterdam_Airport_Schiphol"},{"city_slug":"amsterdam","topic_slug":"city-hall","url":"https://www.amsterdam.nl/"}]}
Informational · data-quality

procedures-no-steps

6 procedures have no step list. Tune the extractor prompt or re-classify.

Run info

Report #5 · generated 19 Apr 2026 · finished at 19 Apr 2026 · duration 349ms · 1 critical

Trigger manually: curl https://rules-city-audit.ionasrobert.workers.dev/run