{
 "schemaVersion": "1.0.0",
 "constitutionVersion": "1.0.0",
 "createdAt": "2026-08-12T00:00:00Z",
 "description": "Append-only Evidence Passport records. Old revisions are immutable; corrections create a new revision and preserve the previous permalink.",
 "entity": {
  "type": "project",
  "id": "london-tfl-open-data",
  "title": "TfL Open Data & Unified API",
  "canonicalUrl": "https://1001smartcities.org/projects/london-tfl-open-data/"
 },
 "currentRevisionId": "2026-09-27-baseline",
 "revisions": [
  {
   "id": "2026-09-27-baseline",
   "createdAt": "2026-09-27T09:51:00Z",
   "effectiveAt": "2026-09-27",
   "changeType": "baseline",
   "summary": "Created the first structured Evidence Passport with 11 claims and 3 source dossiers.",
   "preparedBy": {
    "type": "automation",
    "label": "AI-assisted evidence preparation",
    "humanApproved": false
   },
   "review": {
    "status": "unreviewed",
    "by": null,
    "date": null,
    "note": "Awaiting operator and domain-expert review; publication of this revision implies neither."
   },
   "changes": [
    {
     "operation": "add",
     "path": "/evidencePassport",
     "summary": "Added claim-level evidence mapping and source dossiers."
    },
    {
     "operation": "add",
     "path": "/revisionHistory",
     "summary": "Established a permanent, hash-addressed baseline revision."
    }
   ],
   "snapshotHash": "sha256:4f60c1b97f651ec229110077f7d9d5871e685ba28065b74adea7b427e5f9e347",
   "snapshot": {
    "asOf": "2026-09-27",
    "projectFingerprint": "sha256:3920837654d6aa331e03d9d56b38b3d3575404c585556b50e7e627447b69b24a",
    "assurance": {
     "status": "unreviewed",
     "scope": "evidence-passport-revision",
     "statement": "AI-assisted structural preparation. This revision has not been reviewed by a human or subject-matter expert.",
     "machineChecks": [
      "schema",
      "publication-diff-contract",
      "material-project-fingerprint",
      "claim-text-drift",
      "source-reference-resolution",
      "complete-source-dossier",
      "snapshot-hash"
     ]
    },
    "projectState": {
     "status": "live",
     "outcome": "succeeded",
     "evidenceGrade": "official",
     "timeline": {
      "started": 2010,
      "ended": null
     }
    },
    "governance": {
     "operator": "Transport for London (TfL)",
     "actorTypes": [
      "utility"
     ],
     "fundingModel": "public",
     "fundingDescription": null,
     "cost": null,
     "ownership": null,
     "decisionRights": null,
     "exitConditions": null
    },
    "claims": [
     {
      "id": "clm-fcc76892569b8022",
      "field": "snippet",
      "text": "Transport for London publishes its transport data free of charge for anyone to reuse",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "TfL's foreword to the report says it makes its data available for anyone to use, free of charge, under a version of the Open Government Licence.",
      "caveat": "Today's use runs under TfL's own transport data terms and conditions and requires a registered API key.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-5b9e724a4d213086",
      "field": "snippet",
      "text": "more than 80 data feeds at the time of the 2017 review, around 75% of them through APIs",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "The report counts over 80 TfL data feeds and says around 75% of the data is available via APIs.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-ddb6c2778371cb7c",
      "field": "snippet",
      "text": "now served through its Unified API",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-88b061df925431ca",
       "src-b624f44d15bcf25f"
      ],
      "supportNote": "TfL's API portal and the government API catalogue both list the Unified API at api.tfl.gov.uk as the channel for TfL's open data.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-9a31ebe3ac1c8be2",
      "field": "snippet",
      "text": "covering the Tube, buses, roads and cycle hire",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "The report's breakdown of TfL datafeeds lists Underground, Bus, Roads and Cycle Hire data among the modes.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-d3dc130d29de0e65",
      "field": "snippet",
      "text": "A July 2017 Deloitte study commissioned by TfL",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "The report is dated July 2017 and TfL's foreword says it asked Deloitte to undertake the review.",
      "caveat": "TfL commissioned the study; its figures are not an independent evaluation.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-792312a4f7e283dd",
      "field": "snippet",
      "text": "valued the open-data policy at up to £130m a year in economic benefits and time savings",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "The appendix gives an overall estimated range of £90m to £130m a year, most of it passenger time savings.",
      "caveat": "An upper-bound estimate; the lower end of the same range is £90m a year.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-3066af5292e9503a",
      "field": "snippet",
      "text": "over 13,000 registered developers",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "The report counts over 13,000 registered developers in 2017.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-430bc3bdfb12f05f",
      "field": "snippet",
      "text": "more than 600 apps used by 42% of Londoners",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "TfL's foreword states over 600 apps are powered by its data, used by 42 per cent of Londoners.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-9518e99211302148",
      "field": "impact",
      "text": "against a TfL cost of about £1m/year to publish the data",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "The report estimates TfL's cost of publishing open data at around £1m a year.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-d9b3c404200fe4d7",
      "field": "impact",
      "text": "roughly 500 direct jobs plus 230 in the supply chain",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "The report estimates around 500 directly supported jobs and a further 230 indirect jobs.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-5034d1cfe97287d7",
      "field": "lesson",
      "text": "let a third-party developer ecosystem deliver journey tools at a fraction of the cost of doing it in-house",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c1b3d956614ccd38"
      ],
      "supportNote": "The report argues that with over 13,000 registered developers the market builds the apps, saving TfL from building them itself, against a publishing cost of about £1m a year.",
      "caveat": null,
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     }
    ],
    "sources": [
     {
      "id": "src-c1b3d956614ccd38",
      "title": "Deloitte / TfL report (authority)",
      "url": "https://content.tfl.gov.uk/deloitte-report-tfl-open-data.pdf",
      "publisher": {
       "name": null,
       "domain": "content.tfl.gov.uk",
       "classification": "not-classified"
      },
      "sourceType": "pdf",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-fcc76892569b8022",
       "clm-5b9e724a4d213086",
       "clm-9a31ebe3ac1c8be2",
       "clm-d3dc130d29de0e65",
       "clm-792312a4f7e283dd",
       "clm-3066af5292e9503a",
       "clm-430bc3bdfb12f05f",
       "clm-9518e99211302148",
       "clm-d9b3c404200fe4d7",
       "clm-5034d1cfe97287d7"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-09-27",
       "dossierCreatedAt": "2026-09-27",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "'Assessing the value of TfL's open data and digital partnerships', July 2017 — source of the figures.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-b624f44d15bcf25f",
      "title": "UK Government API Catalogue (official)",
      "url": "https://www.api.gov.uk/tfl/transport-for-london-unified-api/",
      "publisher": {
       "name": null,
       "domain": "api.gov.uk",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-ddb6c2778371cb7c"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-09-27",
       "dossierCreatedAt": "2026-09-27",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "Central-government API catalogue listing of TfL's Unified API, its endpoint and documentation.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-88b061df925431ca",
      "title": "Transport for London — API portal (developer registration)",
      "url": "https://api-portal.tfl.gov.uk/",
      "publisher": {
       "name": null,
       "domain": "api-portal.tfl.gov.uk",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-ddb6c2778371cb7c"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-09-27",
       "dossierCreatedAt": "2026-09-27",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "TfL's developer portal: register for an account, subscribe to the 500-requests data plan and use an app_key; data is released for reuse under TfL's transport data terms and conditions.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     }
    ],
    "coverage": {
     "claimsTotal": 11,
     "claimsMapped": 11,
     "sourcesTotal": 3,
     "sourcesUsedByClaims": 3,
     "sourcesWithPublicationDate": 0,
     "sourcesWithArchive": 0,
     "sourcesWithExactLocator": 0,
     "sourcesWithContentHash": 0
    },
    "limits": [
     "Publisher names and source languages have not yet been classified; domains are recorded without guessing.",
     "Existing source notes are descriptive locators, not page- or paragraph-exact citations.",
     "A missing archive, publication date or content hash is shown as null rather than inferred.",
     "The project-level evidence grade ranks the strongest source in the entry; it is not a truth score for every claim."
    ]
   }
  }
 ]
}
