{
  "contract_version": "evidence_surface.v1",
  "observation_contract": {
    "contract_version": "evidence_surface.v1",
    "observation_fields": [
      "observation_id",
      "kind",
      "claim",
      "consequence",
      "authority",
      "value",
      "provenance",
      "vintage",
      "checksum",
      "supports",
      "contradicts",
      "missing",
      "used",
      "signal_family",
      "direction",
      "weight",
      "diagnostics",
      "unit",
      "source_type"
    ],
    "stable_contract_fields": [
      "claim",
      "consequence",
      "authority",
      "value",
      "provenance",
      "vintage",
      "checksum",
      "supports",
      "contradicts",
      "missing",
      "used",
      "signal_family",
      "direction",
      "weight",
      "diagnostics"
    ],
    "compatibility_fields": [
      "unit",
      "source_type"
    ],
    "trend_state_fields": [
      "metric",
      "state",
      "level",
      "slope",
      "acceleration",
      "volatility",
      "peer_percentile",
      "structural_break",
      "capacity_distance",
      "revision_risk",
      "suppression_risk",
      "freshness_decay",
      "contradiction_index"
    ],
    "impact_hypotheses": [
      "genuine_expansion",
      "displacement",
      "substitution",
      "leakage_dominant",
      "non_materialization"
    ],
    "viability_hypotheses": [
      "financeable_as_scoped",
      "undercapitalized_or_scope_mismatch",
      "permitting_delay",
      "operating_shortfall",
      "fiscal_mismatch",
      "community_capacity_binding"
    ],
    "observation_kinds": {
      "base_model_input": {
        "purpose": "Solved model input or provenance fact that sets the evidence floor.",
        "required_fields": [
          "claim",
          "consequence",
          "authority",
          "value",
          "provenance",
          "vintage",
          "checksum",
          "supports",
          "contradicts",
          "missing",
          "used",
          "signal_family",
          "direction",
          "weight",
          "diagnostics"
        ]
      },
      "decision_uncertainty_parameter": {
        "purpose": "Decision-layer uncertainty parameter and its evidence standing.",
        "required_fields": [
          "claim",
          "consequence",
          "authority",
          "value",
          "provenance",
          "vintage",
          "checksum",
          "supports",
          "contradicts",
          "missing",
          "used",
          "signal_family",
          "direction",
          "weight",
          "diagnostics"
        ]
      },
      "hypothesis_evidence_atom": {
        "purpose": "Governed evidence atom that moves competing hypotheses.",
        "required_fields": [
          "claim",
          "consequence",
          "authority",
          "value",
          "provenance",
          "vintage",
          "checksum",
          "supports",
          "contradicts",
          "missing",
          "used",
          "signal_family",
          "direction",
          "weight",
          "diagnostics"
        ]
      },
      "data_quality_penalty": {
        "purpose": "Weakness in public/API or validation evidence that affects confidence.",
        "required_fields": [
          "claim",
          "consequence",
          "authority",
          "value",
          "provenance",
          "vintage",
          "checksum",
          "supports",
          "contradicts",
          "missing",
          "used",
          "signal_family",
          "direction",
          "weight",
          "diagnostics"
        ]
      },
      "trend_early_warning_indicator": {
        "purpose": "Time-series or practice-state warning before the client claim travels.",
        "required_fields": [
          "claim",
          "consequence",
          "authority",
          "value",
          "provenance",
          "vintage",
          "checksum",
          "supports",
          "contradicts",
          "missing",
          "used",
          "signal_family",
          "direction",
          "weight",
          "diagnostics"
        ]
      },
      "disclosed_but_not_used_fact": {
        "purpose": "Relevant fact disclosed but intentionally not used in the model.",
        "required_fields": [
          "claim",
          "consequence",
          "authority",
          "value",
          "provenance",
          "vintage",
          "checksum",
          "supports",
          "contradicts",
          "missing",
          "used",
          "signal_family",
          "direction",
          "weight",
          "diagnostics"
        ]
      },
      "missing_expected_evidence": {
        "purpose": "Expected evidence absent under a live hypothesis or claim gate.",
        "required_fields": [
          "claim",
          "consequence",
          "authority",
          "value",
          "provenance",
          "vintage",
          "checksum",
          "supports",
          "contradicts",
          "missing",
          "used",
          "signal_family",
          "direction",
          "weight",
          "diagnostics"
        ]
      }
    }
  },
  "observation_count": 13,
  "missing_count": 6,
  "by_kind": {
    "data_quality_penalty": 1,
    "base_model_input": 2,
    "hypothesis_evidence_atom": 4,
    "missing_expected_evidence": 6
  },
  "observations": [
    {
      "observation_id": "source:status",
      "kind": "data_quality_penalty",
      "claim": "Source extraction status: audit-safe.",
      "consequence": "Sets the floor for what the audit may claim from this document; a weak source cannot support a strong release finding.",
      "authority": "Project Red Team source intake",
      "value": "audit_safe",
      "provenance": "examples/audit_pack/sample_study_excerpt.txt",
      "vintage": "",
      "checksum": "f80071538816dcb78f3e8f718c487ec181425dedb7699bfaac6e8dfdf706f327",
      "supports": {},
      "contradicts": {},
      "missing": false,
      "used": true,
      "signal_family": "source_confidence_gate",
      "direction": "neutral",
      "weight": 1.0,
      "diagnostics": {
        "source_file": "examples/audit_pack/sample_study_excerpt.txt",
        "source_kind": "text",
        "source_sha256": "f80071538816dcb78f3e8f718c487ec181425dedb7699bfaac6e8dfdf706f327",
        "extraction_method": "read_text_utf8_replace",
        "source_status": "audit_safe",
        "confidence": 1.0,
        "pages": 0,
        "tables": 0,
        "text_lines": 15,
        "table_lines": 0,
        "notes": [],
        "summary": "audit-safe: text; plain-text extraction; 15 text lines; 0 tables; confidence 100% on the source-extraction scale"
      },
      "unit": "source_status",
      "source_type": "text"
    },
    {
      "observation_id": "base:model_name",
      "kind": "base_model_input",
      "claim": "Model named by the study: IMPLAN.",
      "consequence": "Sets the audit context that gates use before any headline claim can travel.",
      "authority": "IMPLAN Audit Mode study-profile extractor",
      "value": "IMPLAN",
      "provenance": "examples/audit_pack/sample_study_excerpt.txt",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": false,
      "used": true,
      "signal_family": "model_name",
      "direction": "neutral",
      "weight": 0.45,
      "diagnostics": {
        "study_type": "mixed",
        "sector_archetype": "tourism"
      },
      "unit": "model name",
      "source_type": "extracted_report_text"
    },
    {
      "observation_id": "base:geography",
      "kind": "base_model_input",
      "claim": "Study geography named by the study: Hawthorne County, Oregon.",
      "consequence": "Sets the audit context that gates use before any headline claim can travel.",
      "authority": "IMPLAN Audit Mode study-profile extractor",
      "value": "Hawthorne County, Oregon",
      "provenance": "examples/audit_pack/sample_study_excerpt.txt",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": false,
      "used": true,
      "signal_family": "geography",
      "direction": "neutral",
      "weight": 0.45,
      "diagnostics": {
        "study_type": "mixed",
        "sector_archetype": "tourism"
      },
      "unit": "geography",
      "source_type": "extracted_report_text"
    },
    {
      "observation_id": "claim:001",
      "kind": "hypothesis_evidence_atom",
      "claim": "Jobs claim: 1,240 jobs.",
      "consequence": "Carried into the audit claim inventory; quote only with the attached snippet, source clue, confidence, and gate results.",
      "authority": "Extracted from report sentence",
      "value": "1,240",
      "provenance": "Executive summary: the arena will create 1,240 jobs and generate $4.6 million in annual state and local tax revenue.",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": false,
      "used": true,
      "signal_family": "jobs",
      "direction": "neutral",
      "weight": 0.62,
      "diagnostics": {
        "raw_metric_family": "jobs",
        "confidence": "medium",
        "source_clue": "same sentence"
      },
      "unit": "jobs",
      "source_type": "same sentence"
    },
    {
      "observation_id": "claim:002",
      "kind": "hypothesis_evidence_atom",
      "claim": "Tax and fiscal revenue claim: $4.6 million.",
      "consequence": "Carried into the audit claim inventory; quote only with the attached snippet, source clue, confidence, and gate results.",
      "authority": "Extracted from report sentence",
      "value": "$4.6 million",
      "provenance": "Executive summary: the arena will create 1,240 jobs and generate $4.6 million in annual state and local tax revenue.",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": false,
      "used": true,
      "signal_family": "tax_fiscal_revenue",
      "direction": "neutral",
      "weight": 0.62,
      "diagnostics": {
        "raw_metric_family": "tax_fiscal_revenue",
        "confidence": "medium",
        "source_clue": "same sentence"
      },
      "unit": "dollars",
      "source_type": "same sentence"
    },
    {
      "observation_id": "claim:003",
      "kind": "hypothesis_evidence_atom",
      "claim": "Visitor spending claim: $18.2 million.",
      "consequence": "Carried into the audit claim inventory; quote only with the attached snippet, source clue, confidence, and gate results.",
      "authority": "Extracted from report sentence",
      "value": "$18.2 million",
      "provenance": "The arena attracts 310,000 visitors whose $18.2 million of spending is counted in the model.",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": false,
      "used": true,
      "signal_family": "visitor_spending",
      "direction": "neutral",
      "weight": 0.62,
      "diagnostics": {
        "raw_metric_family": "visitor_spending",
        "confidence": "medium",
        "source_clue": "same sentence"
      },
      "unit": "dollars",
      "source_type": "same sentence"
    },
    {
      "observation_id": "claim:004",
      "kind": "hypothesis_evidence_atom",
      "claim": "Return on investment or benefit-cost ratio claim: 7.0:1 ratio.",
      "consequence": "Carried into the audit claim inventory; quote only with the attached snippet, source clue, confidence, and gate results.",
      "authority": "Extracted from report sentence",
      "value": "7.0:1",
      "provenance": "A $4.0 million city grant returns $28.0 million, a 7.0:1 ROI.",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": false,
      "used": true,
      "signal_family": "roi_bcr",
      "direction": "neutral",
      "weight": 0.62,
      "diagnostics": {
        "raw_metric_family": "roi_bcr",
        "confidence": "medium",
        "source_clue": "same sentence"
      },
      "unit": "ratio",
      "source_type": "same sentence"
    },
    {
      "observation_id": "missing_public_cost_side",
      "kind": "missing_expected_evidence",
      "claim": "Missing expected evidence: Public service costs, abatements, incentives, or other cost-side fiscal evidence.",
      "consequence": "Gross tax revenue may be mistaken for net fiscal benefit.",
      "authority": "IMPLAN Audit Mode fiscal_truth_gate",
      "value": "fail",
      "provenance": "",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": true,
      "used": true,
      "signal_family": "fiscal_truth_gate",
      "direction": "adverse",
      "weight": 1.0,
      "diagnostics": {
        "reason": "Tax or fiscal revenue appears without a detected public cost-side ledger.",
        "related_gate": "fiscal_truth_gate",
        "expected": "Public service costs, abatements, incentives, or other cost-side fiscal evidence"
      },
      "unit": "severity",
      "source_type": "missing_report_evidence"
    },
    {
      "observation_id": "missing_survey_response_rate",
      "kind": "missing_expected_evidence",
      "claim": "Missing expected evidence: Survey response rate, sample frame, and usable response count.",
      "consequence": "Survey-derived spending or input assumptions cannot be weighted for coverage risk.",
      "authority": "IMPLAN Audit Mode survey_adequacy_gate",
      "value": "fail",
      "provenance": "",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": true,
      "used": true,
      "signal_family": "survey_adequacy_gate",
      "direction": "adverse",
      "weight": 1.0,
      "diagnostics": {
        "reason": "Survey language appears without response-rate or sample-size disclosure.",
        "related_gate": "survey_adequacy_gate",
        "expected": "Survey response rate, sample frame, and usable response count"
      },
      "unit": "severity",
      "source_type": "missing_report_evidence"
    },
    {
      "observation_id": "missing_model_year",
      "kind": "missing_expected_evidence",
      "claim": "Missing expected evidence: Model year or data year.",
      "consequence": "Model structure may not match the spending period.",
      "authority": "IMPLAN Audit Mode model_vintage_gate",
      "value": "fail",
      "provenance": "",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": true,
      "used": true,
      "signal_family": "model_vintage_gate",
      "direction": "adverse",
      "weight": 1.0,
      "diagnostics": {
        "reason": "IMPLAN is named, but no model/data year was detected.",
        "related_gate": "model_vintage_gate",
        "expected": "Model year or data year"
      },
      "unit": "severity",
      "source_type": "missing_report_evidence"
    },
    {
      "observation_id": "missing_dollar_year",
      "kind": "missing_expected_evidence",
      "claim": "Missing expected evidence: Dollar year or currency year.",
      "consequence": "Nominal and real dollar claims may be mixed.",
      "authority": "IMPLAN Audit Mode model_vintage_gate",
      "value": "fail",
      "provenance": "",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": true,
      "used": true,
      "signal_family": "model_vintage_gate",
      "direction": "adverse",
      "weight": 1.0,
      "diagnostics": {
        "reason": "IMPLAN is named, but no dollar/currency year was detected.",
        "related_gate": "model_vintage_gate",
        "expected": "Dollar year or currency year"
      },
      "unit": "severity",
      "source_type": "missing_report_evidence"
    },
    {
      "observation_id": "missing_tax_retention_or_netting",
      "kind": "missing_expected_evidence",
      "claim": "Missing expected evidence: Gross-vs-net tax treatment and retention/abatement assumptions.",
      "consequence": "A gross tax collection can be mistaken for fiscal benefit to the decision maker.",
      "authority": "IMPLAN Audit Mode tax_gross_vs_net_gate",
      "value": "fail",
      "provenance": "",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": true,
      "used": true,
      "signal_family": "tax_gross_vs_net_gate",
      "direction": "adverse",
      "weight": 1.0,
      "diagnostics": {
        "reason": "Tax revenue appears without gross/net or tax-retention language.",
        "related_gate": "tax_gross_vs_net_gate",
        "expected": "Gross-vs-net tax treatment and retention/abatement assumptions"
      },
      "unit": "severity",
      "source_type": "missing_report_evidence"
    },
    {
      "observation_id": "missing_reconcilable_tables",
      "kind": "missing_expected_evidence",
      "claim": "Missing expected evidence: Tables or structured figures that can reconcile prose claims.",
      "consequence": "Prose figures cannot be checked against tabulated support.",
      "authority": "IMPLAN Audit Mode source_confidence_gate",
      "value": "warn",
      "provenance": "",
      "vintage": "",
      "checksum": "",
      "supports": {},
      "contradicts": {},
      "missing": true,
      "used": true,
      "signal_family": "source_confidence_gate",
      "direction": "adverse",
      "weight": 0.55,
      "diagnostics": {
        "reason": "No tables were detected by the existing document auditor.",
        "related_gate": "source_confidence_gate",
        "expected": "Tables or structured figures that can reconcile prose claims"
      },
      "unit": "severity",
      "source_type": "missing_report_evidence"
    }
  ]
}