{
 "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": "hanoi-air-quality-monitoring",
  "title": "Air Quality Monitoring Network",
  "canonicalUrl": "https://1001smartcities.org/projects/hanoi-air-quality-monitoring/"
 },
 "currentRevisionId": "2026-08-20-source-dates-r2",
 "revisions": [
  {
   "id": "2026-08-15-baseline",
   "createdAt": "2026-08-15T18:07:00Z",
   "effectiveAt": "2026-08-15",
   "changeType": "baseline",
   "summary": "Created the first structured Evidence Passport with 9 claims and 5 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:0c2c6757ce70796cfe87fe293b68e8008df3d42c5508198f7fbf76759098af36",
   "snapshot": {
    "asOf": "2026-08-15",
    "projectFingerprint": "sha256:2a6390d4242752ddb6d29dac7fe1c524cc5af820112b99b9cb15bffc23875925",
    "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": "media",
     "timeline": {
      "started": 2016,
      "ended": null
     }
    },
    "governance": {
     "operator": "Hanoi People's Committee (city environment authority) for the city stations; national ministry, the U.S. Embassy and private networks run the rest",
     "actorTypes": [
      "city-government",
      "national-government"
     ],
     "fundingModel": "public",
     "fundingDescription": null,
     "cost": null,
     "ownership": null,
     "decisionRights": null,
     "exitConditions": null
    },
    "claims": [
     {
      "id": "clm-e30ddd5437683911",
      "field": "snippet",
      "text": "a network the city began building in 2016 with two reference-grade stations and eight sensor units",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The analysis dates the city's own investment to 2016: ten stations, of which two fixed reference-grade and eight sensor stations.",
      "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-860d8bb9ac5ef582",
      "field": "snippet",
      "text": "a 2024 stocktake counted 61 monitoring stations across state and private operators — 35 of them the city's",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The stocktake counts 61 stations in 2024: 37 state-managed (35 under the Hanoi People's Committee, two under the national ministry and the U.S. Embassy) plus 22 private and international.",
      "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-db0853020eb11a8a",
      "field": "snippet",
      "text": "only six are reference-grade fixed stations",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "Only six fixed stations meet reference-grade criteria; the rest are low-cost sensors with lower reliability.",
      "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-4b5b146cb61e78b5",
      "field": "snippet",
      "text": "only 18 released historical data",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "Of the 61 stations, only 18 publicly released historical data in 2024.",
      "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-ba728762ab2f25c4",
      "field": "snippet",
      "text": "a station lost on average 50 days of data a year",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The analysis puts average data loss at 50 days per station per year, ranging from 12 to 128 days.",
      "caveat": "An average across the stations that publish at all; the range runs from 12 to 128 days.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-1dba31767c2886ae",
      "field": "snippet",
      "text": "During a 17-day pollution episode in October 2024 several stations went dark",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The analysis records a severe 17-day episode in October 2024 during which multiple stations went offline or withheld 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-21b883404447dbcb",
      "field": "snippet",
      "text": "the portal itself was unreachable because its domain registration had expired",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-84ed42c16642798c",
       "src-c99189602536fe7b"
      ],
      "supportNote": "Both reports document that moitruongthudo.vn went offline during the late-November 2025 smog because the domain registration had expired; it was later restored.",
      "caveat": "The portal was restored; the outage lasted through the morning of the pollution spike.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-a4203340865c4e12",
      "field": "snippet",
      "text": "the health ministry's advice to keep young children home on hazardous-air days is a recommendation, not a rule",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c517c7d1d012dd27"
      ],
      "supportNote": "The ministry recommends that kindergarten and primary pupils stay home when AQI stays hazardous (301–500) for three consecutive days — guidance to schools and parents, with no automatic mechanism attached.",
      "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-baedd99c6b7635b5",
      "field": "lesson",
      "text": "61-station inventory shrinks to 18 that release their data",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "Restates the stocktake's central finding: 61 stations counted, 18 publishing historical data.",
      "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-c99189602536fe7b",
      "title": "VnExpress — Hanoi's air quality data gap",
      "url": "https://vnexpress.net/khoang-trong-du-lieu-chat-luong-khong-khi-ha-noi-4988989.html",
      "publisher": {
       "name": null,
       "domain": "vnexpress.net",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-e30ddd5437683911",
       "clm-860d8bb9ac5ef582",
       "clm-db0853020eb11a8a",
       "clm-4b5b146cb61e78b5",
       "clm-ba728762ab2f25c4",
       "clm-1dba31767c2886ae",
       "clm-21b883404447dbcb",
       "clm-baedd99c6b7635b5"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-15",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The load-bearing analysis (December 2025): 61 stations counted in 2024 (35 city-run, 6 reference-grade), only 18 publishing historical data, average 50 days of data lost per station per year (range 12–128), the 17-day October 2024 episode, and the network's 2016 origins.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-84ed42c16642798c",
      "title": "VnExpress International — monitoring portal offline during smog",
      "url": "https://e.vnexpress.net/news/news/environment/hanoi-wakes-up-to-toxic-air-as-real-time-monitoring-portal-goes-offline-4987925.html",
      "publisher": {
       "name": null,
       "domain": "e.vnexpress.net",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-21b883404447dbcb"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-15",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "moitruongthudo.vn went offline during the late-November 2025 pollution spike because its domain registration had expired; AQI readings 197–282 that morning.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-5a73e4ea55b8c902",
      "title": "moitruongthudo.vn — Hanoi air quality portal",
      "url": "https://moitruongthudo.vn/",
      "publisher": {
       "name": null,
       "domain": "moitruongthudo.vn",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "background",
      "claimRefs": [],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-15",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The city's own real-time publication channel — the operator side of the entry; station list and live AQI per station.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-f30703261422a660",
      "title": "Tien Phong — why many Hanoi stations stopped working",
      "url": "https://tienphong.vn/vi-sao-nhieu-tram-quan-trac-o-ha-noi-ngung-hoat-dong-post1667595.tpo",
      "publisher": {
       "name": null,
       "domain": "tienphong.vn",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "background",
      "claimRefs": [],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-15",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "Coverage of station outages: sensors past replacement age, maintenance suspensions from late 2021 through 2022, named stations offline. Existence verified via search results; site not fetched directly in this pass.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-c517c7d1d012dd27",
      "title": "Việt Nam News — health ministry proposal on school closures",
      "url": "https://vietnamnews.vn/society/1690328/ministry-of-health-proposes-closing-schools-in-case-of-hazardous-air-quality.html",
      "publisher": {
       "name": null,
       "domain": "vietnamnews.vn",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-a4203340865c4e12"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-15",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The health ministry recommends kindergarten and primary pupils stay home when AQI stays hazardous (301–500) for three consecutive days — advice, with no automatic trigger attached.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     }
    ],
    "coverage": {
     "claimsTotal": 9,
     "claimsMapped": 9,
     "sourcesTotal": 5,
     "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."
    ]
   }
  },
  {
   "id": "2026-08-20-source-dates-b5",
   "createdAt": "2026-08-20T20:00:00Z",
   "effectiveAt": "2026-08-15",
   "changeType": "update",
   "summary": "Record the publication date of each source that states one; sources that publish no date are marked null.",
   "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": "replace",
     "path": "/snapshot/projectFingerprint",
     "summary": "Updated projectFingerprint to the current sourced project record."
    },
    {
     "operation": "replace",
     "path": "/snapshot/sources",
     "summary": "Updated sources to the current sourced project record."
    }
   ],
   "snapshotHash": "sha256:1744c57167f54a216c7185e24595e124a14a36a8672fae48fe462e7772fa6f4d",
   "snapshot": {
    "asOf": "2026-08-15",
    "projectFingerprint": "sha256:8e1222bf08c517c808d8c6782cf39a2d6514bc7b7f76b03fab55c5d0ed5a6c49",
    "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": "media",
     "timeline": {
      "started": 2016,
      "ended": null
     }
    },
    "governance": {
     "operator": "Hanoi People's Committee (city environment authority) for the city stations; national ministry, the U.S. Embassy and private networks run the rest",
     "actorTypes": [
      "city-government",
      "national-government"
     ],
     "fundingModel": "public",
     "fundingDescription": null,
     "cost": null,
     "ownership": null,
     "decisionRights": null,
     "exitConditions": null
    },
    "claims": [
     {
      "id": "clm-e30ddd5437683911",
      "field": "snippet",
      "text": "a network the city began building in 2016 with two reference-grade stations and eight sensor units",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The analysis dates the city's own investment to 2016: ten stations, of which two fixed reference-grade and eight sensor stations.",
      "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-860d8bb9ac5ef582",
      "field": "snippet",
      "text": "a 2024 stocktake counted 61 monitoring stations across state and private operators — 35 of them the city's",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The stocktake counts 61 stations in 2024: 37 state-managed (35 under the Hanoi People's Committee, two under the national ministry and the U.S. Embassy) plus 22 private and international.",
      "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-db0853020eb11a8a",
      "field": "snippet",
      "text": "only six are reference-grade fixed stations",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "Only six fixed stations meet reference-grade criteria; the rest are low-cost sensors with lower reliability.",
      "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-4b5b146cb61e78b5",
      "field": "snippet",
      "text": "only 18 released historical data",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "Of the 61 stations, only 18 publicly released historical data in 2024.",
      "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-ba728762ab2f25c4",
      "field": "snippet",
      "text": "a station lost on average 50 days of data a year",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The analysis puts average data loss at 50 days per station per year, ranging from 12 to 128 days.",
      "caveat": "An average across the stations that publish at all; the range runs from 12 to 128 days.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-1dba31767c2886ae",
      "field": "snippet",
      "text": "During a 17-day pollution episode in October 2024 several stations went dark",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The analysis records a severe 17-day episode in October 2024 during which multiple stations went offline or withheld 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-21b883404447dbcb",
      "field": "snippet",
      "text": "the portal itself was unreachable because its domain registration had expired",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-84ed42c16642798c",
       "src-c99189602536fe7b"
      ],
      "supportNote": "Both reports document that moitruongthudo.vn went offline during the late-November 2025 smog because the domain registration had expired; it was later restored.",
      "caveat": "The portal was restored; the outage lasted through the morning of the pollution spike.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-a4203340865c4e12",
      "field": "snippet",
      "text": "the health ministry's advice to keep young children home on hazardous-air days is a recommendation, not a rule",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c517c7d1d012dd27"
      ],
      "supportNote": "The ministry recommends that kindergarten and primary pupils stay home when AQI stays hazardous (301–500) for three consecutive days — guidance to schools and parents, with no automatic mechanism attached.",
      "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-baedd99c6b7635b5",
      "field": "lesson",
      "text": "61-station inventory shrinks to 18 that release their data",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "Restates the stocktake's central finding: 61 stations counted, 18 publishing historical data.",
      "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-c99189602536fe7b",
      "title": "VnExpress — Hanoi's air quality data gap",
      "url": "https://vnexpress.net/khoang-trong-du-lieu-chat-luong-khong-khi-ha-noi-4988989.html",
      "publisher": {
       "name": null,
       "domain": "vnexpress.net",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-e30ddd5437683911",
       "clm-860d8bb9ac5ef582",
       "clm-db0853020eb11a8a",
       "clm-4b5b146cb61e78b5",
       "clm-ba728762ab2f25c4",
       "clm-1dba31767c2886ae",
       "clm-21b883404447dbcb",
       "clm-baedd99c6b7635b5"
      ],
      "temporal": {
       "publishedAt": "2025-12-04",
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-20",
       "retrievedAt": null,
       "status": "publication-and-record-dates-recorded"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The load-bearing analysis (December 2025): 61 stations counted in 2024 (35 city-run, 6 reference-grade), only 18 publishing historical data, average 50 days of data lost per station per year (range 12–128), the 17-day October 2024 episode, and the network's 2016 origins.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-84ed42c16642798c",
      "title": "VnExpress International — monitoring portal offline during smog",
      "url": "https://e.vnexpress.net/news/news/environment/hanoi-wakes-up-to-toxic-air-as-real-time-monitoring-portal-goes-offline-4987925.html",
      "publisher": {
       "name": null,
       "domain": "e.vnexpress.net",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-21b883404447dbcb"
      ],
      "temporal": {
       "publishedAt": "2025-11-30",
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-20",
       "retrievedAt": null,
       "status": "publication-and-record-dates-recorded"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "moitruongthudo.vn went offline during the late-November 2025 pollution spike because its domain registration had expired; AQI readings 197–282 that morning.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-5a73e4ea55b8c902",
      "title": "moitruongthudo.vn — Hanoi air quality portal",
      "url": "https://moitruongthudo.vn/",
      "publisher": {
       "name": null,
       "domain": "moitruongthudo.vn",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "background",
      "claimRefs": [],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-20",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The city's own real-time publication channel — the operator side of the entry; station list and live AQI per station.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-f30703261422a660",
      "title": "Tien Phong — why many Hanoi stations stopped working",
      "url": "https://tienphong.vn/vi-sao-nhieu-tram-quan-trac-o-ha-noi-ngung-hoat-dong-post1667595.tpo",
      "publisher": {
       "name": null,
       "domain": "tienphong.vn",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "background",
      "claimRefs": [],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-20",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "Coverage of station outages: sensors past replacement age, maintenance suspensions from late 2021 through 2022, named stations offline. Existence verified via search results; site not fetched directly in this pass.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-c517c7d1d012dd27",
      "title": "Việt Nam News — health ministry proposal on school closures",
      "url": "https://vietnamnews.vn/society/1690328/ministry-of-health-proposes-closing-schools-in-case-of-hazardous-air-quality.html",
      "publisher": {
       "name": null,
       "domain": "vietnamnews.vn",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-a4203340865c4e12"
      ],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-20",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The health ministry recommends kindergarten and primary pupils stay home when AQI stays hazardous (301–500) for three consecutive days — advice, with no automatic trigger attached.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     }
    ],
    "coverage": {
     "claimsTotal": 9,
     "claimsMapped": 9,
     "sourcesTotal": 5,
     "sourcesUsedByClaims": 3,
     "sourcesWithPublicationDate": 2,
     "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."
    ]
   }
  },
  {
   "id": "2026-08-20-source-dates-r2",
   "createdAt": "2026-08-21T09:00:00Z",
   "effectiveAt": "2026-08-15",
   "changeType": "update",
   "summary": "Record the publication date of each source that states one; sources that publish no date are marked null.",
   "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": "replace",
     "path": "/snapshot/projectFingerprint",
     "summary": "Updated projectFingerprint to the current sourced project record."
    },
    {
     "operation": "replace",
     "path": "/snapshot/sources",
     "summary": "Updated sources to the current sourced project record."
    }
   ],
   "snapshotHash": "sha256:1875b87d3b04c6b05bbe3fc10543f0da31d4d12ae77daadc8b401d5c20644fa9",
   "snapshot": {
    "asOf": "2026-08-15",
    "projectFingerprint": "sha256:b9c0e7359b164ffde59c098354fa72d6137126ab03f1a34078e154bc2f9e1539",
    "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": "media",
     "timeline": {
      "started": 2016,
      "ended": null
     }
    },
    "governance": {
     "operator": "Hanoi People's Committee (city environment authority) for the city stations; national ministry, the U.S. Embassy and private networks run the rest",
     "actorTypes": [
      "city-government",
      "national-government"
     ],
     "fundingModel": "public",
     "fundingDescription": null,
     "cost": null,
     "ownership": null,
     "decisionRights": null,
     "exitConditions": null
    },
    "claims": [
     {
      "id": "clm-e30ddd5437683911",
      "field": "snippet",
      "text": "a network the city began building in 2016 with two reference-grade stations and eight sensor units",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The analysis dates the city's own investment to 2016: ten stations, of which two fixed reference-grade and eight sensor stations.",
      "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-860d8bb9ac5ef582",
      "field": "snippet",
      "text": "a 2024 stocktake counted 61 monitoring stations across state and private operators — 35 of them the city's",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The stocktake counts 61 stations in 2024: 37 state-managed (35 under the Hanoi People's Committee, two under the national ministry and the U.S. Embassy) plus 22 private and international.",
      "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-db0853020eb11a8a",
      "field": "snippet",
      "text": "only six are reference-grade fixed stations",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "Only six fixed stations meet reference-grade criteria; the rest are low-cost sensors with lower reliability.",
      "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-4b5b146cb61e78b5",
      "field": "snippet",
      "text": "only 18 released historical data",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "Of the 61 stations, only 18 publicly released historical data in 2024.",
      "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-ba728762ab2f25c4",
      "field": "snippet",
      "text": "a station lost on average 50 days of data a year",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The analysis puts average data loss at 50 days per station per year, ranging from 12 to 128 days.",
      "caveat": "An average across the stations that publish at all; the range runs from 12 to 128 days.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-1dba31767c2886ae",
      "field": "snippet",
      "text": "During a 17-day pollution episode in October 2024 several stations went dark",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "The analysis records a severe 17-day episode in October 2024 during which multiple stations went offline or withheld 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-21b883404447dbcb",
      "field": "snippet",
      "text": "the portal itself was unreachable because its domain registration had expired",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-84ed42c16642798c",
       "src-c99189602536fe7b"
      ],
      "supportNote": "Both reports document that moitruongthudo.vn went offline during the late-November 2025 smog because the domain registration had expired; it was later restored.",
      "caveat": "The portal was restored; the outage lasted through the morning of the pollution spike.",
      "interpretation": {
       "added": false,
       "interpolation": false,
       "note": "The passport copies the published claim and its recorded source mapping without adding a conclusion."
      }
     },
     {
      "id": "clm-a4203340865c4e12",
      "field": "snippet",
      "text": "the health ministry's advice to keep young children home on hazardous-air days is a recommendation, not a rule",
      "statementKind": "descriptive",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c517c7d1d012dd27"
      ],
      "supportNote": "The ministry recommends that kindergarten and primary pupils stay home when AQI stays hazardous (301–500) for three consecutive days — guidance to schools and parents, with no automatic mechanism attached.",
      "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-baedd99c6b7635b5",
      "field": "lesson",
      "text": "61-station inventory shrinks to 18 that release their data",
      "statementKind": "quantitative",
      "textMode": "verbatim-from-project-record",
      "mappingStatus": "mapped",
      "sourceRefs": [
       "src-c99189602536fe7b"
      ],
      "supportNote": "Restates the stocktake's central finding: 61 stations counted, 18 publishing historical data.",
      "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-c99189602536fe7b",
      "title": "VnExpress — Hanoi's air quality data gap",
      "url": "https://vnexpress.net/khoang-trong-du-lieu-chat-luong-khong-khi-ha-noi-4988989.html",
      "publisher": {
       "name": null,
       "domain": "vnexpress.net",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-e30ddd5437683911",
       "clm-860d8bb9ac5ef582",
       "clm-db0853020eb11a8a",
       "clm-4b5b146cb61e78b5",
       "clm-ba728762ab2f25c4",
       "clm-1dba31767c2886ae",
       "clm-21b883404447dbcb",
       "clm-baedd99c6b7635b5"
      ],
      "temporal": {
       "publishedAt": "2025-12-04",
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-21",
       "retrievedAt": null,
       "status": "publication-and-record-dates-recorded"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The load-bearing analysis (December 2025): 61 stations counted in 2024 (35 city-run, 6 reference-grade), only 18 publishing historical data, average 50 days of data lost per station per year (range 12–128), the 17-day October 2024 episode, and the network's 2016 origins.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-84ed42c16642798c",
      "title": "VnExpress International — monitoring portal offline during smog",
      "url": "https://e.vnexpress.net/news/news/environment/hanoi-wakes-up-to-toxic-air-as-real-time-monitoring-portal-goes-offline-4987925.html",
      "publisher": {
       "name": null,
       "domain": "e.vnexpress.net",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-21b883404447dbcb"
      ],
      "temporal": {
       "publishedAt": "2025-11-30",
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-21",
       "retrievedAt": null,
       "status": "publication-and-record-dates-recorded"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "moitruongthudo.vn went offline during the late-November 2025 pollution spike because its domain registration had expired; AQI readings 197–282 that morning.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-5a73e4ea55b8c902",
      "title": "moitruongthudo.vn — Hanoi air quality portal",
      "url": "https://moitruongthudo.vn/",
      "publisher": {
       "name": null,
       "domain": "moitruongthudo.vn",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "background",
      "claimRefs": [],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-21",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The city's own real-time publication channel — the operator side of the entry; station list and live AQI per station.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-f30703261422a660",
      "title": "Tien Phong — why many Hanoi stations stopped working",
      "url": "https://tienphong.vn/vi-sao-nhieu-tram-quan-trac-o-ha-noi-ngung-hoat-dong-post1667595.tpo",
      "publisher": {
       "name": null,
       "domain": "tienphong.vn",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "background",
      "claimRefs": [],
      "temporal": {
       "publishedAt": null,
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-21",
       "retrievedAt": null,
       "status": "record-date-only"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "Coverage of station outages: sensors past replacement age, maintenance suspensions from late 2021 through 2022, named stations offline. Existence verified via search results; site not fetched directly in this pass.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     },
     {
      "id": "src-c517c7d1d012dd27",
      "title": "Việt Nam News — health ministry proposal on school closures",
      "url": "https://vietnamnews.vn/society/1690328/ministry-of-health-proposes-closing-schools-in-case-of-hazardous-air-quality.html",
      "publisher": {
       "name": null,
       "domain": "vietnamnews.vn",
       "classification": "not-classified"
      },
      "sourceType": "web-page",
      "language": "und",
      "role": "claim-evidence",
      "claimRefs": [
       "clm-a4203340865c4e12"
      ],
      "temporal": {
       "publishedAt": "2025-01-09",
       "updatedAt": null,
       "sourceCheckedAt": null,
       "recordLastVerifiedAt": "2026-08-15",
       "dossierCreatedAt": "2026-08-21",
       "retrievedAt": null,
       "status": "publication-and-record-dates-recorded"
      },
      "locator": {
       "type": "descriptive-source-note",
       "value": "The health ministry recommends kindergarten and primary pupils stay home when AQI stays hazardous (301–500) for three consecutive days — advice, with no automatic trigger attached.",
       "exact": false
      },
      "preservation": {
       "archiveUrl": null,
       "archivedAt": null,
       "contentHash": null,
       "status": "not-captured"
      }
     }
    ],
    "coverage": {
     "claimsTotal": 9,
     "claimsMapped": 9,
     "sourcesTotal": 5,
     "sourcesUsedByClaims": 3,
     "sourcesWithPublicationDate": 3,
     "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."
    ]
   }
  }
 ]
}
