{
  "blockers": [
    {
      "accountUrl": "https://pacer.uscourts.gov/find-case/search-national-index",
      "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.",
      "affectedSegments": [
        {
          "country": "US",
          "implemented": true,
          "segmentId": "us-pacer-case-locator-national-backstop",
          "status": "credentials_required"
        }
      ],
      "billable": true,
      "blockerId": "blocker:us-pacer-case-locator",
      "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."]
      },
      "category": "credentials_and_cost_controls",
      "configuredEnv": {
        "PACER_USERNAME": false,
        "PACER_PASSWORD": false,
        "RECEIVERSHIP_PACER_DAILY_COST_CAP_USD": false,
        "PACER_TOTP_SECRET": false,
        "PACER_OTP": false,
        "PACER_CLIENT_CODE": false
      },
      "env": {
        "optional": ["PACER_TOTP_SECRET", "PACER_OTP", "PACER_CLIENT_CODE"],
        "required": [
          "PACER_USERNAME",
          "PACER_PASSWORD",
          "RECEIVERSHIP_PACER_DAILY_COST_CAP_USD"
        ]
      },
      "implemented": true,
      "legalReviewRequired": false,
      "missingRequiredEnv": [
        "PACER_USERNAME",
        "PACER_PASSWORD",
        "RECEIVERSHIP_PACER_DAILY_COST_CAP_USD"
      ],
      "nextActions": [
        "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.",
        "Register or confirm a PACER account and billing responsibility.",
        "Set PACER_USERNAME and PACER_PASSWORD; add PACER_TOTP_SECRET, PACER_OTP, and PACER_CLIENT_CODE if the account requires them.",
        "Run npm run check:pacer before enabling billable Case Locator searches."
      ],
      "onboarding": {
        "activationSteps": [
          "Register or confirm a PACER account and billing responsibility.",
          "Set PACER_USERNAME and PACER_PASSWORD; add PACER_TOTP_SECRET, PACER_OTP, and PACER_CLIENT_CODE if the account requires them.",
          "Run npm run check:pacer before enabling billable Case Locator searches."
        ],
        "feeNotes": "PACER access is billable; searches can incur per-page charges even before viewing individual documents.",
        "legalReviewRequired": false,
        "officialReferences": [
          {
            "label": "PACER Case Locator",
            "url": "https://pacer.uscourts.gov/find-case/search-national-index"
          },
          {
            "label": "PACER registration FAQ",
            "url": "https://pacer.uscourts.gov/help/faqs/registration"
          },
          {
            "label": "PACER policy and fee information",
            "url": "https://pacer.uscourts.gov/policy-procedures"
          }
        ]
      },
      "ready": false,
      "readyWhen": [
        "All required GitHub Actions Secrets and Variables for this source are configured.",
        "Any required account, paid-search, cost-control, or terms-review step is approved.",
        "The filled source decision ledger marks this source approved and ready, validates with npm run check:receivership:us-ca:source-decision-ledger, and is supplied to the production-ready workflow as RECEIVERSHIP_US_CA_SOURCE_DECISION_LEDGER_GZIP_BASE64.",
        "Required first-party import files validate against public/data/receivership/us-ca-import-templates.json.",
        "The source health row is ok/fresh after the next US/Canada refresh.",
        "The row-producing source collector is implemented, not preflight-only.",
        "The strict production verifier exits successfully."
      ],
      "setupId": "credentials:pacer-case-locator",
      "sourceHealth": {
        "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.",
        "freshness": "not_applicable",
        "observedAt": "2026-07-20T08:29:39.378Z",
        "sourceId": "us-pacer-case-locator",
        "status": "skipped_credentials"
      },
      "sourceId": "us-pacer-case-locator",
      "sourceName": "PACER Case Locator",
      "sourceFreshness": "not_applicable",
      "sourceStatus": "requires_credentials",
      "status": "skipped_credentials",
      "unblocksProductionCoverage": true,
      "verificationCommands": [
        "npm run check:pacer",
        "npm run fetch:receivership:us-ca",
        "npm run check:receivership:us-ca:config",
        "npm run check:receivership:us-ca:github-env",
        "npm run check:receivership:us-ca:import-templates",
        "npm run check:receivership:us-ca:production-env",
        "npm run check:receivership:us-ca:blockers",
        "npm run check:receivership:us-ca:production-blocker-issue",
        "npm run check:receivership:us-ca:setup-packet",
        "npm run check:receivership:us-ca:source-decision-ledger",
        "npm run check:receivership:us-ca:source-decision-ledger-template",
        "npm run check:receivership:us-ca:source-decision-packet",
        "npm run check:receivership:us-ca:source-activation",
        "npm run check:receivership:us-ca:source-health",
        "npm run check:receivership:us-ca:runbook",
        "npm run verify:receivership:us-ca",
        "npm run verify:receivership:us-ca:production"
      ]
    },
    {
      "accountUrl": "https://pacer.uscourts.gov/find-case",
      "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.",
      "affectedSegments": [
        {
          "country": "US",
          "implemented": true,
          "segmentId": "us-pacer-court-docket-polling",
          "status": "credentials_required"
        }
      ],
      "billable": true,
      "blockerId": "blocker:us-pacer-court-polling",
      "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."
        ]
      },
      "category": "credentials_and_cost_controls",
      "configuredEnv": {
        "PACER_USERNAME": false,
        "PACER_PASSWORD": false,
        "PACER_CLIENT_CODE": false,
        "RECEIVERSHIP_PACER_COURT_ALLOWLIST": false,
        "RECEIVERSHIP_PACER_COURT_DAILY_COST_CAP_USD": false,
        "RECEIVERSHIP_PACER_COURT_IMPORT_PATH": false,
        "RECEIVERSHIP_PACER_COURT_MAX_DOCKET_PAGES": false,
        "RECEIVERSHIP_PACER_COURT_POLLING_ENABLED": false
      },
      "env": {
        "optional": ["PACER_CLIENT_CODE"],
        "required": [
          "PACER_USERNAME",
          "PACER_PASSWORD",
          "RECEIVERSHIP_PACER_COURT_ALLOWLIST",
          "RECEIVERSHIP_PACER_COURT_DAILY_COST_CAP_USD",
          "RECEIVERSHIP_PACER_COURT_IMPORT_PATH",
          "RECEIVERSHIP_PACER_COURT_MAX_DOCKET_PAGES",
          "RECEIVERSHIP_PACER_COURT_POLLING_ENABLED"
        ]
      },
      "implemented": true,
      "legalReviewRequired": false,
      "missingRequiredEnv": [
        "PACER_USERNAME",
        "PACER_PASSWORD",
        "RECEIVERSHIP_PACER_COURT_ALLOWLIST",
        "RECEIVERSHIP_PACER_COURT_DAILY_COST_CAP_USD",
        "RECEIVERSHIP_PACER_COURT_IMPORT_PATH",
        "RECEIVERSHIP_PACER_COURT_MAX_DOCKET_PAGES",
        "RECEIVERSHIP_PACER_COURT_POLLING_ENABLED"
      ],
      "nextActions": [
        "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.",
        "Register or confirm a PACER account and billing responsibility for court-specific CM/ECF access.",
        "Choose the bankruptcy court allowlist and set a daily cost cap plus docket-page cap.",
        "Save approved court-specific CM/ECF docket exports as JSON, NDJSON, or CSV and point RECEIVERSHIP_PACER_COURT_IMPORT_PATH at that file.",
        "Set RECEIVERSHIP_PACER_COURT_ALLOWLIST, RECEIVERSHIP_PACER_COURT_DAILY_COST_CAP_USD, RECEIVERSHIP_PACER_COURT_MAX_DOCKET_PAGES, and RECEIVERSHIP_PACER_COURT_POLLING_ENABLED=true only after cost controls are reviewed."
      ],
      "onboarding": {
        "activationSteps": [
          "Register or confirm a PACER account and billing responsibility for court-specific CM/ECF access.",
          "Choose the bankruptcy court allowlist and set a daily cost cap plus docket-page cap.",
          "Save approved court-specific CM/ECF docket exports as JSON, NDJSON, or CSV and point RECEIVERSHIP_PACER_COURT_IMPORT_PATH at that file.",
          "Set RECEIVERSHIP_PACER_COURT_ALLOWLIST, RECEIVERSHIP_PACER_COURT_DAILY_COST_CAP_USD, RECEIVERSHIP_PACER_COURT_MAX_DOCKET_PAGES, and RECEIVERSHIP_PACER_COURT_POLLING_ENABLED=true only after cost controls are reviewed."
        ],
        "feeNotes": "Court-specific PACER docket/document retrieval is billable and must run under explicit court allowlists and cost caps.",
        "legalReviewRequired": false,
        "officialReferences": [
          {
            "label": "PACER find a case",
            "url": "https://pacer.uscourts.gov/find-case"
          },
          {
            "label": "PACER registration FAQ",
            "url": "https://pacer.uscourts.gov/help/faqs/registration"
          },
          {
            "label": "PACER policy and fee information",
            "url": "https://pacer.uscourts.gov/policy-procedures"
          }
        ]
      },
      "ready": false,
      "readyWhen": [
        "All required GitHub Actions Secrets and Variables for this source are configured.",
        "Any required account, paid-search, cost-control, or terms-review step is approved.",
        "The filled source decision ledger marks this source approved and ready, validates with npm run check:receivership:us-ca:source-decision-ledger, and is supplied to the production-ready workflow as RECEIVERSHIP_US_CA_SOURCE_DECISION_LEDGER_GZIP_BASE64.",
        "Required first-party import files validate against public/data/receivership/us-ca-import-templates.json.",
        "The source health row is ok/fresh after the next US/Canada refresh.",
        "The row-producing source collector is implemented, not preflight-only.",
        "The strict production verifier exits successfully."
      ],
      "setupId": "setup:us-pacer-court-polling",
      "sourceHealth": {
        "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.",
        "freshness": "not_applicable",
        "observedAt": "2026-07-20T08:29:39.376Z",
        "sourceId": "us-pacer-court-polling",
        "status": "skipped_credentials"
      },
      "sourceId": "us-pacer-court-polling",
      "sourceName": "PACER specific-court docket polling",
      "sourceFreshness": "not_applicable",
      "sourceStatus": "requires_credentials",
      "status": "skipped_credentials",
      "unblocksProductionCoverage": true,
      "verificationCommands": [
        "npm run fetch:receivership:us-ca",
        "npm run check:receivership:us-ca:config",
        "npm run check:receivership:us-ca:github-env",
        "npm run check:receivership:us-ca:import-templates",
        "npm run check:receivership:us-ca:production-env",
        "npm run check:receivership:us-ca:blockers",
        "npm run check:receivership:us-ca:production-blocker-issue",
        "npm run check:receivership:us-ca:setup-packet",
        "npm run check:receivership:us-ca:source-decision-ledger",
        "npm run check:receivership:us-ca:source-decision-ledger-template",
        "npm run check:receivership:us-ca:source-decision-packet",
        "npm run check:receivership:us-ca:source-activation",
        "npm run check:receivership:us-ca:source-health",
        "npm run check:receivership:us-ca:runbook",
        "npm run verify:receivership:us-ca",
        "npm run verify:receivership:us-ca:production"
      ]
    },
    {
      "accountUrl": "https://www.ic.gc.ca/app/scr/bsf-osb/ins/login.html?lang=eng",
      "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.",
      "affectedSegments": [
        {
          "country": "CA",
          "implemented": true,
          "segmentId": "ca-osb-bia-national-records",
          "status": "credentials_required"
        }
      ],
      "billable": true,
      "blockerId": "blocker:ca-osb-bia-insolvency-records",
      "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."
        ]
      },
      "category": "account_and_paid_search",
      "configuredEnv": {
        "RECEIVERSHIP_OSB_BIA_DAILY_SEARCH_LIMIT": false,
        "RECEIVERSHIP_OSB_BIA_IMPORT_PATH": false,
        "RECEIVERSHIP_OSB_BIA_SEARCH_BUDGET_CAD": false,
        "RECEIVERSHIP_OSB_BIA_ACCOUNT_CONFIRMED": false,
        "RECEIVERSHIP_OSB_BIA_PAID_SEARCH_APPROVED": false
      },
      "env": {
        "optional": [],
        "required": [
          "RECEIVERSHIP_OSB_BIA_ACCOUNT_CONFIRMED",
          "RECEIVERSHIP_OSB_BIA_PAID_SEARCH_APPROVED",
          "RECEIVERSHIP_OSB_BIA_DAILY_SEARCH_LIMIT",
          "RECEIVERSHIP_OSB_BIA_IMPORT_PATH",
          "RECEIVERSHIP_OSB_BIA_SEARCH_BUDGET_CAD"
        ]
      },
      "implemented": true,
      "legalReviewRequired": false,
      "missingRequiredEnv": [
        "RECEIVERSHIP_OSB_BIA_ACCOUNT_CONFIRMED",
        "RECEIVERSHIP_OSB_BIA_PAID_SEARCH_APPROVED",
        "RECEIVERSHIP_OSB_BIA_DAILY_SEARCH_LIMIT",
        "RECEIVERSHIP_OSB_BIA_IMPORT_PATH",
        "RECEIVERSHIP_OSB_BIA_SEARCH_BUDGET_CAD"
      ],
      "nextActions": [
        "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.",
        "Register for OSB Bankruptcy and Insolvency Records Search access through the current GCKey or Sign-In Partner flow.",
        "Approve paid searches and configure a daily search limit plus CAD budget before enabling automation.",
        "Save authorized OSB search result/details exports as JSON, NDJSON, or CSV and point RECEIVERSHIP_OSB_BIA_IMPORT_PATH at that file.",
        "Set RECEIVERSHIP_OSB_BIA_ACCOUNT_CONFIRMED=true, RECEIVERSHIP_OSB_BIA_PAID_SEARCH_APPROVED=true, RECEIVERSHIP_OSB_BIA_DAILY_SEARCH_LIMIT, RECEIVERSHIP_OSB_BIA_SEARCH_BUDGET_CAD, and RECEIVERSHIP_OSB_BIA_IMPORT_PATH."
      ],
      "onboarding": {
        "activationSteps": [
          "Register for OSB Bankruptcy and Insolvency Records Search access through the current GCKey or Sign-In Partner flow.",
          "Approve paid searches and configure a daily search limit plus CAD budget before enabling automation.",
          "Save authorized OSB search result/details exports as JSON, NDJSON, or CSV and point RECEIVERSHIP_OSB_BIA_IMPORT_PATH at that file.",
          "Set RECEIVERSHIP_OSB_BIA_ACCOUNT_CONFIRMED=true, RECEIVERSHIP_OSB_BIA_PAID_SEARCH_APPROVED=true, RECEIVERSHIP_OSB_BIA_DAILY_SEARCH_LIMIT, RECEIVERSHIP_OSB_BIA_SEARCH_BUDGET_CAD, and RECEIVERSHIP_OSB_BIA_IMPORT_PATH."
        ],
        "feeNotes": "OSB BIA records require paid search tokens; CCAA records are free through the same OSB search service. The BIA importer reads only operator-supplied official saved search results/details.",
        "legalReviewRequired": false,
        "officialReferences": [
          {
            "label": "OSB Bankruptcy and Insolvency Records Search",
            "url": "https://ised-isde.canada.ca/site/office-superintendent-bankruptcy/en/bankruptcy-and-insolvency-records-search/bankruptcy-and-insolvency-records-search"
          },
          {
            "label": "OSB search instructions and costs",
            "url": "https://ised-isde.canada.ca/site/office-superintendent-bankruptcy/en/bankruptcy-and-insolvency-records-search/instructions"
          }
        ]
      },
      "ready": false,
      "readyWhen": [
        "All required GitHub Actions Secrets and Variables for this source are configured.",
        "Any required account, paid-search, cost-control, or terms-review step is approved.",
        "The filled source decision ledger marks this source approved and ready, validates with npm run check:receivership:us-ca:source-decision-ledger, and is supplied to the production-ready workflow as RECEIVERSHIP_US_CA_SOURCE_DECISION_LEDGER_GZIP_BASE64.",
        "Required first-party import files validate against public/data/receivership/us-ca-import-templates.json.",
        "The source health row is ok/fresh after the next US/Canada refresh.",
        "The row-producing source collector is implemented, not preflight-only.",
        "The strict production verifier exits successfully."
      ],
      "setupId": "setup:ca-osb-bia-insolvency-records",
      "sourceHealth": {
        "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.",
        "freshness": "not_applicable",
        "observedAt": "2026-07-20T08:29:39.375Z",
        "sourceId": "ca-osb-bia-insolvency-records",
        "status": "skipped_credentials"
      },
      "sourceId": "ca-osb-bia-insolvency-records",
      "sourceName": "Canada OSB Bankruptcy and Insolvency Records Search",
      "sourceFreshness": "not_applicable",
      "sourceStatus": "requires_credentials",
      "status": "skipped_credentials",
      "unblocksProductionCoverage": true,
      "verificationCommands": [
        "npm run fetch:receivership:us-ca",
        "npm run check:receivership:us-ca:config",
        "npm run check:receivership:us-ca:github-env",
        "npm run check:receivership:us-ca:import-templates",
        "npm run check:receivership:us-ca:production-env",
        "npm run check:receivership:us-ca:blockers",
        "npm run check:receivership:us-ca:production-blocker-issue",
        "npm run check:receivership:us-ca:setup-packet",
        "npm run check:receivership:us-ca:source-decision-ledger",
        "npm run check:receivership:us-ca:source-decision-ledger-template",
        "npm run check:receivership:us-ca:source-decision-packet",
        "npm run check:receivership:us-ca:source-activation",
        "npm run check:receivership:us-ca:source-health",
        "npm run check:receivership:us-ca:runbook",
        "npm run verify:receivership:us-ca",
        "npm run verify:receivership:us-ca:production"
      ]
    },
    {
      "accountUrl": "https://justice.gov.bc.ca/cso/newCaseReport.do",
      "actionRequired": "Complete BC Court Services Online public-reuse terms review, then enable the approved polling/import workflow and provide the authorized new-case report import file path.",
      "affectedSegments": [
        {
          "country": "CA",
          "implemented": true,
          "segmentId": "ca-bc-court-services-online",
          "status": "terms_review"
        }
      ],
      "billable": false,
      "blockerId": "blocker:ca-bc-cso-new-cases",
      "category": "terms_review",
      "configuredEnv": {
        "RECEIVERSHIP_CA_BC_CSO_IMPORT_PATH": false,
        "RECEIVERSHIP_CA_BC_CSO_TERMS_APPROVED": false,
        "RECEIVERSHIP_CA_BC_CSO_POLLING_ENABLED": false
      },
      "env": {
        "optional": [],
        "required": [
          "RECEIVERSHIP_CA_BC_CSO_TERMS_APPROVED",
          "RECEIVERSHIP_CA_BC_CSO_POLLING_ENABLED",
          "RECEIVERSHIP_CA_BC_CSO_IMPORT_PATH"
        ]
      },
      "implemented": true,
      "legalReviewRequired": true,
      "missingRequiredEnv": [
        "RECEIVERSHIP_CA_BC_CSO_TERMS_APPROVED",
        "RECEIVERSHIP_CA_BC_CSO_POLLING_ENABLED",
        "RECEIVERSHIP_CA_BC_CSO_IMPORT_PATH"
      ],
      "nextActions": [
        "Complete BC Court Services Online public-reuse terms review, then enable the approved polling/import workflow and provide the authorized new-case report import file path.",
        "Review the BC CSO e-search usage agreement and confirm public-reuse terms for automated new-case monitoring.",
        "Confirm payment/account requirements for any paid file-detail or document retrieval workflow.",
        "Save authorized BC CSO new-case report rows as JSON, NDJSON, or CSV and point RECEIVERSHIP_CA_BC_CSO_IMPORT_PATH at that file.",
        "Set RECEIVERSHIP_CA_BC_CSO_TERMS_APPROVED=true and RECEIVERSHIP_CA_BC_CSO_POLLING_ENABLED=true only after the review is complete."
      ],
      "onboarding": {
        "activationSteps": [
          "Review the BC CSO e-search usage agreement and confirm public-reuse terms for automated new-case monitoring.",
          "Confirm payment/account requirements for any paid file-detail or document retrieval workflow.",
          "Save authorized BC CSO new-case report rows as JSON, NDJSON, or CSV and point RECEIVERSHIP_CA_BC_CSO_IMPORT_PATH at that file.",
          "Set RECEIVERSHIP_CA_BC_CSO_TERMS_APPROVED=true and RECEIVERSHIP_CA_BC_CSO_POLLING_ENABLED=true only after the review is complete."
        ],
        "feeNotes": "BC CSO publishes a free new-case report link, but CSO e-search file details/documents can require per-file fees.",
        "legalReviewRequired": true,
        "officialReferences": [
          {
            "label": "BC CSO new case report",
            "url": "https://justice.gov.bc.ca/cso/newCaseReport.do"
          },
          {
            "label": "BC CSO e-search usage agreement",
            "url": "https://justice.gov.bc.ca/cso/usageAgreement/index.do"
          },
          {
            "label": "BC CSO FAQ and fee schedule",
            "url": "https://justice.gov.bc.ca/cso/help/faq.do"
          }
        ]
      },
      "ready": false,
      "readyWhen": [
        "All required GitHub Actions Secrets and Variables for this source are configured.",
        "Any required account, paid-search, cost-control, or terms-review step is approved.",
        "The filled source decision ledger marks this source approved and ready, validates with npm run check:receivership:us-ca:source-decision-ledger, and is supplied to the production-ready workflow as RECEIVERSHIP_US_CA_SOURCE_DECISION_LEDGER_GZIP_BASE64.",
        "Required first-party import files validate against public/data/receivership/us-ca-import-templates.json.",
        "The source health row is ok/fresh after the next US/Canada refresh.",
        "The row-producing source collector is implemented, not preflight-only.",
        "The strict production verifier exits successfully."
      ],
      "setupId": "setup:ca-bc-court-source",
      "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.",
        "freshness": "not_applicable",
        "observedAt": "2026-07-20T08:29:39.376Z",
        "sourceId": "ca-bc-cso-new-cases",
        "status": "terms_review"
      },
      "sourceId": "ca-bc-cso-new-cases",
      "sourceName": "BC Court Services Online new cases",
      "sourceFreshness": "not_applicable",
      "sourceStatus": "terms_review",
      "status": "terms_review",
      "unblocksProductionCoverage": true,
      "verificationCommands": [
        "npm run check:receivership:us-ca:bc-cso",
        "npm run fetch:receivership:us-ca",
        "npm run check:receivership:us-ca:config",
        "npm run check:receivership:us-ca:github-env",
        "npm run check:receivership:us-ca:import-templates",
        "npm run check:receivership:us-ca:production-env",
        "npm run check:receivership:us-ca:blockers",
        "npm run check:receivership:us-ca:production-blocker-issue",
        "npm run check:receivership:us-ca:setup-packet",
        "npm run check:receivership:us-ca:source-decision-ledger",
        "npm run check:receivership:us-ca:source-decision-ledger-template",
        "npm run check:receivership:us-ca:source-decision-packet",
        "npm run check:receivership:us-ca:source-activation",
        "npm run check:receivership:us-ca:source-health",
        "npm run check:receivership:us-ca:runbook",
        "npm run verify:receivership:us-ca",
        "npm run verify:receivership:us-ca:production"
      ]
    },
    {
      "accountUrl": "https://www.ontario.ca/page/search-court-cases-online",
      "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.",
      "affectedSegments": [
        {
          "country": "CA",
          "implemented": true,
          "segmentId": "ca-ontario-courts-public-portal",
          "status": "terms_review"
        }
      ],
      "billable": false,
      "blockerId": "blocker:ca-ontario-courts-public-portal",
      "category": "terms_review",
      "configuredEnv": {
        "RECEIVERSHIP_CA_ON_COURTS_IMPORT_PATH": false,
        "RECEIVERSHIP_CA_ON_COURTS_TERMS_APPROVED": false,
        "RECEIVERSHIP_CA_ON_COURTS_POLLING_ENABLED": false
      },
      "env": {
        "optional": [],
        "required": [
          "RECEIVERSHIP_CA_ON_COURTS_TERMS_APPROVED",
          "RECEIVERSHIP_CA_ON_COURTS_POLLING_ENABLED",
          "RECEIVERSHIP_CA_ON_COURTS_IMPORT_PATH"
        ]
      },
      "implemented": true,
      "legalReviewRequired": true,
      "missingRequiredEnv": [
        "RECEIVERSHIP_CA_ON_COURTS_TERMS_APPROVED",
        "RECEIVERSHIP_CA_ON_COURTS_POLLING_ENABLED",
        "RECEIVERSHIP_CA_ON_COURTS_IMPORT_PATH"
      ],
      "nextActions": [
        "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.",
        "Review Ontario portal access, public court-file access guidance, and redistribution constraints for automated monitoring.",
        "Confirm the approved workflow needed for Commercial List and other receivership candidate discovery; Ontario court search-tool output cannot be saved, reproduced, or distributed unless the review authorizes the workflow.",
        "Save authorized Ontario court case/order records as JSON, NDJSON, or CSV and point RECEIVERSHIP_CA_ON_COURTS_IMPORT_PATH at that file.",
        "Set RECEIVERSHIP_CA_ON_COURTS_TERMS_APPROVED=true and RECEIVERSHIP_CA_ON_COURTS_POLLING_ENABLED=true only after the review is complete."
      ],
      "onboarding": {
        "activationSteps": [
          "Review Ontario portal access, public court-file access guidance, and redistribution constraints for automated monitoring.",
          "Confirm the approved workflow needed for Commercial List and other receivership candidate discovery; Ontario court search-tool output cannot be saved, reproduced, or distributed unless the review authorizes the workflow.",
          "Save authorized Ontario court case/order records as JSON, NDJSON, or CSV and point RECEIVERSHIP_CA_ON_COURTS_IMPORT_PATH at that file.",
          "Set RECEIVERSHIP_CA_ON_COURTS_TERMS_APPROVED=true and RECEIVERSHIP_CA_ON_COURTS_POLLING_ENABLED=true only after the review is complete."
        ],
        "feeNotes": "Ontario portal search and document workflows may involve court-service rules and document access limits that must be reviewed before automation. The importer is for authorized court case/order records, not unauthorized saved search output.",
        "legalReviewRequired": true,
        "officialReferences": [
          {
            "label": "Ontario Courts Public Portal",
            "url": "https://www.ontario.ca/page/ontario-courts-public-portal"
          },
          {
            "label": "Ontario court file and document access guidance",
            "url": "https://www.ontario.ca/document/access-court-files-documents-and-exhibits"
          }
        ]
      },
      "ready": false,
      "readyWhen": [
        "All required GitHub Actions Secrets and Variables for this source are configured.",
        "Any required account, paid-search, cost-control, or terms-review step is approved.",
        "The filled source decision ledger marks this source approved and ready, validates with npm run check:receivership:us-ca:source-decision-ledger, and is supplied to the production-ready workflow as RECEIVERSHIP_US_CA_SOURCE_DECISION_LEDGER_GZIP_BASE64.",
        "Required first-party import files validate against public/data/receivership/us-ca-import-templates.json.",
        "The source health row is ok/fresh after the next US/Canada refresh.",
        "The row-producing source collector is implemented, not preflight-only.",
        "The strict production verifier exits successfully."
      ],
      "setupId": "setup:ca-on-court-source",
      "sourceHealth": {
        "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.",
        "freshness": "not_applicable",
        "observedAt": "2026-07-20T08:29:39.376Z",
        "sourceId": "ca-ontario-courts-public-portal",
        "status": "terms_review"
      },
      "sourceId": "ca-ontario-courts-public-portal",
      "sourceName": "Ontario Courts Public Portal",
      "sourceFreshness": "not_applicable",
      "sourceStatus": "terms_review",
      "status": "terms_review",
      "unblocksProductionCoverage": true,
      "verificationCommands": [
        "npm run fetch:receivership:us-ca",
        "npm run check:receivership:us-ca:config",
        "npm run check:receivership:us-ca:github-env",
        "npm run check:receivership:us-ca:import-templates",
        "npm run check:receivership:us-ca:production-env",
        "npm run check:receivership:us-ca:blockers",
        "npm run check:receivership:us-ca:production-blocker-issue",
        "npm run check:receivership:us-ca:setup-packet",
        "npm run check:receivership:us-ca:source-decision-ledger",
        "npm run check:receivership:us-ca:source-decision-ledger-template",
        "npm run check:receivership:us-ca:source-decision-packet",
        "npm run check:receivership:us-ca:source-activation",
        "npm run check:receivership:us-ca:source-health",
        "npm run check:receivership:us-ca:runbook",
        "npm run verify:receivership:us-ca",
        "npm run verify:receivership:us-ca:production"
      ]
    }
  ],
  "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",
  "productionReady": false,
  "remediationVersion": 1,
  "sourcePolicy": "first_party_only",
  "status": "blocked_external_setup",
  "summary": {
    "blocked": 5,
    "byStatus": { "skipped_credentials": 3, "terms_review": 2 },
    "ready": 0,
    "total": 5
  }
}
