{
  "meta": {
    "schema_version": 1,
    "artifact_snapshot_date": "2026-02-17",
    "source_repo": "imorte/passport-index-data",
    "source_commit": "9c59780dd0dbaefcbdfa0134d21cd99d0d547509",
    "source_commit_date": "2026-03-01",
    "source_file_hashes_sha256": {
      "passport-index.json": "1327f7ca7b6abfa22966000583bde0734d2e87d4f94619a9f9acb2605add62c5",
      "passport-index-matrix.csv": "15c35abfc4e8ace96d8db63b30aaf880badd6e35cf11fe1f6fe432c05b35b402",
      "passport-index-matrix-iso2.csv": "4515e3c02f7e743908f33fbbf86502c0de07173821c90eb84ea7201aaa9890f4",
      "passport-index-matrix-iso3.csv": "3d461c768cff94aa5e8da34a4709cc26aaa714ab96f6074dfc87de1c01cd247f"
    },
    "source_hash": "sha256:47736a862b5d029c",
    "source_hash_full": "sha256:47736a862b5d029cc127211a88920ad0e00cbec309a06d447c68f1362a304495",
    "data_date": "2026-02-17",
    "freshness": {
      "mode": "client_computed_date_age",
      "data_date": "2026-02-17",
      "source_commit_date": "2026-03-01",
      "max_data_age_days": 90,
      "max_source_age_days": 120,
      "computed_on_read_fields": [
        "today",
        "data_age_days",
        "source_age_days",
        "is_data_stale",
        "is_source_stale",
        "public_label"
      ],
      "public_label": "computed_on_read",
      "ui_required": true,
      "policy": "Consumers compute stale state from data_date/source_commit_date at render time. If stale, keep the free comparison usable but show a visible freshness warning near the source line and in public API metadata.",
      "source_decision": {
        "decision_id": "O5-2026-07-20",
        "status": "implemented",
        "decision": "accept_and_reframe_stale_source",
        "decided_at": "2026-07-20",
        "current_source_id": "imorte_passportindex_data",
        "public_mode": "comparison_available_with_prominent_stale_warning",
        "history_unlock": "Requires a second fully compatible reviewed snapshot; this decision alone does not create one."
      }
    },
    "passport_count": 199,
    "audit_score_field": "audit_source_universe_score",
    "audit_score_name": "audit source-universe score",
    "audit_score_universe": "source_imorte_passportindex_199_entities_20260217_9c59780",
    "audit_source_universe_label": "pinned PassportIndex 199-entity source universe",
    "audit_formula_display": "visa free + VOA + ETA",
    "customer_headline_field": "headline_visa_free_destination_score",
    "customer_headline_score_name": "visa-free destination score",
    "customer_headline_score_name_zh": "免签国家",
    "customer_headline_universe": "market_henley_countries_and_territories",
    "customer_headline_universe_label": "countries and territories / market-Henley headline universe",
    "customer_headline_destination_definition": "countries + territories + regions + dependencies + SARs + travel entities",
    "customer_headline_formula_display": "visa free + VOA + ETA",
    "destination_definition": "countries + territories + regions + dependencies + SARs + travel entities",
    "formula_display": "visa free + VOA + ETA",
    "universe_label": "countries and territories / market-Henley headline universe",
    "source_destination_universe": "source_imorte_passportindex_199_entities_20260217_9c59780",
    "source_destination_universe_legacy_alias": "passportindex_199_source_entities",
    "source_entity_count": 199,
    "destination_universe_entity_count": 199,
    "per_origin_destination_records": 198,
    "self_pair_policy": "omitted_from_json_not_counted",
    "counted_status_codes": [
      "VF",
      "VOA",
      "ETA"
    ],
    "excluded_status_codes": [
      "EV",
      "VR",
      "NA"
    ],
    "counted_status_names": {
      "VF": "visa free",
      "VOA": "visa on arrival",
      "ETA": "electronic travel authorisation"
    },
    "excluded_status_names": {
      "EV": "e-visa / visa required but applying online",
      "VR": "visa required",
      "NA": "no admission / prohibited"
    },
    "status_codes": {
      "VF": "visa free",
      "VOA": "visa on arrival",
      "ETA": "eta",
      "EV": "e-visa",
      "VR": "visa required",
      "NA": "no admission"
    },
    "removed_ambiguous_aliases": [
      "score",
      "visa_free_destination_score",
      "rank"
    ],
    "methodology_doc": "docs/methodology.md",
    "score_ssot_file": "docs/score-ssot.json",
    "note": "Informational only. Verify with official sources before travel/investment."
  },
  "schema_version": 1,
  "schema": "api/v1/schemas/contract.schema.json",
  "artifact_type": "passporttax_public_contract",
  "platform": {
    "platform_name": "PassportTax.org",
    "canonical_domain": "passporttax.org",
    "role": "passport mobility and tax comparison product, public data platform, and embeddable widget platform",
    "primary_market": "Chinese-language passport mobility comparison",
    "public_access_contract": "Open passport comparison; usable without signup or lead capture.",
    "widget_manifest": "api/v1/widgets/manifest.json",
    "source_registry_url": "api/v1/source-registry.json",
    "terms_url": "api/v1/terms.md"
  },
  "domain_boundaries": {
    "passporttax": "PassportTax-native passport mobility and tax comparison product, static API, freshness, source registry, widgets, and machine contracts; public lookup, ranking, comparison, tax, and upgrade tools remain ungated and available without signup. No Pro surface or pricing route is live.",
    "bprol": "optional external advisory and consultation partner for personalized route judgment",
    "cbi_watch": "CBI/RBI intelligence portal and reviewed program-change inputs",
    "claim_limit": "PassportTax public feeds do not create tax, legal, immigration, or investment advice."
  },
  "metric_contract": {
    "counted_status_codes": [
      "VF",
      "VOA",
      "ETA"
    ],
    "excluded_status_codes": [
      "EV",
      "VR",
      "NA"
    ],
    "formula_display": "visa free + VOA + ETA",
    "destination_definition": "countries + territories + regions + dependencies + SARs + travel entities",
    "audit_source_universe_field": "audit_source_universe_score",
    "customer_headline_field": "headline_visa_free_destination_score",
    "forbidden_public_aliases": [
      "score",
      "rank",
      "visa_free_destination_score",
      "mobility_score",
      "country_count"
    ],
    "anti_hallucination_rules": [
      "ETA is counted; eVisa / online visa is excluded.",
      "Do not add customer headline counts to audit/source-universe deltas.",
      "Do not present source-universe audit values as headline 免签国家 counts.",
      "If a field is missing from a feed, display unavailable rather than inventing it."
    ]
  },
  "freshness_contract": {
    "data_date": "2026-02-17",
    "source_commit": "9c59780dd0dbaefcbdfa0134d21cd99d0d547509",
    "source_commit_date": "2026-03-01",
    "freshness": {
      "mode": "client_computed_date_age",
      "data_date": "2026-02-17",
      "source_commit_date": "2026-03-01",
      "max_data_age_days": 90,
      "max_source_age_days": 120,
      "computed_on_read_fields": [
        "today",
        "data_age_days",
        "source_age_days",
        "is_data_stale",
        "is_source_stale",
        "public_label"
      ],
      "public_label": "computed_on_read",
      "ui_required": true,
      "policy": "Consumers compute stale state from data_date/source_commit_date at render time. If stale, keep the free comparison usable but show a visible freshness warning near the source line and in public API metadata.",
      "source_decision": {
        "decision_id": "O5-2026-07-20",
        "status": "implemented",
        "decision": "accept_and_reframe_stale_source",
        "decided_at": "2026-07-20",
        "current_source_id": "imorte_passportindex_data",
        "public_mode": "comparison_available_with_prominent_stale_warning",
        "history_unlock": "Requires a second fully compatible reviewed snapshot; this decision alone does not create one."
      }
    },
    "ui_required": false,
    "presentation_override": {
      "authority": "owner_instruction_2026-09-09",
      "display_sources": false,
      "display_source_dates": false,
      "display_freshness": false,
      "scope": "current PassportTax website, widgets, Dashboard samples, visual shares and human-readable reports",
      "preserve": "API provenance, dates, freshness calculations, validation, immutable editions and saved JSON references",
      "legacy_flags": "Nested freshness.ui_required and retained-edition policies are preserved compatibility metadata, not current UI instructions."
    }
  },
  "policy_event_contract": {
    "canonical_input": "data/policy_events.json",
    "public_projection": "api/v1/policy-events.json",
    "public_rule": "approved_public + five independent approved review gates + not review_paused",
    "auto_publish_allowed": false,
    "policy_states": [
      "observed",
      "under_official_review",
      "scheduled",
      "effective",
      "superseded"
    ],
    "review_freshness_states": [
      "current",
      "due",
      "review_paused"
    ],
    "forbidden_public_fields": [
      "probability",
      "likelihood",
      "confidence",
      "odds",
      "settlement"
    ]
  },
  "release_receipt": {
    "path": "api/v1/release-receipt.json",
    "verify_command": "python3 scripts/policy_release.py --verify-release-receipt"
  },
  "data_unavailable_policy": "When a requested value is absent from generated feeds or source registry, return data unavailable and cite the missing feed instead of estimating.",
  "endpoint_inventory": [
    "llms.txt",
    "api/v1/contract.json",
    "api/v1/openapi.json",
    "api/v1/manifest.json",
    "api/v1/entities.json",
    "api/v1/terms.md",
    "api/v1/meta.json",
    "api/v1/passport-list.json",
    "api/v1/passports.json",
    "api/v1/rank.json",
    "api/v1/updates/queue.json",
    "api/v1/source-audit/latest.json",
    "api/v1/tax-snapshots.json",
    "api/v1/programs.json",
    "api/v1/history/score-history.json",
    "api/v1/source-registry.json",
    "api/v1/policy-events.json",
    "api/v1/release-receipt.json",
    "api/v1/schemas/contract.schema.json",
    "api/v1/schemas/entities.schema.json",
    "api/v1/schemas/meta.schema.json",
    "api/v1/schemas/passport-list.schema.json",
    "api/v1/schemas/passports.schema.json",
    "api/v1/schemas/rank.schema.json",
    "api/v1/schemas/compare-example.schema.json",
    "api/v1/schemas/score-history.schema.json",
    "api/v1/schemas/source-audit.schema.json",
    "api/v1/schemas/source-registry.schema.json",
    "api/v1/schemas/tax-snapshots.schema.json",
    "api/v1/schemas/programs.schema.json",
    "api/v1/schemas/update-queue.schema.json",
    "api/v1/schemas/share-object.schema.json",
    "api/v1/schemas/lead-payload.schema.json",
    "api/v1/schemas/event-contract.schema.json",
    "api/v1/schemas/insights-rollup.schema.json",
    "api/v1/schemas/report-index.schema.json",
    "api/v1/schemas/page-demand-config.schema.json",
    "api/v1/schemas/widget-manifest.schema.json",
    "api/v1/schemas/widget-example.schema.json",
    "api/v1/schemas/widget-config.schema.json",
    "api/v1/schemas/policy-events.schema.json",
    "api/v1/schemas/release-receipt.schema.json",
    "api/v1/insights/manifest.json",
    "api/v1/insights/daily.json",
    "api/v1/insights/pairs.json",
    "api/v1/insights/funnel.json",
    "api/v1/insights/trending.json",
    "api/v1/reports/draft-index.json",
    "api/v1/examples/cn-dm.json",
    "api/v1/examples/cn-tr.json",
    "api/v1/examples/cn-gd.json",
    "api/v1/examples/cn-kn.json",
    "api/v1/examples/tw-pt.json",
    "api/v1/examples/cn-dm-tr.json",
    "api/v1/widgets/manifest.json",
    "api/v1/widgets/examples/cn-dm.json",
    "api/v1/widgets/examples/cn-gd.json",
    "api/v1/widgets/examples/cn-kn.json",
    "api/v1/widgets/examples/cn-tr.json",
    "api/v1/widgets/examples/cn-dm-tr.json",
    "api/v1/widgets/examples/tw-pt.json",
    "api/v1/widgets/configs/public-cn-upgrade.json",
    "api/v1/widgets/configs/public-tw-pt.json",
    "api/v1/widgets/configs/bprol-cn-upgrade.json",
    "api/v1/widgets/snippets/public-cn-upgrade.html",
    "api/v1/widgets/snippets/public-tw-pt.html",
    "api/v1/widgets/snippets/bprol-cn-upgrade.html"
  ],
  "public_feeds": [
    "llms.txt",
    "api/v1/contract.json",
    "api/v1/openapi.json",
    "api/v1/manifest.json",
    "api/v1/entities.json",
    "api/v1/terms.md",
    "api/v1/meta.json",
    "api/v1/passport-list.json",
    "api/v1/passports.json",
    "api/v1/rank.json",
    "api/v1/updates/queue.json",
    "api/v1/source-audit/latest.json",
    "api/v1/tax-snapshots.json",
    "api/v1/programs.json",
    "api/v1/history/score-history.json",
    "api/v1/source-registry.json",
    "api/v1/policy-events.json",
    "api/v1/release-receipt.json",
    "api/v1/schemas/contract.schema.json",
    "api/v1/schemas/entities.schema.json",
    "api/v1/schemas/meta.schema.json",
    "api/v1/schemas/passport-list.schema.json",
    "api/v1/schemas/passports.schema.json",
    "api/v1/schemas/rank.schema.json",
    "api/v1/schemas/compare-example.schema.json",
    "api/v1/schemas/score-history.schema.json",
    "api/v1/schemas/source-audit.schema.json",
    "api/v1/schemas/source-registry.schema.json",
    "api/v1/schemas/tax-snapshots.schema.json",
    "api/v1/schemas/programs.schema.json",
    "api/v1/schemas/update-queue.schema.json",
    "api/v1/schemas/share-object.schema.json",
    "api/v1/schemas/lead-payload.schema.json",
    "api/v1/schemas/event-contract.schema.json",
    "api/v1/schemas/insights-rollup.schema.json",
    "api/v1/schemas/report-index.schema.json",
    "api/v1/schemas/page-demand-config.schema.json",
    "api/v1/schemas/widget-manifest.schema.json",
    "api/v1/schemas/widget-example.schema.json",
    "api/v1/schemas/widget-config.schema.json",
    "api/v1/schemas/policy-events.schema.json",
    "api/v1/schemas/release-receipt.schema.json",
    "api/v1/insights/manifest.json",
    "api/v1/insights/daily.json",
    "api/v1/insights/pairs.json",
    "api/v1/insights/funnel.json",
    "api/v1/insights/trending.json",
    "api/v1/reports/draft-index.json",
    "api/v1/examples/cn-dm.json",
    "api/v1/examples/cn-tr.json",
    "api/v1/examples/cn-gd.json",
    "api/v1/examples/cn-kn.json",
    "api/v1/examples/tw-pt.json",
    "api/v1/examples/cn-dm-tr.json",
    "api/v1/widgets/manifest.json",
    "api/v1/widgets/examples/cn-dm.json",
    "api/v1/widgets/examples/cn-gd.json",
    "api/v1/widgets/examples/cn-kn.json",
    "api/v1/widgets/examples/cn-tr.json",
    "api/v1/widgets/examples/cn-dm-tr.json",
    "api/v1/widgets/examples/tw-pt.json",
    "api/v1/widgets/configs/public-cn-upgrade.json",
    "api/v1/widgets/configs/public-tw-pt.json",
    "api/v1/widgets/configs/bprol-cn-upgrade.json",
    "api/v1/widgets/snippets/public-cn-upgrade.html",
    "api/v1/widgets/snippets/public-tw-pt.html",
    "api/v1/widgets/snippets/bprol-cn-upgrade.html"
  ],
  "widget_contract": {
    "manifest": "api/v1/widgets/manifest.json",
    "configs": [
      "api/v1/widgets/configs/public-cn-upgrade.json",
      "api/v1/widgets/configs/public-tw-pt.json",
      "api/v1/widgets/configs/bprol-cn-upgrade.json"
    ],
    "forbidden_script_static_feeds": [
      "mvp/data.js"
    ],
    "allowed_script_static_feed_prefixes": [
      "api/v1/widgets/examples/",
      "api/v1/widgets/configs/",
      "api/v1/examples/",
      "api/v1/meta.json"
    ]
  },
  "agent_entrypoints": {
    "openapi": "api/v1/openapi.json",
    "llms": "llms.txt",
    "terms": "api/v1/terms.md",
    "entities": "api/v1/entities.json",
    "policy_events": "api/v1/policy-events.json",
    "release_receipt": "api/v1/release-receipt.json"
  }
}
