{
 "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": "paris-bike-telemetry",
  "title": "Plan Vélo Digital Infrastructure Mesh",
  "canonicalUrl": "https://1001smartcities.org/projects/paris-bike-telemetry/"
 },
 "currentRevisionId": "2026-08-22-evidence-baseline",
 "revisions": [
  {
   "id": "2026-08-22-evidence-baseline",
   "createdAt": "2026-08-22T18:05:00Z",
   "effectiveAt": "2026-07-17",
   "changeType": "baseline",
   "summary": "Created the first structured Evidence Passport with 6 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:11765826ad9c55bb503e1de7454f968d0c960f523406d8109d53c9f16f2ea043",
   "snapshot": {
    "asOf": "2026-07-17",
    "projectFingerprint": "sha256:0bd74ee3d4405da37cc16c1b22fb336472cccaaa4f7c46e15953fdfe7e914fd0",
    "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": "ongoing",
     "evidenceGrade": "official",
     "timeline": {
      "started": 2021,
      "ended": null
     }
    },
    "governance": {
     "operator": "Ville de Paris",
     "actorTypes": [
      "city-government"
     ],
     "fundingModel": null,
     "fundingDescription": null,
     "cost": null,
     "ownership": null,
     "decisionRights": null,
     "exitConditions": null
    },
    "claims": [
     {
      "id": "clm-4ac4744f7c22c042",
      "field": "snippet",
      "text": "permanent Eco-Compteur sensors",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-4d5110ad6f75ff94"
      ],
      "supportNote": "The city's counter-location dataset states Paris has been deploying permanent bike counters for several years, loaded daily via partner Eco Compteur's API: 'La Ville de Paris déploie depuis plusieurs années des compteurs vélo permanents' and 'Ce jeu de données est chargé quotidiennement sur l'API de notre partenaire Eco Compteur.'",
      "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-44f228a567fa310c",
      "field": "snippet",
      "text": "on Paris cycle paths and bus lanes",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-4d5110ad6f75ff94"
      ],
      "supportNote": "The counter-location dataset explicitly states counters sit on cycle paths and on some bus lanes open to bikes: 'Les compteurs sont situés sur des pistes cyclables et dans certains couloirs bus ouverts aux vélos.' This confirms the bus-lane placement the snippet claims — it is not a padded or invented detail.",
      "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-470d927f898a46ae",
      "field": "snippet",
      "text": "feeds hourly bike counts into the open Paris Data portal",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-1b2ef36e5c6e6a72"
      ],
      "supportNote": "The counts dataset is explicitly described as hourly per-counter bike counts, published on the city's own open data portal: 'Jeu de données des comptages horaires de vélos par compteur.'",
      "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-8aeac2a7ee4242d7",
      "field": "snippet",
      "text": "published under the Open Database Licence on a rolling 13-month window",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-1b2ef36e5c6e6a72"
      ],
      "supportNote": "The dataset description states the data covers a rolling 13-month window, updated through the previous day: 'sur 13 mois glissants (J-13 mois), mis à jour à J-1.'",
      "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-635c867e52c10071",
      "field": "snippet",
      "text": "refreshed daily via the operator's API",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-1b2ef36e5c6e6a72"
      ],
      "supportNote": "The dataset is loaded daily from technology partner Eco Compteur's API: 'Ce jeu de données est chargé quotidiennement sur l'API de notre partenaire Eco Compteur.' Paris Data itself also exposes its own public query API (used to confirm this dataset's metadata for this review), which is what lets outside users pull the data programmatically.",
      "caveat": "The mechanism the source actually describes is the city loading data FROM the technology partner Eco-Compteur's API into its portal, not the city operator running its own ingestion API. 'The operator's API' more precisely matches Paris Data's separate public query interface, which does exist but is not the pipeline this note describes.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-fb696a42a543640c",
      "field": "snippet",
      "text": "Anyone can track how cycling has grown",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-1b2ef36e5c6e6a72",
       "src-5000b5b39e961c0a"
      ],
      "supportNote": "The city's counting dataset is public and machine-readable (confirmed by querying its own API for this review), so anyone can in principle derive a usage trend from it. The only actual growth figure tied to this counter network comes from the technology partner's own case study, which reports a rise in cycle-path traffic: 'la fréquentation des pistes cyclables progresse de 34% entre 2020 et 2024.' Neither Paris Data dataset description itself states or analyses a growth trend — the 'has grown' fact rests on the vendor case study alone.",
      "caveat": "The growth figure is not published by the city; it comes from Eco-Compteur's own promotional case study of its work for Paris, so it should be read as vendor-reported, not independently verified. That page also carries a 'Publié le 10 avr. 2020' dateline while citing statistics from 2024 and June 2025, indicating it has been revised repeatedly without an updated date.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     }
    ],
    "sources": [
     {
      "id": "src-1b2ef36e5c6e6a72",
      "title": "Paris Data — Comptage vélo, données compteurs (authority)",
      "url": "https://opendata.paris.fr/explore/dataset/comptage-velo-donnees-compteurs/",
      "publisher": {
       "name": null,
       "domain": "opendata.paris.fr",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-470d927f898a46ae",
       "clm-8aeac2a7ee4242d7",
       "clm-635c867e52c10071",
       "clm-fb696a42a543640c"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-07-17",
       "dossierCreatedAt": "2026-08-22",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "Official open dataset: hourly counts over a rolling 13-month window, updated at J-1, loaded daily from partner Eco-Compteur's API.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-4d5110ad6f75ff94",
      "title": "Paris Data — Comptage vélo, compteurs (authority)",
      "url": "https://opendata.paris.fr/explore/dataset/comptage-velo-compteurs/",
      "publisher": {
       "name": null,
       "domain": "opendata.paris.fr",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-4ac4744f7c22c042",
       "clm-44f228a567fa310c"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-07-17",
       "dossierCreatedAt": "2026-08-22",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "Official dataset listing and locating the permanent bike counters on cycle paths and bus lanes.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-5000b5b39e961c0a",
      "title": "Eco-Compteur (technology partner)",
      "url": "https://www.eco-compteur.com/actualites/cas-detude-paris",
      "publisher": {
       "name": null,
       "domain": "eco-compteur.com",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-fb696a42a543640c"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-07-17",
       "dossierCreatedAt": "2026-08-22",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "Partner case study on Paris bike counting; cites +34% cycle-path use 2020-2024 under Plan Vélo 2021-2026.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     }
    ],
    "coverage": {
     "claimsTotal": 6,
     "claimsMapped": 6,
     "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."
    ]
   }
  }
 ]
}
