{
  "coverage": {
    "asOfDate": "2026-07-20",
    "basis": "Minimum coverage date across the required live US/Canada first-party feeds.",
    "blockedSourceIds": [
      "us-pacer-court-polling",
      "us-pacer-case-locator",
      "ca-osb-bia-insolvency-records",
      "ca-bc-cso-new-cases",
      "ca-ontario-courts-public-portal"
    ],
    "liveSourceCoverage": [
      {
        "coverageDate": "2026-07-20",
        "fetchedRows": 70,
        "freshness": "fresh",
        "liveCases": 70,
        "liveCompanyRows": 70,
        "observedAt": "2026-07-20T08:29:54.266Z",
        "sourceId": "us-sec-edgar-item-103",
        "status": "ok",
        "windowEndDate": "2026-07-20",
        "windowStartDate": "2025-07-20"
      },
      {
        "coverageDate": "2026-07-20",
        "fetchedRows": 576,
        "freshness": "fresh",
        "liveCases": 576,
        "liveCompanyRows": 576,
        "observedAt": "2026-07-20T08:29:54.266Z",
        "sourceId": "us-fdic-failed-banks",
        "status": "ok",
        "windowEndDate": "2026-07-17",
        "windowStartDate": "2000-10-13"
      },
      {
        "coverageDate": "2026-07-20",
        "fetchedRows": 13,
        "freshness": "fresh",
        "liveCases": 281,
        "liveCompanyRows": 214,
        "observedAt": "2026-07-20T08:29:54.266Z",
        "sourceId": "us-pacer-bankruptcy-rss",
        "status": "ok",
        "windowEndDate": "2026-07-20",
        "windowStartDate": "2026-07-20"
      },
      {
        "coverageDate": "2026-07-20",
        "fetchedRows": 72,
        "freshness": "fresh",
        "liveCases": 73,
        "liveCompanyRows": 73,
        "observedAt": "2026-07-20T08:29:54.266Z",
        "sourceId": "ca-osb-ccaa",
        "status": "ok",
        "windowEndDate": "2026-07-20",
        "windowStartDate": "2025-07-20"
      }
    ],
    "liveSourcesFresh": true,
    "requiredLiveSourceIds": [
      "us-sec-edgar-item-103",
      "us-fdic-failed-banks",
      "us-pacer-bankruptcy-rss",
      "ca-osb-ccaa"
    ]
  },
  "generatedAt": "2026-07-20T08:29:54.271Z",
  "sourceHealth": [
    {
      "actionRequired": "Complete BC Court Services Online public-reuse review and authorized import handoff before enabling this source. Missing: RECEIVERSHIP_CA_BC_CSO_TERMS_APPROVED=true after terms review, RECEIVERSHIP_CA_BC_CSO_POLLING_ENABLED=true after polling/import workflow approval, RECEIVERSHIP_CA_BC_CSO_IMPORT_PATH pointing to an authorized JSON, NDJSON, or CSV new-case report export.",
      "cadence": "Daily if terms permit",
      "details": {
        "candidateRows": 0,
        "enabled": false,
        "importError": null,
        "importPath": null,
        "importPathConfigured": false,
        "importSha256": null,
        "importedCompanyRows": 0,
        "importedRows": 0,
        "parseWarnings": [],
        "pollingEnabled": false,
        "productionReadyConfigured": false,
        "reason": "terms_review_polling_and_import_path_required",
        "reportUrl": "https://justice.gov.bc.ca/cso/newCaseReport.do",
        "skippedReason": "Complete BC Court Services Online public-reuse review and authorized import handoff before enabling this source. Missing: RECEIVERSHIP_CA_BC_CSO_TERMS_APPROVED=true after terms review, RECEIVERSHIP_CA_BC_CSO_POLLING_ENABLED=true after polling/import workflow approval, RECEIVERSHIP_CA_BC_CSO_IMPORT_PATH pointing to an authorized JSON, NDJSON, or CSV new-case report export.",
        "termsApproved": false
      },
      "fetchedRows": 0,
      "freshness": {
        "ageHours": 0,
        "staleAfterHours": 30,
        "status": "not_applicable"
      },
      "observedAt": "2026-07-20T08:29:39.376Z",
      "rawSnapshotPath": "data/receivership/raw/2026-07-20/ca-bc-cso-new-cases.json",
      "sourceId": "ca-bc-cso-new-cases",
      "status": "terms_review"
    },
    {
      "actionRequired": "Complete Ontario Courts Public Portal automation/reuse review and authorized import handoff before enabling this source. Missing: RECEIVERSHIP_CA_ON_COURTS_TERMS_APPROVED=true after automation and reuse terms review, RECEIVERSHIP_CA_ON_COURTS_POLLING_ENABLED=true after polling/import workflow approval, RECEIVERSHIP_CA_ON_COURTS_IMPORT_PATH pointing to an authorized JSON, NDJSON, or CSV court case/order export.",
      "cadence": "Daily after terms approval and authorized import handoff",
      "details": {
        "enabled": false,
        "importError": null,
        "importPath": null,
        "importPathConfigured": false,
        "importSha256": null,
        "importedCompanyRows": 0,
        "importedRows": 0,
        "parseWarnings": [],
        "pollingEnabled": false,
        "portalUrl": "https://www.ontario.ca/page/search-court-cases-online",
        "productionReadyConfigured": false,
        "reason": "terms_polling_and_import_path_required",
        "skippedReason": "Complete Ontario Courts Public Portal automation/reuse review and authorized import handoff before enabling this source. Missing: RECEIVERSHIP_CA_ON_COURTS_TERMS_APPROVED=true after automation and reuse terms review, RECEIVERSHIP_CA_ON_COURTS_POLLING_ENABLED=true after polling/import workflow approval, RECEIVERSHIP_CA_ON_COURTS_IMPORT_PATH pointing to an authorized JSON, NDJSON, or CSV court case/order export.",
        "termsApproved": false
      },
      "fetchedRows": 0,
      "freshness": {
        "ageHours": 0,
        "staleAfterHours": 30,
        "status": "not_applicable"
      },
      "observedAt": "2026-07-20T08:29:39.376Z",
      "rawSnapshotPath": "data/receivership/raw/2026-07-20/ca-ontario-courts-public-portal.json",
      "sourceId": "ca-ontario-courts-public-portal",
      "status": "terms_review"
    },
    {
      "actionRequired": "Complete OSB Bankruptcy and Insolvency Records Search account, paid-search, cost-control, and authorized import setup before enabling this source. Missing: RECEIVERSHIP_OSB_BIA_ACCOUNT_CONFIRMED=true after registering for OSB Bankruptcy and Insolvency Records Search, RECEIVERSHIP_OSB_BIA_PAID_SEARCH_APPROVED=true after approving paid OSB searches, RECEIVERSHIP_OSB_BIA_DAILY_SEARCH_LIMIT, RECEIVERSHIP_OSB_BIA_SEARCH_BUDGET_CAD, RECEIVERSHIP_OSB_BIA_IMPORT_PATH pointing to an authorized JSON, NDJSON, or CSV OSB search result/details export.",
      "cadence": "Daily after account/payment setup and official export handoff",
      "details": {
        "accountConfirmed": false,
        "budgetGuard": {
          "controlsConfigured": false,
          "cost": {
            "configured": false,
            "currency": "CAD",
            "dailyCap": null,
            "remaining": null,
            "used": 0
          },
          "enabled": false,
          "ledgerDate": "2026-07-20",
          "ledgerPath": "data/receivership/raw/2026-07-20/paid-source-guards/ca-osb-bia-insolvency-records.json",
          "observedAt": "2026-07-20T08:29:39.375Z",
          "sourceId": "ca-osb-bia-insolvency-records",
          "status": "missing_controls",
          "usage": {
            "configured": false,
            "dailyLimit": null,
            "remaining": null,
            "unit": "searches",
            "used": 0
          },
          "warnings": [
            "Daily cost cap is not configured.",
            "Daily searches cap is not configured."
          ]
        },
        "dailySearchLimit": null,
        "dailySearchLimitConfigured": false,
        "enabled": false,
        "importError": null,
        "importPath": null,
        "importPathConfigured": false,
        "importSha256": null,
        "importedCompanyRows": 0,
        "importedRows": 0,
        "paidSearchApproved": false,
        "parseWarnings": [],
        "productionReadyConfigured": false,
        "reason": "account_paid_search_budget_and_import_path_required",
        "reportUrl": "https://ised-isde.canada.ca/site/office-superintendent-bankruptcy/en/bankruptcy-and-insolvency-records-search/bankruptcy-and-insolvency-records-search",
        "searchBudgetCad": null,
        "searchBudgetConfigured": false
      },
      "fetchedRows": 0,
      "freshness": {
        "ageHours": 0,
        "staleAfterHours": 30,
        "status": "not_applicable"
      },
      "observedAt": "2026-07-20T08:29:39.375Z",
      "rawSnapshotPath": "data/receivership/raw/2026-07-20/ca-osb-bia-insolvency-records.json",
      "sourceId": "ca-osb-bia-insolvency-records",
      "status": "skipped_credentials"
    },
    {
      "cadence": "Daily source, checked by US/Canada fast refresh",
      "fetchedRows": 72,
      "freshness": { "ageHours": 0, "staleAfterHours": 30, "status": "fresh" },
      "observedAt": "2026-07-20T08:29:54.266Z",
      "rawSnapshotPath": "data/receivership/raw/2026-07-20/ca-osb-ccaa.json",
      "sourceId": "ca-osb-ccaa",
      "status": "ok",
      "window": { "endDate": "2026-07-20", "startDate": "2025-07-20" }
    },
    {
      "cadence": "After bank failure; checked by US/Canada fast refresh and global workflow",
      "details": {
        "csvSha256": "f192c837f2e2c71538d50d8211c553ea0abae99fc6ef4773167531b491f11991",
        "latestClosingDate": "2026-07-17"
      },
      "fetchedRows": 576,
      "freshness": { "ageHours": 0, "staleAfterHours": 30, "status": "fresh" },
      "observedAt": "2026-07-20T08:29:54.266Z",
      "rawSnapshotPath": "data/receivership/raw/2026-07-20/us-fdic-failed-banks.json",
      "sourceId": "us-fdic-failed-banks",
      "status": "ok",
      "window": { "endDate": "2026-07-17", "startDate": "2000-10-13" }
    },
    {
      "cadence": "Hourly US/Canada fast refresh",
      "details": {
        "bankruptcyCourtCount": 94,
        "courtCoverageComplete": true,
        "courtCount": 94,
        "duplicateOpeningPetitionCandidates": 0,
        "failedFeeds": 1,
        "feedRuns": 94,
        "itemsRead": 18039,
        "latestPublishedAt": "2026-07-20T07:59:57.000Z",
        "lookupLastUpdated": "Sun, 19 Jul 2026 06:10:04 -0400",
        "openingPetitionCandidates": 13,
        "successfulFeeds": 93,
        "truncatedCourtCount": 0,
        "windowedItems": 18039,
        "windowHours": 72
      },
      "fetchedRows": 13,
      "freshness": { "ageHours": 0, "staleAfterHours": 6, "status": "fresh" },
      "observedAt": "2026-07-20T08:29:54.266Z",
      "rawSnapshotPath": "data/receivership/raw/2026-07-20/us-pacer-bankruptcy-rss.json",
      "sourceId": "us-pacer-bankruptcy-rss",
      "status": "ok"
    },
    {
      "actionRequired": "Complete PACER Case Locator credentials and daily cost-cap setup before enabling bounded PCL ingestion. Missing: PACER_USERNAME and PACER_PASSWORD, RECEIVERSHIP_PACER_DAILY_COST_CAP_USD. PACER_OTP and PACER_CLIENT_CODE are optional depending on account settings.",
      "cadence": "Daily when PACER credentials are configured",
      "details": {
        "billablePages": 0,
        "budgetGuard": {
          "controlsConfigured": false,
          "cost": {
            "configured": false,
            "currency": "USD",
            "dailyCap": null,
            "remaining": null,
            "used": 0
          },
          "enabled": false,
          "ledgerDate": "2026-07-20",
          "ledgerPath": "data/receivership/raw/2026-07-20/paid-source-guards/us-pacer-case-locator.json",
          "observedAt": "2026-07-20T08:29:39.378Z",
          "sourceId": "us-pacer-case-locator",
          "status": "missing_controls",
          "usage": {
            "configured": true,
            "dailyLimit": 10,
            "remaining": 10,
            "unit": "billable_pages",
            "used": 0
          },
          "warnings": ["Daily cost cap is not configured."]
        },
        "cacheHit": false,
        "enabled": false,
        "failureStage": null,
        "fetchedRawRows": 0,
        "pageLimit": 10,
        "searchMode": "parties",
        "searchFeeUsd": 0,
        "skippedReason": "Complete PACER Case Locator credentials and daily cost-cap setup before enabling bounded PCL ingestion. Missing: PACER_USERNAME and PACER_PASSWORD, RECEIVERSHIP_PACER_DAILY_COST_CAP_USD. PACER_OTP and PACER_CLIENT_CODE are optional depending on account settings.",
        "totalElements": null,
        "truncated": false
      },
      "fetchedRows": 0,
      "freshness": {
        "ageHours": 0,
        "staleAfterHours": 30,
        "status": "not_applicable"
      },
      "observedAt": "2026-07-20T08:29:39.378Z",
      "rawSnapshotPath": "data/receivership/raw/2026-07-20/us-pacer-pcl.json",
      "sourceId": "us-pacer-case-locator",
      "status": "skipped_credentials",
      "window": { "endDate": "2026-07-20", "startDate": "2026-07-18" }
    },
    {
      "actionRequired": "Complete PACER court-specific credentials, court allowlist, cost controls, polling approval, and authorized docket import setup before enabling this source. Missing: PACER_USERNAME and PACER_PASSWORD, RECEIVERSHIP_PACER_COURT_ALLOWLIST, RECEIVERSHIP_PACER_COURT_DAILY_COST_CAP_USD, RECEIVERSHIP_PACER_COURT_MAX_DOCKET_PAGES, RECEIVERSHIP_PACER_COURT_POLLING_ENABLED=true after credentials, allowlist, and cost controls are approved, RECEIVERSHIP_PACER_COURT_IMPORT_PATH pointing to an approved JSON, NDJSON, or CSV CM/ECF docket export.",
      "cadence": "Every 1-4 hours after credentials, court allowlist, and approved import handoff",
      "details": {
        "budgetGuard": {
          "controlsConfigured": false,
          "cost": {
            "configured": false,
            "currency": "USD",
            "dailyCap": null,
            "remaining": null,
            "used": 0
          },
          "enabled": false,
          "ledgerDate": "2026-07-20",
          "ledgerPath": "data/receivership/raw/2026-07-20/paid-source-guards/us-pacer-court-polling.json",
          "observedAt": "2026-07-20T08:29:39.376Z",
          "sourceId": "us-pacer-court-polling",
          "status": "missing_controls",
          "usage": {
            "configured": false,
            "dailyLimit": null,
            "remaining": null,
            "unit": "docket_pages",
            "used": 0
          },
          "warnings": [
            "Daily cost cap is not configured.",
            "Daily docket pages cap is not configured."
          ]
        },
        "costCapConfigured": false,
        "courtAllowlistCount": 0,
        "courtAllowlistCsv": "",
        "courtAllowlistConfigured": false,
        "dailyCostCapUsd": null,
        "docketPageCapConfigured": false,
        "enabled": false,
        "importError": null,
        "importPath": null,
        "importPathConfigured": false,
        "importSha256": null,
        "importedCompanyRows": 0,
        "importedRows": 0,
        "maxDocketPages": null,
        "pacerClientCodeConfigured": false,
        "pacerCredentialsConfigured": false,
        "parseWarnings": [],
        "pollingEnabled": false,
        "productionReadyConfigured": false,
        "reason": "court_specific_pacer_polling_import_not_configured"
      },
      "fetchedRows": 0,
      "freshness": {
        "ageHours": 0,
        "staleAfterHours": 6,
        "status": "not_applicable"
      },
      "observedAt": "2026-07-20T08:29:39.376Z",
      "rawSnapshotPath": "data/receivership/raw/2026-07-20/us-pacer-court-polling.json",
      "sourceId": "us-pacer-court-polling",
      "status": "skipped_credentials"
    },
    {
      "cadence": "Hourly US/Canada fast refresh; global workflow also refreshes it",
      "details": { "documentFetchFailures": 0 },
      "fetchedRows": 70,
      "freshness": { "ageHours": 0, "staleAfterHours": 6, "status": "fresh" },
      "observedAt": "2026-07-20T08:29:54.266Z",
      "rawSnapshotPath": "data/receivership/raw/2026-07-20/sec-edgar-item-103.json",
      "sourceId": "us-sec-edgar-item-103",
      "status": "ok",
      "window": { "endDate": "2026-07-20", "startDate": "2025-07-20" }
    }
  ],
  "sourceHealthVersion": 1,
  "sourcePolicy": "first_party_only",
  "summary": {
    "blockedSources": 5,
    "byStatus": { "terms_review": 2, "skipped_credentials": 3, "ok": 4 },
    "freshLiveSources": 4,
    "liveSourcesFresh": true,
    "totalSources": 9
  },
  "targetCountries": ["US", "CA"]
}
