{
  "standard": "lending-deal-package-readiness",
  "profiles_version": "0.7.0",
  "note": "Per-product requirement profiles (Std-10). A profile defines the MINIMUM fields a pack must PROVIDE (value not null) to claim oven-ready for that facility type, and the readiness MODE. Profile selection: the pack's the_ask.facility_type value selects the profile whose applies_to contains it; packs without a facility_type (or with an unmapped one) fall back to baseline-v0 (= the catalogue's required_fields). Enforced by the reference validator. readiness_mode: one_shot = a submission pack; continuous = the facility operates on recurring borrowing-base certificates AFTER onboarding — this pack covers onboarding; the recurring-certificate profile (cadence, certificate fields) is declared future work, not silently omitted.",
  "profiles": {
    "baseline-v0": {
      "status": "v0",
      "readiness_mode": "one_shot",
      "applies_to": [],
      "note": "The default profile — identical to the catalogue's required_fields. Applies when no facility_type is stated.",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "financials.statutory_accounts",
        "banking.bank_statements",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement"
      ]
    },
    "term-loan-v0": {
      "status": "v0",
      "readiness_mode": "one_shot",
      "applies_to": [
        "term_loan",
        "revolving_credit_facility",
        "overdraft"
      ],
      "note": "Core term/revolving cash facilities. Baseline + security position. (An RCF is operationally revolving but underwritten one-shot at this evidence level.)",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "financials.statutory_accounts",
        "banking.bank_statements",
        "security_assets.security_offered",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement"
      ]
    },
    "asset-finance-v0": {
      "status": "v0",
      "readiness_mode": "one_shot",
      "applies_to": [
        "asset_finance_hp",
        "asset_finance_lease",
        "sale_and_leaseback"
      ],
      "note": "Asset-secured products: the asset schedule is the credit.",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "financials.statutory_accounts",
        "banking.bank_statements",
        "security_assets.asset_schedule",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement"
      ]
    },
    "invoice-finance-v0": {
      "status": "draft",
      "readiness_mode": "continuous",
      "applies_to": [
        "invoice_discounting",
        "factoring"
      ],
      "note": "Receivables-backed revolving facilities. Onboarding pack = baseline + the debtor book. ONGOING lending runs on borrowing-base certificates — receivables.borrowing_base_certificate carries the latest; the periodic certificate MESSAGE is standardised in borrowing-base-certificate.schema.json (validate_bbc enforces the arithmetic).",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "financials.statutory_accounts",
        "banking.bank_statements",
        "receivables.aged_debtor_ledger",
        "receivables.debtor_concentration",
        "receivables.sample_invoices",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement"
      ]
    },
    "development-finance-v0": {
      "status": "draft",
      "readiness_mode": "one_shot",
      "applies_to": [
        "development_finance"
      ],
      "note": "Development finance: scheme economics, consent evidence, and a stated exit. Bridging now has its own exit-led profile (bridging-v0).",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "security_assets.property_address",
        "security_assets.valuation_report",
        "development.gdv",
        "development.total_build_costs",
        "development.drawdown_schedule",
        "development.planning_permission",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement",
        "development.development_appraisal",
        "the_ask.exit_strategy"
      ]
    },
    "mezzanine-v0": {
      "status": "draft",
      "readiness_mode": "one_shot",
      "applies_to": [
        "mezzanine_subordinated"
      ],
      "note": "Subordinated debt is priced off the whole capital stack — the stack is required evidence.",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "financials.statutory_accounts",
        "capital_structure.existing_debt_schedule",
        "capital_structure.senior_facility_terms",
        "capital_structure.ebitda",
        "capital_structure.enterprise_valuation",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement"
      ]
    },
    "bridging-v0": {
      "applies_to": [
        "bridging"
      ],
      "readiness_mode": "one_shot",
      "status": "draft",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "security_assets.property_address",
        "security_assets.valuation_report",
        "the_ask.exit_strategy",
        "the_ask.exit_evidence",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement"
      ],
      "note": "Bridging is exit-led: the security and the exit ARE the credit. Trading affordability evidence is secondary, so statutory accounts are not baseline-required here — the stated exit plus supporting evidence is."
    },
    "trade-finance-v0": {
      "applies_to": [
        "trade_finance"
      ],
      "readiness_mode": "continuous",
      "status": "draft",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "financials.statutory_accounts",
        "banking.bank_statements",
        "trade_finance.trade_direction",
        "trade_finance.supplier_details",
        "trade_finance.purchase_orders",
        "trade_finance.trade_cycle_days",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement"
      ],
      "note": "Transaction-cycle finance: the facility is underwritten once, then each funded transaction recurs (continuous mode). Facility readiness requires the trade shape and confirmed demand; per-transaction shipping/title documents recur after readiness and are deliberately NOT required here."
    },
    "merchant-cash-advance-v0": {
      "applies_to": [
        "merchant_cash_advance"
      ],
      "readiness_mode": "one_shot",
      "status": "draft",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "banking.bank_statements",
        "card_receipts.acquirer_name",
        "card_receipts.acquirer_statements",
        "card_receipts.monthly_card_turnover",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement"
      ],
      "note": "Receipts-linked advance: acquirer statements are the primary evidence — the advance is sized and repaid from card takings, not filed accounts."
    },
    "asset-based-lending-v0": {
      "applies_to": [
        "asset_based_lending"
      ],
      "readiness_mode": "continuous",
      "note": "ABL lends against MORE THAN ONE asset class. The borrowing base carries a receivables line and an inventory line, each with its own advance rate.",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "financials.statutory_accounts",
        "banking.bank_statements",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement",
        "receivables.aged_debtor_ledger",
        "receivables.debtor_concentration",
        "inventory.stock_on_hand_value",
        "inventory.stock_count_date",
        "inventory.nolv_rate",
        "inventory.stock_locations",
        "inventory.stock_insurance"
      ]
    },
    "inventory-finance-v0": {
      "applies_to": [
        "inventory_finance"
      ],
      "readiness_mode": "continuous",
      "note": "Stock finance. Advance rates are ordinarily struck against appraised NOLV, and enforceability turns on where the stock sits — hence the waiver of lien.",
      "required_fields": [
        "business_identity.company_name",
        "business_identity.company_number",
        "business_identity.legal_form",
        "financials.statutory_accounts",
        "banking.bank_statements",
        "the_ask.amount",
        "the_ask.purpose",
        "declarations.truth_statement",
        "inventory.stock_on_hand_value",
        "inventory.stock_count_date",
        "inventory.stock_valuation_basis",
        "inventory.nolv_rate",
        "inventory.stock_appraisal",
        "inventory.stock_locations",
        "inventory.stock_insurance"
      ]
    }
  },
  "taxonomy_only": {
    "note": "facility_type codes with no evidence profile — only the free-text 'other' remains; such packs fall back to baseline-v0.",
    "codes": [
      "other"
    ]
  },
  "overlays": {
    "sharia-v0": {
      "selected_by": {
        "field": "the_ask.finance_basis",
        "value": "sharia_compliant"
      },
      "required_fields": [
        "sharia_compliance.sharia_structure",
        "sharia_compliance.late_payment_charity_clause"
      ],
      "structure_required_fields": {
        "murabaha": [
          "sharia_compliance.disclosed_cost",
          "sharia_compliance.disclosed_markup",
          "sharia_compliance.ownership_transfer_evidence",
          "sharia_compliance.ownership_transfer_date",
          "sharia_compliance.sale_contract",
          "sharia_compliance.sale_contract_date"
        ],
        "tawarruq": [
          "sharia_compliance.disclosed_cost",
          "sharia_compliance.disclosed_markup",
          "sharia_compliance.ownership_transfer_evidence",
          "sharia_compliance.ownership_transfer_date",
          "sharia_compliance.sale_contract",
          "sharia_compliance.sale_contract_date"
        ],
        "ijara": [
          "sharia_compliance.ownership_transfer_evidence",
          "sharia_compliance.sale_contract",
          "sharia_compliance.funder_insurance_evidence"
        ],
        "ijara_muntahia_bittamleek": [
          "sharia_compliance.ownership_transfer_evidence",
          "sharia_compliance.sale_contract",
          "sharia_compliance.funder_insurance_evidence",
          "sharia_compliance.buyout_schedule"
        ],
        "diminishing_musharaka": [
          "sharia_compliance.co_ownership_agreement",
          "sharia_compliance.buyout_schedule"
        ],
        "musharaka": [
          "sharia_compliance.partnership_agreement",
          "sharia_compliance.capital_contribution_funder",
          "sharia_compliance.capital_contribution_customer",
          "sharia_compliance.profit_sharing_ratio",
          "sharia_compliance.loss_follows_capital"
        ],
        "mudaraba": [
          "sharia_compliance.partnership_agreement",
          "sharia_compliance.capital_contribution_funder",
          "sharia_compliance.profit_sharing_ratio",
          "sharia_compliance.loss_follows_capital"
        ],
        "wakala": [
          "sharia_compliance.agency_agreement",
          "sharia_compliance.agency_fee"
        ],
        "istisna": [
          "sharia_compliance.sale_contract",
          "sharia_compliance.specification_delivery_schedule",
          "sharia_compliance.disclosed_cost"
        ],
        "salam": [
          "sharia_compliance.sale_contract",
          "sharia_compliance.specification_delivery_schedule",
          "sharia_compliance.advance_payment_evidence"
        ],
        "other": []
      },
      "note": "OVERLAY, not a profile: adds requirements ON TOP of whichever facility profile applies, when the_ask.finance_basis is sharia_compliant. Base overlay requirements + the chosen structure's evidence checklist (structure_required_fields, keyed by sharia_compliance.sharia_structure). Every named structure carries its checklist; only 'other' has none — for an unlisted structure, the board's certificate defines what must be evidenced. The sector gate and the sequence rule are validator rules, not required fields."
    },
    "recruitment-v0": {
      "selected_by": {
        "field": "the_ask.performance_evidence_basis",
        "value": "approved_timesheet"
      },
      "required_fields": [
        "receivables.approved_unbilled_value",
        "receivables.approved_timesheet_count",
        "receivables.verified_dilution_rate",
        "receivables.verified_debtor_days"
      ],
      "note": "OVERLAY, not a profile: recruitment invoice finance is ordinary invoice discounting where the borrower is a staffing agency. The facility does not change - what changes is what can be PROVEN. The approved timesheet is proof of performance (the analogue of a POD), so dilution and debtor days - the two numbers this facility is priced on - must be measured from the system of record rather than declared. approved_unbilled_value is the funding gap itself: workers are paid weekly, clients pay on 30-60 day terms. Adapter: staffing_source.py (SIMULATED; live needs Bullhorn or Access partner API access)."
    },
    "haulage-v0": {
      "selected_by": {
        "field": "the_ask.performance_evidence_basis",
        "value": "proof_of_delivery"
      },
      "required_fields": [
        "receivables.pod_verified_value",
        "receivables.delivered_not_invoiced_value",
        "receivables.verified_dilution_rate",
        "receivables.verified_debtor_days"
      ],
      "note": "OVERLAY: the same shape as recruitment-v0, for transport. The TMS holds the POD, so the delivered-not-invoiced position and measured dilution/debtor days are available and therefore required. Retro-fits the vertical that shipped first, so haulage and recruitment are expressed the same way. Adapter: logistics_source.py (SIMULATED)."
    },
    "construction-v0": {
      "selected_by": {
        "field": "the_ask.performance_evidence_basis",
        "value": "certified_application"
      },
      "required_fields": [
        "receivables.certified_to_date_value",
        "receivables.applied_not_certified_value",
        "receivables.retention_held_value",
        "receivables.retention_release_next_date"
      ],
      "note": "OVERLAY: construction contracting. Two assets, two archetypes. Certified applications are proof of performance - the POD equivalent, since an independent party confirmed the work. Retentions are proof of FORWARD RECEIPT: the performance already happened, what is uncertain is when the cash arrives and whether the main contractor is still solvent. Both are required because a pack claiming this vertical while omitting retention would understate the trapped asset and overstate liquidity. Adapter: construction_source.py (SIMULATED; live needs Causeway/COINS/Procore)."
    }
  }
}
