Nov 1DATAAll 646 projects re-verified: 6,419 developer claims tested against registers, courts and pressNov 1DATAMalaysia TEDUH and Philippines DHSUD licence checks: expired licences and approved delays foundNov 1DATAThailand ONEP register: 2 condos found selling before environmental approvalNov 1DATAMexico PROFECO contract register checks: one sales registration belonged to a laundryNov 1DATAAbu Dhabi ADREC inspections and RAK RERA permit list added: % built straight from the regulatorNov 1SHIPPEDNew stage filter: completed but still sellingNov 1SHIPPEDPublic database page: verification levels, disclosure distribution, every marketNov 1DATA+212 projects in one day, round 3: USA, Caribbean, Gulf, Africa, Japan, AustraliaNov 1SHIPPEDStage on every case: off-plan or under constructionOct 31SHIPPEDVerification level per check on every case card: registry, independent, developer, contradicted
Nov 1DATAAll 646 projects re-verified: 6,419 developer claims tested against registers, courts and pressNov 1DATAMalaysia TEDUH and Philippines DHSUD licence checks: expired licences and approved delays foundNov 1DATAThailand ONEP register: 2 condos found selling before environmental approvalNov 1DATAMexico PROFECO contract register checks: one sales registration belonged to a laundryNov 1DATAAbu Dhabi ADREC inspections and RAK RERA permit list added: % built straight from the regulatorNov 1SHIPPEDNew stage filter: completed but still sellingNov 1SHIPPEDPublic database page: verification levels, disclosure distribution, every marketNov 1DATA+212 projects in one day, round 3: USA, Caribbean, Gulf, Africa, Japan, AustraliaNov 1SHIPPEDStage on every case: off-plan or under constructionOct 31SHIPPEDVerification level per check on every case card: registry, independent, developer, contradicted
Every file we publish under /data/, measured by a job every day: licence, how often it changes, when it last changed, size, rows, SHA-256, its data contract and a download link. Projects are anonymous in every file.
Green: younger than its target. Late: older than its target. Grey: written by hand, on demand or after events, so there is no target.
Data about projects and markets (31)
Tracked off-plan projects (anonymous)
on time
Every off-plan project Kolaboro tracks, one record per anonymous project id: market, country, stage, price band, promised handover year, the six public checks (permit, deposit protection, progress, plans, track record, no guaranteed returns), how far each is confirmed, claims tested, flags and the change history. Advertised claims, not verified facts. The same data is served filtered by /api/open/projects.
Licence
CC BY 4.0 (credit: Kolaboro, kolaboro.com)
Updates
weekly research run (Monday 06:17 UTC) and every time the research files change
Per market: how many tracked projects, title and lease terms advertised, guaranteed-return language, permit claims, permit numbers and plans published, and advertised USD prices. Aggregates only.
Licence
CC BY 4.0 (credit: Kolaboro, kolaboro.com)
Updates
weekly research run (Monday 06:17 UTC) and every time the research files change
The same aggregate as world-claims for the Bali market alone: title and lease terms, guaranteed-return language, permit claims and numbers, plans and advertised prices.
Licence
CC BY 4.0 (credit: Kolaboro, kolaboro.com)
Updates
weekly research run (Monday 06:17 UTC) and every time the research files change
One row per tracked project, built from bali-cases.json: checks, confirmation levels, claims, delay, satellite status and page fingerprint, in Apache Parquet for DuckDB, pandas or Spark. Columns and row count are listed in kolaboro.parquet.json.
Licence
CC BY 4.0 (credit: Kolaboro, kolaboro.com)
Updates
daily 07:43 UTC and after each research run; rewritten only when the source changed
Last updated
2026-11-04T10:24:41Z
Age
21.0 h of 2 days target. Built from the bali-cases.json served now
One row per market with the same method as /api/open/markets: projects, average public and confirmed checks, permit and deposit-protection shares, flags and the transparency index.
Licence
CC BY 4.0 (credit: Kolaboro, kolaboro.com)
Updates
daily 07:43 UTC and after each research run; rewritten only when the source changed
Last updated
2026-11-04T10:24:41Z
Age
21.0 h of 2 days target. Built from the bali-cases.json served now
Columns, row counts, sizes and SHA-256 of the two Parquet files and the SHA-256 of the bali-cases.json they were built from. A signed copy is served by /api/x/e/parquet-manifest.
Licence
CC BY 4.0 (credit: Kolaboro, kolaboro.com)
Updates
daily 07:43 UTC and after each research run; rewritten only when the source changed
Last updated
2026-11-04T10:24:41Z
Age
21.0 h of 2 days target. Built from the bali-cases.json served now
Every dated promise a developer made about a tracked project (handover, construction start, structure, other milestones, permits, rental programme), read from the research records, with its status today. Per project and per market.
Day by day, which advertised values changed on each tracked developer page (handover date, prices, units and other fields), from fingerprinted page text. No URLs or names.
For each project whose page is on its own website: domain registration date (RDAP) and earliest TLS certificate (Certificate Transparency), at month precision. No domains are published.
For each project: will it hand over within 6 months of the first date on record? Estimated from closed comparable projects with a 95% interval, plus validation and the bias of the sample.
Licence
CC BY 4.0 (credit: Kolaboro, kolaboro.com)
Updates
daily 16:37 UTC, monthly snapshot on the 1st, and after each research run
Chained index of advertised asking prices ("from" prices on developer and listing pages) per market, with daily snapshots, rules and caveats. Not transaction prices.
Advertised starting prices compared with officially registered sales where a government publishes them: counts, quartiles and medians only, converted to USD at a cited rate. Lists the markets not covered.
Which tracked projects look unusual on public warning signs compared with all others, and why, with a model card. It ranks; it does not predict. No project has a confirmed outcome to train on.
Every official register linked on /registers/: whether our checker could read it (time, HTTP status, size and SHA-256 of the bytes received), and per project the register result, with a hash-chained lookup archive.
Anonymised company and director graph for tracked projects whose developer is a UK company found on Companies House by exact name. Counts and anonymised nodes only.
For each tracked project: whether the companies named as developer have a Legal Entity Identifier, their parents and countries, as counts and booleans only. Source GLEIF (CC0).
Daily check of UK and Spanish developer companies against insolvency notices (The Gazette, BORME). Each hit is reduced to date, source and type of notice; no company names.
Insolvency acts published in BORME Section One, keyed by a truncated SHA-256 of the normalised company name so the file is not a readable list of companies; anyone can test a name against it. Source BOE, reuse with attribution.
Elevation, flood depth, earthquakes, tsunamis, volcanoes and coastline distance for tracked projects with coordinates and watched areas, rounded so they cannot pinpoint a plot. Sources listed in the file.
Sentinel-2 vegetation and clearing per season and Sentinel-1 radar backscatter change for every watched site and area (boxes of about 1 km). Contains modified Copernicus Sentinel data.
Per watched site and month from January 2023: cloud-masked Sentinel-2 median, built_pct (built-up or bare ground, which look alike at 10 m) and new built-up since the baseline month. Contains modified Copernicus Sentinel data.
NASA Black Marble night-time light at projects that should be finished, compared with the surrounding ring, monthly for 36 months. Light is a proxy, not proof of occupancy.
Where the pages of tracked developer websites visibly changed, as page geometry only. No screenshots are published because they would identify anonymous projects.
Pairs of images that appear on the pages of two different tracked projects on different domains (CLIP image embeddings, cosine 0.85 or more, confirmed by feature matching), with what was excluded and why.
For every public project, the 5 most similar other public projects: ids and rounded scores only (text similarity from an open sentence-embedding model run on the GitHub runner, plus structured similarity). Input is only the public bali-cases.json.
Results of the desk review benchmark on fixed fictional cases, one file per model (Haiku, Sonnet), each case answer signed with the Kolaboro Ed25519 key.
Licence
CC BY 4.0 (credit: Kolaboro, kolaboro.com)
Updates
on demand
Last updated
2026-11-03T22:59:11Z
Age
32.4 h
Size
96.9 KB
Rows
36 cases
SHA-256a94237d9894f0ec5...cb95b33f
2 files under https://kolaboro.com/data/benchmark/. SHA-256 is over the sorted list of file hashes.
Weekly fault-injection drills of the desk review (for example the primary AI reader down): what was forced, what was expected, what happened, and what is not covered.
Deterministic bundle of the site worker for each worker source tree that went live, built twice in clean folders; reproduced says whether both builds were identical.
Licence
CC BY 4.0 (credit: Kolaboro, kolaboro.com)
Updates
checked every 30 minutes, written when the worker changes
Ships (commits by people, or by Claude working for one) and data updates per UTC day from the git history of the live branch, streaks, engineering metrics and day summaries written by an AI model and checked in code.
Roadmap items that link to the live page delivering them. An item counts as shipped only when the page answers HTTP 200, its canonical link is that page and its HTML contains the marker text.
Bytes transferred for one cold load of key pages (compressed size plus headers, measured in Chrome), first-party bytes split by resource type, against page-weight budgets.
Natural Earth 1:10m land outline (public domain, via world-atlas 2.0.2) cut into 10 degree tiles (published as one file per 10 degree column of longitude), quantised and delta-encoded, used by the hazards check only when no OpenStreetMap server answers. Every tile exists; open-ocean tiles are empty.
Licence
Public domain (Natural Earth)
Updates
static, built once
Last updated
last commit 2026-11-05T07:18:43Z
Age
5 min
Size
0 bytes
Rows
36 tiles
SHA-25631364073345c9ad1...632381ee
36 files under https://kolaboro.com/data/coast/. SHA-256 is over the sorted list of file hashes.
Global Mangrove Watch v3 (2020) reduced to cells of about 220 m that contain any mangrove pixel, in binary 45 degree blocks (format GMW1, see the file header description in the protected-land endpoint). Source CC BY 4.0, Bunting et al. 2022.
Licence
CC BY 4.0 (Global Mangrove Watch v3, Bunting et al. 2022; credit Kolaboro for the reduction)
Updates
static, rebuilt once per Global Mangrove Watch release
Last updated
last commit 2026-11-04T08:57:27Z
Age
22.4 h
Size
5.3 MB
Rows
16 tiles
SHA-256f8bbf8d374c2f577...fd04274a
16 files under https://kolaboro.com/data/mangroves/. SHA-256 is over the sorted list of file hashes.
A data contract is a promise about the shape of a file: which keys it has and what type each value is. Ours are JSON Schema 2020-12, one per dataset, in one schema file (each also served alone at /api/x/data/schema/<id>.json). Every day the job validates the live files and the live API against them. A failure turns the job red on GitHub but never stops another workflow or the site.
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.
Monitors can poll /api/x/data/freshness: it re-reads each file's own timestamp from the first 64 KB of the live file at request time (cached 5 minutes), so a late file shows up within minutes, not at the next catalog run. It answers HTTP 200 with "late": [...]; add ?strict=1 to get HTTP 503 when any dataset is late.
/data/catalog.jsonld: DCAT-AP catalog (JSON-LD) with one dcat:Dataset per dataset, distributions with byte size and SHA-256 (spdx:checksum), licence and update frequency (EU frequency vocabulary).
/data/catalog.json: the same catalog in plain JSON, with freshness and contract results.
/llms-full.txt: a plain-text guide to all of this for AI assistants.
This page carries schema.org DataCatalog and Dataset markup for dataset search engines.
Method and limits
Bytes and SHA-256 are of the exact bytes https://kolaboro.com/data/ served to the job. A tile set has one SHA-256 over the sorted "sha256 path" lines of its files.
Each JSON file is validated against its JSON Schema (2020-12) in /data/schemas/kolaboro-data.schema.json. The contracts were written from the files as published on 5 Nov 2026: every top-level key is required with its type, items of top-level lists and maps must keep the keys every item had, numbers are "number", deeper optional values may be null. Parquet files are checked against the columns and row count in kolaboro.parquet.json, tiles and screenshots against their binary headers. API answers are validated against the response schemas in /docs/api/openapi.json, which were inferred from live responses.
Limits: a contract checks shape and types, not whether the values are right. The contracts started from the files as they were on 5 Nov 2026, so they describe what was published then and can be too strict when a file legitimately grows a new optional shape; such a failure is shown here, not hidden. Row counts count the main list or map of each file (the unit is named). Descriptions are written by hand from each file's own method text; the numbers are measured.
Licence: CC BY 4.0 (credit: Kolaboro, kolaboro.com) unless a dataset says otherwise; third-party sources keep their own terms, named in each file.