{
 "checked_at": "2026-11-05T09:19:29.490Z",
 "catalog_generated_at": "2026-11-05T07:24:04Z",
 "catalog": "https://kolaboro.com/data/catalog.json",
 "page": "https://kolaboro.com/data/#freshness",
 "rule": "Target = twice the run interval of the workflow that writes the file when it runs daily or more often, the interval plus 2 days when it runs weekly or monthly, plus 1 day when the file states only a date (counted from 00:00 UTC). Age = now minus the timestamp the file itself states (or, without one, the time of the last commit that published it). No target for files written by hand, on demand or after events. The Parquet files also count as fresh while they were built from the current bali-cases.json.",
 "summary": {
  "datasets": 54,
  "ok": 40,
  "late": 1,
  "no_target": 13
 },
 "late": [
  "journeys"
 ],
 "datasets": [
  {
   "id": "bali-cases",
   "title": "Tracked off-plan projects (anonymous)",
   "status": "ok",
   "age_hours": 9.32,
   "target_hours": 240,
   "data_as_of": "2026-11-05T00:00:00.000Z",
   "stamp": "2026-11-05",
   "stamp_source": "live file",
   "schedule": "weekly research run (Monday 06:17 UTC) and every time the research files change",
   "url": "https://kolaboro.com/data/bali-cases.json"
  },
  {
   "id": "world-claims",
   "title": "What developers advertise, by market",
   "status": "ok",
   "age_hours": 9.32,
   "target_hours": 240,
   "data_as_of": "2026-11-05T00:00:00.000Z",
   "stamp": "2026-11-05",
   "stamp_source": "live file",
   "schedule": "weekly research run (Monday 06:17 UTC) and every time the research files change",
   "url": "https://kolaboro.com/data/world-claims.json"
  },
  {
   "id": "bali-claims",
   "title": "What developers advertise in Bali",
   "status": "ok",
   "age_hours": 9.32,
   "target_hours": 240,
   "data_as_of": "2026-11-05T00:00:00.000Z",
   "stamp": "2026-11-05",
   "stamp_source": "live file",
   "schedule": "weekly research run (Monday 06:17 UTC) and every time the research files change",
   "url": "https://kolaboro.com/data/bali-claims.json"
  },
  {
   "id": "kolaboro-parquet",
   "title": "Projects table (Parquet)",
   "status": "ok",
   "age_hours": 22.91,
   "target_hours": 48,
   "data_as_of": "2026-11-04T10:24:41.000Z",
   "stamp": "2026-11-04T10:24:41Z",
   "stamp_source": "live file",
   "schedule": "daily 07:43 UTC and after each research run; rewritten only when the source changed",
   "url": "https://kolaboro.com/data/kolaboro.parquet",
   "in_sync": false,
   "source_note": "built from an older bali-cases.json"
  },
  {
   "id": "kolaboro-markets-parquet",
   "title": "Markets table (Parquet)",
   "status": "ok",
   "age_hours": 22.91,
   "target_hours": 48,
   "data_as_of": "2026-11-04T10:24:41.000Z",
   "stamp": "2026-11-04T10:24:41Z",
   "stamp_source": "live file",
   "schedule": "daily 07:43 UTC and after each research run; rewritten only when the source changed",
   "url": "https://kolaboro.com/data/kolaboro-markets.parquet",
   "in_sync": false,
   "source_note": "built from an older bali-cases.json"
  },
  {
   "id": "kolaboro-parquet-manifest",
   "title": "Parquet export manifest",
   "status": "ok",
   "age_hours": 22.91,
   "target_hours": 48,
   "data_as_of": "2026-11-04T10:24:41.000Z",
   "stamp": "2026-11-04T10:24:41Z",
   "stamp_source": "live file",
   "schedule": "daily 07:43 UTC and after each research run; rewritten only when the source changed",
   "url": "https://kolaboro.com/data/kolaboro.parquet.json",
   "in_sync": false,
   "source_note": "built from an older bali-cases.json"
  },
  {
   "id": "promises",
   "title": "Dated developer promises",
   "status": "ok",
   "age_hours": 9.32,
   "target_hours": 72,
   "data_as_of": "2026-11-05T00:00:00.000Z",
   "stamp": "2026-11-05",
   "stamp_source": "live file",
   "schedule": "daily 11:23 UTC and after each research run",
   "url": "https://kolaboro.com/data/promises.json"
  },
  {
   "id": "promise-drift",
   "title": "Promise drift on developer pages",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 72,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "daily 09:43 UTC and after each research run",
   "url": "https://kolaboro.com/data/promise-drift.json"
  },
  {
   "id": "domain-age",
   "title": "Website age of project pages",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 72,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "daily 09:43 UTC and after each research run",
   "url": "https://kolaboro.com/data/domain-age.json"
  },
  {
   "id": "delay-index",
   "title": "Delivery delay index",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 72,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "daily 16:37 UTC, monthly snapshot on the 1st, and after each research run",
   "url": "https://kolaboro.com/data/delay-index.json"
  },
  {
   "id": "on-time",
   "title": "On-time handover odds",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 72,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "daily 16:37 UTC, monthly snapshot on the 1st, and after each research run",
   "url": "https://kolaboro.com/data/on-time.json"
  },
  {
   "id": "price-index",
   "title": "Asking-price index",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 72,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "daily 14:41 UTC and after each research run",
   "url": "https://kolaboro.com/data/price-index.json"
  },
  {
   "id": "price-reality",
   "title": "Advertised versus registered prices",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 240,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "weekly, Monday 04:17 UTC",
   "url": "https://kolaboro.com/data/price-reality.json"
  },
  {
   "id": "risk",
   "title": "Risk patterns",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 240,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "weekly, Monday 04:17 UTC",
   "url": "https://kolaboro.com/data/risk.json"
  },
  {
   "id": "register-checks",
   "title": "Official register checks",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 240,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "weekly, Monday 04:17 UTC",
   "url": "https://kolaboro.com/data/register-checks.json"
  },
  {
   "id": "company-graph",
   "title": "Company and director graph (UK)",
   "status": "ok",
   "age_hours": 20.07,
   "target_hours": 216,
   "data_as_of": "2026-11-04T13:15:03.000Z",
   "stamp": "2026-11-04T13:15:03Z",
   "stamp_source": "live file",
   "schedule": "weekly, Wednesday 05:41 UTC",
   "url": "https://kolaboro.com/data/company-graph.json"
  },
  {
   "id": "company-graph-global",
   "title": "Global company graph (GLEIF)",
   "status": "ok",
   "age_hours": 23.72,
   "target_hours": 216,
   "data_as_of": "2026-11-04T09:36:15.000Z",
   "stamp": "2026-11-04T09:36:15Z",
   "stamp_source": "live file",
   "schedule": "weekly, Tuesday 04:17 UTC",
   "url": "https://kolaboro.com/data/company-graph-global.json"
  },
  {
   "id": "insolvency-watch",
   "title": "Insolvency watch",
   "status": "ok",
   "age_hours": 24.28,
   "target_hours": 48,
   "data_as_of": "2026-11-04T09:02:42.000Z",
   "stamp": "2026-11-04T09:02:42Z",
   "stamp_source": "live file",
   "schedule": "daily 07:23 UTC",
   "url": "https://kolaboro.com/data/insolvency-watch.json"
  },
  {
   "id": "insolvency-es-index",
   "title": "Spanish insolvency index (hashed)",
   "status": "ok",
   "age_hours": 24.28,
   "target_hours": 48,
   "data_as_of": "2026-11-04T09:02:42.000Z",
   "stamp": "2026-11-04T09:02:42Z",
   "stamp_source": "live file",
   "schedule": "daily 07:23 UTC",
   "url": "https://kolaboro.com/data/insolvency-es-index.json"
  },
  {
   "id": "hazards",
   "title": "Natural hazards at tracked projects",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 816,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "monthly, on the 9th at 03:17 UTC",
   "url": "https://kolaboro.com/data/hazards.json"
  },
  {
   "id": "satellite",
   "title": "Satellite watch (Sentinel-2 and Sentinel-1)",
   "status": "ok",
   "age_hours": 9.32,
   "target_hours": 240,
   "data_as_of": "2026-11-05T00:00:00.000Z",
   "stamp": "2026-11-05",
   "stamp_source": "live file",
   "schedule": "weekly, Monday 07:41 UTC",
   "url": "https://kolaboro.com/data/satellite.json"
  },
  {
   "id": "satellite-optical",
   "title": "Monthly optical progress series",
   "status": "ok",
   "age_hours": 9.32,
   "target_hours": 240,
   "data_as_of": "2026-11-05T00:00:00.000Z",
   "stamp": "2026-11-05",
   "stamp_source": "live file",
   "schedule": "weekly, Tuesday 09:17 UTC",
   "url": "https://kolaboro.com/data/satellite-optical.json"
  },
  {
   "id": "stalled-sites",
   "title": "Stalled construction sites",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 240,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "weekly, Wednesday 04:41 UTC",
   "url": "https://kolaboro.com/data/stalled-sites.json"
  },
  {
   "id": "night-lights",
   "title": "Night lights at finished projects",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 240,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "weekly, Wednesday 04:41 UTC",
   "url": "https://kolaboro.com/data/night-lights.json"
  },
  {
   "id": "visual-diff",
   "title": "Visual changes on developer pages",
   "status": "ok",
   "age_hours": 33.32,
   "target_hours": 72,
   "data_as_of": "2026-11-04T00:00:00.000Z",
   "stamp": "2026-11-04",
   "stamp_source": "live file",
   "schedule": "daily 15:23 UTC",
   "url": "https://kolaboro.com/data/visual-diff.json"
  },
  {
   "id": "render-reuse",
   "title": "Reused renders across projects",
   "status": "ok",
   "age_hours": 1.61,
   "target_hours": 216,
   "data_as_of": "2026-11-05T07:43:11.000Z",
   "stamp": "2026-11-05T07:43:11Z",
   "stamp_source": "live file",
   "schedule": "weekly, Sunday 06:37 UTC",
   "url": "https://kolaboro.com/data/render-reuse.json"
  },
  {
   "id": "image-hashes",
   "title": "Perceptual image hashes",
   "status": "ok",
   "age_hours": 1.63,
   "target_hours": 216,
   "data_as_of": "2026-11-05T07:41:39.000Z",
   "stamp": "2026-11-05T07:41:39Z",
   "stamp_source": "live file",
   "schedule": "weekly, Sunday 06:37 UTC",
   "url": "https://kolaboro.com/data/image-hashes.json"
  },
  {
   "id": "image-index",
   "title": "Render index",
   "status": "ok",
   "age_hours": 9.32,
   "target_hours": 240,
   "data_as_of": "2026-11-05T00:00:00.000Z",
   "stamp": "2026-11-05",
   "stamp_source": "live file",
   "schedule": "weekly, Sunday 04:51 UTC",
   "url": "https://kolaboro.com/data/image-index.json"
  },
  {
   "id": "similar",
   "title": "Similar projects",
   "status": "ok",
   "age_hours": 1.95,
   "target_hours": 48,
   "data_as_of": "2026-11-05T07:22:38.000Z",
   "stamp": null,
   "stamp_source": "last commit",
   "schedule": "daily 02:23 UTC and after each research run",
   "url": "https://kolaboro.com/data/similar.json"
  },
  {
   "id": "mystery-shopper",
   "title": "Mystery shopper programme",
   "status": "no_target",
   "age_hours": 57.32,
   "target_hours": null,
   "data_as_of": "2026-11-03T00:00:00.000Z",
   "stamp": "2026-11-03",
   "stamp_source": "live file",
   "schedule": "edited by hand",
   "url": "https://kolaboro.com/data/mystery-shopper.json"
  },
  {
   "id": "roadmap",
   "title": "Product roadmap",
   "status": "no_target",
   "age_hours": 105.32,
   "target_hours": null,
   "data_as_of": "2026-11-01T00:00:00.000Z",
   "stamp": "2026-11-01",
   "stamp_source": "live file",
   "schedule": "edited by hand",
   "url": "https://kolaboro.com/data/roadmap.json"
  },
  {
   "id": "projects-sample",
   "title": "Fictional sample score",
   "status": "no_target",
   "age_hours": 225.32,
   "target_hours": null,
   "data_as_of": "2026-10-27T00:00:00.000Z",
   "stamp": "2026-10-27",
   "stamp_source": "live file",
   "schedule": "static sample",
   "url": "https://kolaboro.com/data/projects.json"
  },
  {
   "id": "progress-sample",
   "title": "Sample photo progress analysis",
   "status": "no_target",
   "age_hours": 156.63,
   "target_hours": null,
   "data_as_of": "2026-10-29T20:41:55.904Z",
   "stamp": "2026-10-29T20:41:55.904Z",
   "stamp_source": "live file",
   "schedule": "static sample",
   "url": "https://kolaboro.com/data/progress-sample.json"
  },
  {
   "id": "coast-tiles",
   "title": "Coastline outline tiles",
   "status": "no_target",
   "age_hours": 2.01,
   "target_hours": null,
   "data_as_of": "2026-11-05T07:18:43.000Z",
   "stamp": null,
   "stamp_source": "last commit",
   "schedule": "static, built once",
   "url": "https://kolaboro.com/data/coast/"
  },
  {
   "id": "mangrove-tiles",
   "title": "Mangrove index tiles",
   "status": "no_target",
   "age_hours": 24.37,
   "target_hours": null,
   "data_as_of": "2026-11-04T08:57:27.000Z",
   "stamp": null,
   "stamp_source": "last commit",
   "schedule": "static, rebuilt once per Global Mangrove Watch release",
   "url": "https://kolaboro.com/data/mangroves/"
  },
  {
   "id": "benchmark",
   "title": "AI desk review benchmark",
   "status": "no_target",
   "age_hours": 34.34,
   "target_hours": null,
   "data_as_of": "2026-11-03T22:59:11.000Z",
   "stamp": "2026-11-03T22:59:11Z",
   "stamp_source": "catalog",
   "schedule": "on demand",
   "url": "https://kolaboro.com/data/benchmark/"
  },
  {
   "id": "a11y",
   "title": "Accessibility audit",
   "status": "ok",
   "age_hours": 23.31,
   "target_hours": 48,
   "data_as_of": "2026-11-04T10:00:54.195Z",
   "stamp": "2026-11-04T10:00:54.195Z",
   "stamp_source": "live file",
   "schedule": "daily 02:47 UTC",
   "url": "https://kolaboro.com/data/a11y.json"
  },
  {
   "id": "lighthouse",
   "title": "Lighthouse scores",
   "status": "ok",
   "age_hours": 20.86,
   "target_hours": 48,
   "data_as_of": "2026-11-04T12:27:45.602Z",
   "stamp": "2026-11-04T12:27:45.602Z",
   "stamp_source": "live file",
   "schedule": "daily 04:23 UTC",
   "url": "https://kolaboro.com/data/lighthouse.json"
  },
  {
   "id": "qa",
   "title": "Site QA crawl",
   "status": "ok",
   "age_hours": 19.94,
   "target_hours": 48,
   "data_as_of": "2026-11-04T13:22:49.956Z",
   "stamp": "2026-11-04T13:22:49.956Z",
   "stamp_source": "live file",
   "schedule": "daily 05:23 UTC",
   "url": "https://kolaboro.com/data/qa.json"
  },
  {
   "id": "journeys",
   "title": "Synthetic user journeys",
   "status": "late",
   "age_hours": 6.58,
   "target_hours": 2,
   "data_as_of": "2026-11-05T02:44:40.632Z",
   "stamp": "2026-11-05T02:44:40.632Z",
   "stamp_source": "live file",
   "schedule": "hourly at minute 41",
   "url": "https://kolaboro.com/data/journeys.json"
  },
  {
   "id": "verifiers",
   "title": "Independent verifier run",
   "status": "ok",
   "age_hours": 16.72,
   "target_hours": 48,
   "data_as_of": "2026-11-04T16:36:29.000Z",
   "stamp": "2026-11-04T16:36:29Z",
   "stamp_source": "live file",
   "schedule": "daily 08:41 UTC",
   "url": "https://kolaboro.com/data/verifiers.json"
  },
  {
   "id": "chaos",
   "title": "Chaos drills",
   "status": "ok",
   "age_hours": 20.32,
   "target_hours": 216,
   "data_as_of": "2026-11-04T13:00:06.000Z",
   "stamp": "2026-11-04T13:00:06Z",
   "stamp_source": "live file",
   "schedule": "weekly, Wednesday 05:11 UTC",
   "url": "https://kolaboro.com/data/chaos.json"
  },
  {
   "id": "security-scan",
   "title": "Security scan",
   "status": "ok",
   "age_hours": 47.35,
   "target_hours": 216,
   "data_as_of": "2026-11-03T09:58:33.000Z",
   "stamp": "2026-11-03T09:58:33Z",
   "stamp_source": "live file",
   "schedule": "weekly, Tuesday 04:29 UTC",
   "url": "https://kolaboro.com/data/security-scan.json"
  },
  {
   "id": "restore",
   "title": "Backup restore drill",
   "status": "ok",
   "age_hours": 48.11,
   "target_hours": 216,
   "data_as_of": "2026-11-03T09:12:58.000Z",
   "stamp": "2026-11-03T09:12:58Z",
   "stamp_source": "live file",
   "schedule": "weekly, Monday 03:17 UTC",
   "url": "https://kolaboro.com/data/restore.json"
  },
  {
   "id": "deploys",
   "title": "Deploy guard record",
   "status": "no_target",
   "age_hours": 1.18,
   "target_hours": null,
   "data_as_of": "2026-11-05T08:08:29.000Z",
   "stamp": "2026-11-05T08:08:29Z",
   "stamp_source": "live file",
   "schedule": "after each site deploy (event driven, checked every 30 minutes)",
   "url": "https://kolaboro.com/data/deploys.json"
  },
  {
   "id": "site-manifest",
   "title": "Site manifest",
   "status": "no_target",
   "age_hours": 15.28,
   "target_hours": null,
   "data_as_of": "2026-11-04T18:02:39.000Z",
   "stamp": "2026-11-04T18:02:39Z",
   "stamp_source": "live file",
   "schedule": "checked every 30 minutes, written when the live commit changes",
   "url": "https://kolaboro.com/data/site-manifest.json"
  },
  {
   "id": "builds",
   "title": "Reproducible worker builds",
   "status": "no_target",
   "age_hours": 9.58,
   "target_hours": null,
   "data_as_of": "2026-11-04T23:44:51.000Z",
   "stamp": "2026-11-04T23:44:51Z",
   "stamp_source": "live file",
   "schedule": "checked every 30 minutes, written when the worker changes",
   "url": "https://kolaboro.com/data/builds.json"
  },
  {
   "id": "property-tests",
   "title": "Property-based tests of the scoring rules",
   "status": "no_target",
   "age_hours": 36.27,
   "target_hours": null,
   "data_as_of": "2026-11-03T21:03:30.000Z",
   "stamp": "2026-11-03T21:03:30Z",
   "stamp_source": "live file",
   "schedule": "published when the open-source test suite is run",
   "url": "https://kolaboro.com/data/property-tests.json"
  },
  {
   "id": "shipping",
   "title": "Shipping log",
   "status": "ok",
   "age_hours": 2,
   "target_hours": 2,
   "data_as_of": "2026-11-05T07:19:47.000Z",
   "stamp": null,
   "stamp_source": "last commit",
   "schedule": "hourly at minute 19",
   "url": "https://kolaboro.com/data/shipping.json"
  },
  {
   "id": "roadmap-sync",
   "title": "Roadmap items verified live",
   "status": "ok",
   "age_hours": 2,
   "target_hours": 2,
   "data_as_of": "2026-11-05T07:19:47.000Z",
   "stamp": null,
   "stamp_source": "last commit",
   "schedule": "hourly at minute 19 (shipping log job)",
   "url": "https://kolaboro.com/data/roadmap-sync.json"
  },
  {
   "id": "page-weight",
   "title": "Page weight",
   "status": "ok",
   "age_hours": 1.92,
   "target_hours": 48,
   "data_as_of": "2026-11-05T07:24:07.000Z",
   "stamp": null,
   "stamp_source": "last commit",
   "schedule": "daily 06:41 UTC",
   "url": "https://kolaboro.com/data/page-weight.json"
  },
  {
   "id": "visual-tests",
   "title": "Visual regression tests",
   "status": "ok",
   "age_hours": 1.92,
   "target_hours": 48,
   "data_as_of": "2026-11-05T07:24:07.000Z",
   "stamp": null,
   "stamp_source": "last commit",
   "schedule": "daily 06:41 UTC",
   "url": "https://kolaboro.com/data/visual-tests.json"
  },
  {
   "id": "undescribed-findings-by-project-json",
   "title": "findings-by-project.json",
   "status": "no_target",
   "age_hours": 1.97,
   "target_hours": null,
   "data_as_of": "2026-11-05T07:21:26.000Z",
   "stamp": null,
   "stamp_source": "last commit",
   "schedule": "unknown",
   "url": "https://kolaboro.com/data/findings-by-project.json"
  },
  {
   "id": "undescribed-live-findings-json",
   "title": "live-findings.json",
   "status": "no_target",
   "age_hours": 1.97,
   "target_hours": null,
   "data_as_of": "2026-11-05T07:21:26.000Z",
   "stamp": null,
   "stamp_source": "last commit",
   "schedule": "unknown",
   "url": "https://kolaboro.com/data/live-findings.json"
  }
 ],
 "licence": "CC BY 4.0 (credit: Kolaboro, kolaboro.com)"
}