{
  "metric": {
    "id": "financial.expense_ratio.nonlife.gdp",
    "slug": "expense-ratio-nonlife-gross",
    "name": "Expense of Management Ratio — Non-Life (to Gross Premium)",
    "metric_short_name": "expense ratio to gross premium",
    "unit": "%",
    "definition": "Expense of Management as a percentage of Gross Direct Premium, from IRDAI NL-20. Alternative denominator to net written premium — gives a different perspective on cost structure.",
    "higher_is_better": false,
    "metric_status": "regulatory_native",
    "regulatory_form": "NL-20",
    "applicable_to": [
      "general",
      "health"
    ]
  },
  "facts": [
    {
      "insurer_id": "tata-aig",
      "insurer_name": "Tata AIG General Insurance",
      "insurer_slug": "tata-aig",
      "value": 32,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "tata-aig",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "NL_20_064a4a37b4.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 37,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 36.13,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "cholamandalam-ms-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 31,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "zuno-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "care-health",
      "insurer_name": "Care Health Insurance",
      "insurer_slug": "care-health",
      "value": 33,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "care-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "consolidated.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 27.58,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "ecgc",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 29.5,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "galaxy-health",
      "insurer_name": "Galaxy Health Insurance",
      "insurer_slug": "galaxy-health",
      "value": 89.48,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "galaxy-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 43.92,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "Public_Disclosure_Q1_2026_27_1_a86ea579b6.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 31.8,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "hdfc-ergo-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "shriram-general",
      "insurer_name": "Shriram General Insurance",
      "insurer_slug": "shriram-general",
      "value": 33.69,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "shriram-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 39,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "go-digit-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "narayana-health-insurance",
      "insurer_name": "Narayana Health Insurance",
      "insurer_slug": "narayana-health-insurance",
      "value": 39,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "narayana-health-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "kshema-general",
      "insurer_name": "Kshema General Insurance",
      "insurer_slug": "kshema-general",
      "value": 170.62,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "kshema-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 31.77,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "national-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "pdfs/national-insurance/NL-20-ANALYTICAL RATIOS SCHEDULE.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row: Expense of Management to Gross Direct\nPremium Rati",
        "source_page": 1
      }
    },
    {
      "insurer_id": "raheja-qbe",
      "insurer_name": "Raheja QBE General Insurance",
      "insurer_slug": "raheja-qbe",
      "value": 38.6,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "raheja-qbe",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 29.22,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "public-disclosure-june-2026.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 29.03,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "reliance-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30_nl20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 29.5,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "navi-general",
      "insurer_name": "Navi General Insurance",
      "insurer_slug": "navi-general",
      "value": 35,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "navi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "universal-sompo",
      "insurer_name": "Universal Sompo General Insurance",
      "insurer_slug": "universal-sompo",
      "value": 28.71,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "universal-sompo",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "aditya-birla-health",
      "insurer_name": "Aditya Birla Health Insurance",
      "insurer_slug": "aditya-birla-health",
      "value": 35,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "aditya-birla-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 15.47,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "star-health",
      "insurer_name": "Star Health Insurance",
      "insurer_slug": "star-health",
      "value": 31.94,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "star-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 16.8,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "new-india-assurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "Public_Disclosure_Q1_FY26-27.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "liberty-general",
      "insurer_name": "Liberty General Insurance",
      "insurer_slug": "liberty-general",
      "value": 39,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "liberty-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "icici-lombard",
      "insurer_name": "ICICI Lombard General Insurance",
      "insurer_slug": "icici-lombard",
      "value": 28.8,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "icici-lombard",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30_nl-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "sbi-general",
      "insurer_name": "SBI General Insurance",
      "insurer_slug": "sbi-general",
      "value": 28.62,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "sbi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30_NL-1-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "manipal-cigna",
      "insurer_name": "ManipalCigna Health Insurance",
      "insurer_slug": "manipal-cigna",
      "value": 32,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "manipal-cigna",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "royal-sundaram",
      "insurer_name": "Royal Sundaram General Insurance",
      "insurer_slug": "royal-sundaram",
      "value": 28.7,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "royal-sundaram",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "niva-bupa",
      "insurer_name": "Niva Bupa Health Insurance",
      "insurer_slug": "niva-bupa",
      "value": 35.15,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "niva-bupa",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "2026-06-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-09",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "agriculture-insurance",
      "insurer_name": "Agriculture Insurance Company of India",
      "insurer_slug": "agriculture-insurance",
      "value": -129.47,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "agriculture-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "magma-general",
      "insurer_name": "Magma General Insurance",
      "insurer_slug": "magma-general",
      "value": 32.7,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "magma-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "united-india",
      "insurer_name": "United India Insurance",
      "insurer_slug": "united-india",
      "value": 27.33,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "united-india",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY26-27",
        "source_document": "textplor-vendor-2026-27-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "galaxy-health",
      "insurer_name": "Galaxy Health Insurance",
      "insurer_slug": "galaxy-health",
      "value": 62.56,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "Galaxy Health Insurance Co Ltd",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL_Q4_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "care-health",
      "insurer_name": "Care Health Insurance",
      "insurer_slug": "care-health",
      "value": 36,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "care-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "consolidated.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "universal-sompo",
      "insurer_name": "Universal Sompo General Insurance",
      "insurer_slug": "universal-sompo",
      "value": 26.73,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "universal-sompo",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL20_Q4_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "united-india",
      "insurer_name": "United India Insurance",
      "insurer_slug": "united-india",
      "value": 38.55,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "united-india",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL20_Q4_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 35.15,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "reliance-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "2026-03-31_nl20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "shriram-general",
      "insurer_name": "Shriram General Insurance",
      "insurer_slug": "shriram-general",
      "value": 31.86,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "shriram-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "2539dd48-dd39-4946-ae4f-66cd3e6e4654_SGI-_Disclosure_-20IVth20Qtr2025-26_11.06.2026_compressed.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "kshema-general",
      "insurer_name": "Kshema General Insurance",
      "insurer_slug": "kshema-general",
      "value": 9.4,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "kshema-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "nl-20-analytical-ratios.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-11-03",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 34,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL_20_Analytical_Ratios_cfb4d17cfd.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 41.66,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "Public_Disclosure_Q4_2025_26_d11ebbad81.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-11-03",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "magma-general",
      "insurer_name": "Magma General Insurance",
      "insurer_slug": "magma-general",
      "value": 32.7,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "magma-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL_Q4_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "manipal-cigna",
      "insurer_name": "ManipalCigna Health Insurance",
      "insurer_slug": "manipal-cigna",
      "value": 36,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "manipal-cigna",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "6578a708-d64f-06fd-0ff5-2abcaa77e533.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 36.37,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 29.98,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "ecgc",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "FY2025-26_Q4.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "narayana-health-insurance",
      "insurer_name": "Narayana Health Insurance",
      "insurer_slug": "narayana-health-insurance",
      "value": 64,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "narayana-health-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "Financial_Report_Q4_final_V4_1_257cf42524.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-30",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 15.37,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL-20_NL_20_c37fca074c.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 64.06,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "national-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "pdfs/national-insurance/NL-20 ANALYTICAL RATIOS.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row: Expense of Management to Gross Direct\nPremium Rati",
        "source_page": 1
      }
    },
    {
      "insurer_id": "sbi-general",
      "insurer_name": "SBI General Insurance",
      "insurer_slug": "sbi-general",
      "value": 23.68,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "sbi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL_1_20_Financial_Statements_3cb9d24a0a.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "icici-lombard",
      "insurer_name": "ICICI Lombard General Insurance",
      "insurer_slug": "icici-lombard",
      "value": 32.1,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "icici-lombard",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "royal-sundaram",
      "insurer_name": "Royal Sundaram General Insurance",
      "insurer_slug": "royal-sundaram",
      "value": 30.5,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "royal-sundaram",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL-20_Annual_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 31.22,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "public-disclosure-march-2026.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "navi-general",
      "insurer_name": "Navi General Insurance",
      "insurer_slug": "navi-general",
      "value": 40,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "navi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "2025-2026_Jan-Mar.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 34.47,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "cholamandalam-ms-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "Public_Disclosure_for_Q4_FY_2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-11-03",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "aditya-birla-health",
      "insurer_name": "Aditya Birla Health Insurance",
      "insurer_slug": "aditya-birla-health",
      "value": 37,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "aditya-birla-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL_Q4_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 41.85,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "go-digit-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL20_Q4_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 21.33,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "new-india-assurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "Public_Disclosure_Q4_FY25-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 29,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "FY2025-26_Q4_NL20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 33.61,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "hdfc-ergo-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "2026-03-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "agriculture-insurance",
      "insurer_name": "Agriculture Insurance Company of India",
      "insurer_slug": "agriculture-insurance",
      "value": 6.73,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "agriculture-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "2025-26_Q4.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 33,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "zuno-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL_20_Analytical_Ratios_Q4_FY_2025_26_03330c0fa2.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-11-03",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "star-health",
      "insurer_name": "Star Health Insurance",
      "insurer_slug": "star-health",
      "value": 30.37,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "star-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "consolidated.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "niva-bupa",
      "insurer_name": "Niva Bupa Health Insurance",
      "insurer_slug": "niva-bupa",
      "value": 28.49,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "niva-bupa",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "2026-03-31.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-09",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "raheja-qbe",
      "insurer_name": "Raheja QBE General Insurance",
      "insurer_slug": "raheja-qbe",
      "value": 24.6,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "raheja-qbe",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL20_Q4_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "tata-aig",
      "insurer_name": "Tata AIG General Insurance",
      "insurer_slug": "tata-aig",
      "value": 33,
      "unit": "%",
      "reporting_period_label": "Q4 FY25-26",
      "reporting_period_end": "2026-03-31",
      "provenance": {
        "reported_by": "tata-aig",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY25-26",
        "source_document": "NL20_Q4_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "niva-bupa",
      "insurer_name": "Niva Bupa Health Insurance",
      "insurer_slug": "niva-bupa",
      "value": 33.1,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "niva-bupa",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "2025-12-31.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-09",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "tata-aig",
      "insurer_name": "Tata AIG General Insurance",
      "insurer_slug": "tata-aig",
      "value": 31,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "tata-aig",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL20_Q3_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 28.42,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "public-disclosure-december-2025.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 34.95,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "cholamandalam-ms-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "2025-12-31.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 43.44,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "go-digit-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL20_Q3_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "magma-general",
      "insurer_name": "Magma General Insurance",
      "insurer_slug": "magma-general",
      "value": 33.55,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "magma-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL_Q3_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 39,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL_20_Analytical_Ratios_ddb01a241d.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-27",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "sbi-general",
      "insurer_name": "SBI General Insurance",
      "insurer_slug": "sbi-general",
      "value": 30.09,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "sbi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL_1_to_46_Consolidated_Public_Disclosures_56a1d8eb74.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-27",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 37,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "FY2025-26_Q3_NL20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 33,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "zuno-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "navi-general",
      "insurer_name": "Navi General Insurance",
      "insurer_slug": "navi-general",
      "value": 41,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "navi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "2025-2026_Oct-Dec.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 40.33,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "reliance-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "2025-12-31_nl20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 24.1,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "royal-sundaram",
      "insurer_name": "Royal Sundaram General Insurance",
      "insurer_slug": "royal-sundaram",
      "value": 36,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "royal-sundaram",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL20_Q3_FY25-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 23.98,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "new-india-assurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "combined.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "agriculture-insurance",
      "insurer_name": "Agriculture Insurance Company of India",
      "insurer_slug": "agriculture-insurance",
      "value": 8.2,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "agriculture-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "2025-26_Q3.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "star-health",
      "insurer_name": "Star Health Insurance",
      "insurer_slug": "star-health",
      "value": 33.95,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "star-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "2025-2026_Q3_PD_FY_26_Q3_5aa20779c8.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "united-india",
      "insurer_name": "United India Insurance",
      "insurer_slug": "united-india",
      "value": 46.95,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "united-india",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL20_Q3_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 40.39,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "Public_Disclosure_Q3_2025_26_dcc0682a64.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "kshema-general",
      "insurer_name": "Kshema General Insurance",
      "insurer_slug": "kshema-general",
      "value": 25.41,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "kshema-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "nl-20-analytical-ratios.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-27",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 31.09,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "national-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "pdfs/national-insurance/NL-20 ANALYTICAL RATIOS.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row: Expense of Management to Gross Direct\nPremium Rati",
        "source_page": 1
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 34.73,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "hdfc-ergo-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "2025-12-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "aditya-birla-health",
      "insurer_name": "Aditya Birla Health Insurance",
      "insurer_slug": "aditya-birla-health",
      "value": 40,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "aditya-birla-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL_Q3_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "universal-sompo",
      "insurer_name": "Universal Sompo General Insurance",
      "insurer_slug": "universal-sompo",
      "value": 27.38,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "universal-sompo",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL20_Q3_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "manipal-cigna",
      "insurer_name": "ManipalCigna Health Insurance",
      "insurer_slug": "manipal-cigna",
      "value": 42,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "manipal-cigna",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "a8d8123b-6497-0523-6a14-c8de5b73c378.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "care-health",
      "insurer_name": "Care Health Insurance",
      "insurer_slug": "care-health",
      "value": 36,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "care-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "consolidated.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "icici-lombard",
      "insurer_name": "ICICI Lombard General Insurance",
      "insurer_slug": "icici-lombard",
      "value": 26.47,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "icici-lombard",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 28.8,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "ecgc",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL_till_now_fy2526_q3.pdf",
        "source_url": "https://main.ecgc.in/english/wp-content/uploads/2026/01/NL_till_now_fy2526_q3.pdf",
        "extracted_by": "irw_adapter v1 (manual, single-segment filing)",
        "last_verified": "2026-10-26",
        "extraction_note": "ECGC reports NL-20 under a single 'Miscellaneous Segment' column (credit insurer, no standard multi-segment split). 'For the Period ended' (standalone-quarter) column used, not the cumulative 'Up to Period' column. gdp_to_networth_ratio stored x100 (source shows a bare 'Times' multiple, e.g. 0.05) matching today's established project convention for that metric; technical_reserves_to_premium_ratio stored raw (also a 'Times' multiple in the source, but matches the convention already used for other insurers' values of this specific metric, e.g. acko-general ~1-2). Pulled directly from ECGC's own site 2026-10-26.",
        "source_page": 26
      }
    },
    {
      "insurer_id": "narayana-health-insurance",
      "insurer_name": "Narayana Health Insurance",
      "insurer_slug": "narayana-health-insurance",
      "value": 93,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "narayana-health-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "V2_NHIL_NL_Form_Q3_FY_26_updated_734baca923.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 54.54,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL-20_nl_20_60fb7bf603.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "shriram-general",
      "insurer_name": "Shriram General Insurance",
      "insurer_slug": "shriram-general",
      "value": 29.83,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "shriram-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "a6a29727-1dfc-44c2-905a-4d3d686632c0_SGI-_Disclosure_-20IIIrd20Qtr20202025-26_revised2011.06.2026.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "raheja-qbe",
      "insurer_name": "Raheja QBE General Insurance",
      "insurer_slug": "raheja-qbe",
      "value": 56.6,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "raheja-qbe",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL20_Q3_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "galaxy-health",
      "insurer_name": "Galaxy Health Insurance",
      "insurer_slug": "galaxy-health",
      "value": 86.68,
      "unit": "%",
      "reporting_period_label": "Q3 FY25-26",
      "reporting_period_end": "2025-12-31",
      "provenance": {
        "reported_by": "Galaxy Health Insurance Co Ltd",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY25-26",
        "source_document": "NL_Q3_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "raheja-qbe",
      "insurer_name": "Raheja QBE General Insurance",
      "insurer_slug": "raheja-qbe",
      "value": 72.7,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "raheja-qbe",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL20_Q2_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 27.82,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "hdfc-ergo-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "2025-09-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "navi-general",
      "insurer_name": "Navi General Insurance",
      "insurer_slug": "navi-general",
      "value": 44,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "navi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "2025-2026_Jul-Sep.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "aditya-birla-health",
      "insurer_name": "Aditya Birla Health Insurance",
      "insurer_slug": "aditya-birla-health",
      "value": 37,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "aditya-birla-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL_Q2_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 27.89,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "new-india-assurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "combined.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 14.6,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL-20_NL_20_f45d225c11.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "tata-aig",
      "insurer_name": "Tata AIG General Insurance",
      "insurer_slug": "tata-aig",
      "value": 31,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "tata-aig",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL20_Q2_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 35.06,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "cholamandalam-ms-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "2025-09-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "universal-sompo",
      "insurer_name": "Universal Sompo General Insurance",
      "insurer_slug": "universal-sompo",
      "value": 21.51,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "universal-sompo",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL20_Q2_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "shriram-general",
      "insurer_name": "Shriram General Insurance",
      "insurer_slug": "shriram-general",
      "value": 30.44,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "shriram-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "a789d0e8-aba7-4611-837e-5ba8ea989ccb_SGI-_Disclosure_-20IInd20Qtr_2025-26_Revised_11.06.2026.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "manipal-cigna",
      "insurer_name": "ManipalCigna Health Insurance",
      "insurer_slug": "manipal-cigna",
      "value": 46,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "manipal-cigna",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "18c61062-2908-01f2-4553-5c2e3b89773b.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 32,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "FY2025-26_Q2_NL20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 26.12,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "reliance-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "2025-09-30_nl20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "star-health",
      "insurer_name": "Star Health Insurance",
      "insurer_slug": "star-health",
      "value": 32.56,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "star-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "2025-2026_Q2_Website_PD_Q2_FY_26_daddbf253a.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 35.93,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "Public_Disclosure_Q2_2025_26_e4d63b4702.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "united-india",
      "insurer_name": "United India Insurance",
      "insurer_slug": "united-india",
      "value": 52.2,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "united-india",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL20_Q2_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "sbi-general",
      "insurer_name": "SBI General Insurance",
      "insurer_slug": "sbi-general",
      "value": 25.42,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "sbi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL_1_20_Financial_Statements_8ee7d662e7.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 41.63,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "go-digit-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL20_Q2_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "galaxy-health",
      "insurer_name": "Galaxy Health Insurance",
      "insurer_slug": "galaxy-health",
      "value": 66.99,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "Galaxy Health Insurance Co Ltd",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL_Q2_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "kshema-general",
      "insurer_name": "Kshema General Insurance",
      "insurer_slug": "kshema-general",
      "value": 476.74,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "kshema-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "nl-20-analytical-ratios.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-27",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "narayana-health-insurance",
      "insurer_name": "Narayana Health Insurance",
      "insurer_slug": "narayana-health-insurance",
      "value": 93.27,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "narayana-health-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL_Form_Q2_26_26_0b558063f1_Updated_1_d6198217c2.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 37,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "zuno-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "care-health",
      "insurer_name": "Care Health Insurance",
      "insurer_slug": "care-health",
      "value": 35,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "care-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "consolidated.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 32.31,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "ecgc",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL_till_now_fy2526_q2.pdf",
        "source_url": "https://main.ecgc.in/english/wp-content/themes/pcwebecgc/images/pcECGPagePDF/Public/2025-2026/secondQ/NL_till_now_fy2526_q2.pdf",
        "extracted_by": "irw_adapter v1 (manual, single-segment filing)",
        "last_verified": "2026-10-26",
        "extraction_note": "ECGC reports NL-20 under a single 'Miscellaneous Segment' column (credit insurer, no standard multi-segment split). 'For the Period ended' (standalone-quarter) column used, not the cumulative 'Up to Period' column. gdp_to_networth_ratio stored x100 (source shows a bare 'Times' multiple, e.g. 0.05) matching today's established project convention for that metric; technical_reserves_to_premium_ratio stored raw (also a 'Times' multiple in the source, but matches the convention already used for other insurers' values of this specific metric, e.g. acko-general ~1-2). Pulled directly from ECGC's own site 2026-10-26.",
        "source_page": 26
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 39,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL_20_Analytical_Ratios_7f02ea48b1.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-27",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 23.54,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "public-disclosure-september-2025.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "agriculture-insurance",
      "insurer_name": "Agriculture Insurance Company of India",
      "insurer_slug": "agriculture-insurance",
      "value": 2.62,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "agriculture-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "2025-26_Q2.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "icici-lombard",
      "insurer_name": "ICICI Lombard General Insurance",
      "insurer_slug": "icici-lombard",
      "value": 31.9,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "icici-lombard",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 24.36,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "2025-09-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "magma-general",
      "insurer_name": "Magma General Insurance",
      "insurer_slug": "magma-general",
      "value": 31.86,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "magma-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "NL_Q2_FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 42.8,
      "unit": "%",
      "reporting_period_label": "Q2 FY25-26",
      "reporting_period_end": "2025-09-30",
      "provenance": {
        "reported_by": "national-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY25-26",
        "source_document": "pdfs/national-insurance/NL-20 ANALYTICAL RATIOS.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row: Expense of Management to Gross Direct\nPremium Rati",
        "source_page": 1
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 31.03,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "2025-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "sbi-general",
      "insurer_name": "SBI General Insurance",
      "insurer_slug": "sbi-general",
      "value": 27.74,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "sbi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "care-health",
      "insurer_name": "Care Health Insurance",
      "insurer_slug": "care-health",
      "value": 34,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "care-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "consolidated.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 29.15,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "reliance-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "2025-06-30_nl20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "royal-sundaram",
      "insurer_name": "Royal Sundaram General Insurance",
      "insurer_slug": "royal-sundaram",
      "value": 28,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "royal-sundaram",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "icici-lombard",
      "insurer_name": "ICICI Lombard General Insurance",
      "insurer_slug": "icici-lombard",
      "value": 27.8,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "icici-lombard",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "2025-06-30_nl-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 13.33,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "NL-20_nl_20_30_06_2025_7593dda441.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "kshema-general",
      "insurer_name": "Kshema General Insurance",
      "insurer_slug": "kshema-general",
      "value": 18.23,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "kshema-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "united-india",
      "insurer_name": "United India Insurance",
      "insurer_slug": "united-india",
      "value": 25.78,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "united-india",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 35.01,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "go-digit-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "galaxy-health",
      "insurer_name": "Galaxy Health Insurance",
      "insurer_slug": "galaxy-health",
      "value": 272.91,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "galaxy-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "universal-sompo",
      "insurer_name": "Universal Sompo General Insurance",
      "insurer_slug": "universal-sompo",
      "value": 24.9,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "universal-sompo",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "navi-general",
      "insurer_name": "Navi General Insurance",
      "insurer_slug": "navi-general",
      "value": 25,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "navi-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "manipal-cigna",
      "insurer_name": "ManipalCigna Health Insurance",
      "insurer_slug": "manipal-cigna",
      "value": 33,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "manipal-cigna",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 38,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "zuno-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "2025-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 15.14,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "new-india-assurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "2025-06-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 34,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "2025-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "raheja-qbe",
      "insurer_name": "Raheja QBE General Insurance",
      "insurer_slug": "raheja-qbe",
      "value": 61.1,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "raheja-qbe",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "aditya-birla-health",
      "insurer_name": "Aditya Birla Health Insurance",
      "insurer_slug": "aditya-birla-health",
      "value": 37,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "aditya-birla-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "niva-bupa",
      "insurer_name": "Niva Bupa Health Insurance",
      "insurer_slug": "niva-bupa",
      "value": 37.99,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "niva-bupa",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "2025-06-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-09",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 26.21,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "public-disclosure-june-2025.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "shriram-general",
      "insurer_name": "Shriram General Insurance",
      "insurer_slug": "shriram-general",
      "value": 31.74,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "shriram-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "magma-general",
      "insurer_name": "Magma General Insurance",
      "insurer_slug": "magma-general",
      "value": 29.97,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "magma-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "star-health",
      "insurer_name": "Star Health Insurance",
      "insurer_slug": "star-health",
      "value": 32.86,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "star-health",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 27.41,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "ecgc",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 31,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 31.66,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "hdfc-ergo",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "Annexure-IV-All-Forms-Q1-FY2025-26.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "liberty-general",
      "insurer_name": "Liberty General Insurance",
      "insurer_slug": "liberty-general",
      "value": 37,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "liberty-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 34.76,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "cholamandalam-ms-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "2025-06-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 35.61,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "Public_Disclosure_Q1_2025_26_88410d1158.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 27.08,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "national-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "agriculture-insurance",
      "insurer_name": "Agriculture Insurance Company of India",
      "insurer_slug": "agriculture-insurance",
      "value": 120,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "agriculture-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "tata-aig",
      "insurer_name": "Tata AIG General Insurance",
      "insurer_slug": "tata-aig",
      "value": 31,
      "unit": "%",
      "reporting_period_label": "Q1 FY25-26",
      "reporting_period_end": "2025-06-30",
      "provenance": {
        "reported_by": "tata-aig",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY25-26",
        "source_document": "textplor-vendor-2025-26-Q1.xlsx",
        "source_url": null,
        "extracted_by": "EverythingInsurance Research (vendor-compiled dataset, textplor.com, offline 2026-10-26)",
        "last_verified": "2026-10-26",
        "extraction_note": "Vendor-aggregated dataset, not pulled directly from insurer's own public disclosure page. Gap-fill only (no existing value for this insurer/metric/period). Cross-check against insurer's own source queued separately -- see project-log/quarterly-update-runbook.md.",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 32.64,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "cholamandalam-ms-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "2025-03-31.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 39.34,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "go-digit-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "kshema-general",
      "insurer_name": "Kshema General Insurance",
      "insurer_slug": "kshema-general",
      "value": 86.85,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "kshema-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "nl-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 18.05,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "new-india-assurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "2025-03-31.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 28.51,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "NL-20_NL_20_F_31_3_25_1cdf5efa72.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 28.79,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "public-disclosure-march-2025.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 30.71,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "hdfc-ergo",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "Annexure-IV-All-Forms-Q4-FY2024-25.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 41,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "2025-03-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 39,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "zuno-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "2025-03-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 32,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "FY2024-25_Q4.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 35.12,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 45.04,
      "unit": "%",
      "reporting_period_label": "Q4 FY24-25",
      "reporting_period_end": "2025-03-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY24-25",
        "source_document": "Public_Disclosure_Q4_2024_25_b9e980b08e.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 46.66,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "Public_Disclosure_Q3_2024_25_fe3c0d6ef7.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 39,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "2024-12-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 36.53,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "cholamandalam-ms-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "2024-12-31.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 19.37,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "new-india-assurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "2024-12-31.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 32.29,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "hdfc-ergo-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "2024-12-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 29,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "FY2024-25_Q3.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 42.43,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "go-digit-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 26.18,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "public-disclosure-december-2024.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 21.43,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "2024-12-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 15.88,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "NL-20_NL_20_31_12_24_14daea6dd1.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 37,
      "unit": "%",
      "reporting_period_label": "Q3 FY24-25",
      "reporting_period_end": "2024-12-31",
      "provenance": {
        "reported_by": "zuno-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY24-25",
        "source_document": "2024-12-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 32.39,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "cholamandalam-ms-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "2024-09-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 22.49,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "hdfc-ergo-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "2024-09-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 44,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "zuno-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "2024-09-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 52.63,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "Public_Disclosure_Q2_2024_25_2_8bc4985a15.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 22.3,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "2024-09-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 21.37,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "NL-20_NL_20_30_09_24_90a345be4d.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 42.35,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "go-digit-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "NL-20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 27,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "FY2024-25_Q2.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 21.19,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "new-india-assurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "2024-09-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 21.68,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "public-disclosure-september-2024.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 39,
      "unit": "%",
      "reporting_period_label": "Q2 FY24-25",
      "reporting_period_end": "2024-09-30",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY24-25",
        "source_document": "2024-09-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 28.52,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "hdfc-ergo-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "2024-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 43,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "zuno-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "2024-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 27.05,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "2024-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 40,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "2024-06-30_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 46.27,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "Public_Disclosure_Q1_2024_25_1c7cda3d75.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "niva-bupa",
      "insurer_name": "Niva Bupa Health Insurance",
      "insurer_slug": "niva-bupa",
      "value": 41,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "niva-bupa",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "2024-06-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-09",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 26,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "FY2024-25_Q1.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 24.92,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "public-disclosure-june-2024.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 17.77,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "new-india-assurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "2024-06-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 14.84,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "NL-20_NL_FORMS_20_30_06_2024_f7748ef4f3.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 33.65,
      "unit": "%",
      "reporting_period_label": "Q1 FY24-25",
      "reporting_period_end": "2024-06-30",
      "provenance": {
        "reported_by": "cholamandalam-ms-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY24-25",
        "source_document": "2024-06-30.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 21.81,
      "unit": "%",
      "reporting_period_label": "Q4 FY23-24",
      "reporting_period_end": "2024-03-31",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY23-24",
        "source_document": "public-disclosure-march-2024.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "kshema-general",
      "insurer_name": "Kshema General Insurance",
      "insurer_slug": "kshema-general",
      "value": 3,
      "unit": "%",
      "reporting_period_label": "Q4 FY23-24",
      "reporting_period_end": "2024-03-31",
      "provenance": {
        "reported_by": "kshema-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY23-24",
        "source_document": "nl20.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 3.46,
      "unit": "%",
      "reporting_period_label": "Q4 FY23-24",
      "reporting_period_end": "2024-03-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY23-24",
        "source_document": "NL-20_NL_20_c094e19e28.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 24.22,
      "unit": "%",
      "reporting_period_label": "Q4 FY23-24",
      "reporting_period_end": "2024-03-31",
      "provenance": {
        "reported_by": "hdfc-ergo-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY23-24",
        "source_document": "2024-03-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 26.02,
      "unit": "%",
      "reporting_period_label": "Q4 FY23-24",
      "reporting_period_end": "2024-03-31",
      "provenance": {
        "reported_by": "bajaj-allianz-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY23-24",
        "source_document": "2024-03-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 28,
      "unit": "%",
      "reporting_period_label": "Q4 FY23-24",
      "reporting_period_end": "2024-03-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY23-24",
        "source_document": "FY2023-24_Q4.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 48.53,
      "unit": "%",
      "reporting_period_label": "Q4 FY23-24",
      "reporting_period_end": "2024-03-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY23-24",
        "source_document": "Public_Disclosure_Q4_2023_24_1_7583ccec37.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 40,
      "unit": "%",
      "reporting_period_label": "Q4 FY23-24",
      "reporting_period_end": "2024-03-31",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY23-24",
        "source_document": "2024-03-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 14.33,
      "unit": "%",
      "reporting_period_label": "Q3 FY23-24",
      "reporting_period_end": "2023-12-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY23-24",
        "source_document": "NL-20_NL_forms_20_1127648d60.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 59.53,
      "unit": "%",
      "reporting_period_label": "Q3 FY23-24",
      "reporting_period_end": "2023-12-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY23-24",
        "source_document": "Public_Disclosure_Q3_2023-24.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 21.49,
      "unit": "%",
      "reporting_period_label": "Q3 FY23-24",
      "reporting_period_end": "2023-12-31",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY23-24",
        "source_document": "public-disclosure-december-2023.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 42,
      "unit": "%",
      "reporting_period_label": "Q3 FY23-24",
      "reporting_period_end": "2023-12-31",
      "provenance": {
        "reported_by": "zurich-kotak",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY23-24",
        "source_document": "2023-12-31_NL-20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-11",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 28,
      "unit": "%",
      "reporting_period_label": "Q3 FY23-24",
      "reporting_period_end": "2023-12-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY23-24",
        "source_document": "FY2023-24_Q3.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 60.86,
      "unit": "%",
      "reporting_period_label": "Q2 FY23-24",
      "reporting_period_end": "2023-09-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY23-24",
        "source_document": "Public_Disclosure_Q2_2023-24.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 20.97,
      "unit": "%",
      "reporting_period_label": "Q2 FY23-24",
      "reporting_period_end": "2023-09-30",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY23-24",
        "source_document": "public-disclosure-september-2023.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 28,
      "unit": "%",
      "reporting_period_label": "Q2 FY23-24",
      "reporting_period_end": "2023-09-30",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY23-24",
        "source_document": "FY2023-24_Q2.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 16.89,
      "unit": "%",
      "reporting_period_label": "Q2 FY23-24",
      "reporting_period_end": "2023-09-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY23-24",
        "source_document": "NL-20_NL_20_Analytical_Ratios_07_12_2023_f7e37468ea.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 18.9,
      "unit": "%",
      "reporting_period_label": "Q1 FY23-24",
      "reporting_period_end": "2023-06-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY23-24",
        "source_document": "NL-20_NL_20_Analytical_Ratios_23_08_2023_0c819ed188.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 20.86,
      "unit": "%",
      "reporting_period_label": "Q1 FY23-24",
      "reporting_period_end": "2023-06-30",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY23-24",
        "source_document": "public-disclosure-june-2023.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 52.19,
      "unit": "%",
      "reporting_period_label": "Q1 FY23-24",
      "reporting_period_end": "2023-06-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY23-24",
        "source_document": "Public_Disclosure_Q1_2023-24.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 34,
      "unit": "%",
      "reporting_period_label": "Q1 FY23-24",
      "reporting_period_end": "2023-06-30",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY23-24",
        "source_document": "FY2023-24_Q1.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 68.02,
      "unit": "%",
      "reporting_period_label": "Q4 FY22-23",
      "reporting_period_end": "2023-03-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY22-23",
        "source_document": "Public_Disclosure_Q4_2022_23_1_c8ef63f824.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 30,
      "unit": "%",
      "reporting_period_label": "Q4 FY22-23",
      "reporting_period_end": "2023-03-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY22-23",
        "source_document": "FY2022-23_Q4.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 33.55,
      "unit": "%",
      "reporting_period_label": "Q4 FY22-23",
      "reporting_period_end": "2023-03-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY22-23",
        "source_document": "NL-20_FY_2022_23_NL_NL_20_ANALYTICAL_RATIOS_SCHEDULE_Analytical_Ratios_Fourth_Quarter_27bc713655.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 17.99,
      "unit": "%",
      "reporting_period_label": "Q4 FY22-23",
      "reporting_period_end": "2023-03-31",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY22-23",
        "source_document": "public-disclosure-march-2023.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 49.78,
      "unit": "%",
      "reporting_period_label": "Q3 FY22-23",
      "reporting_period_end": "2022-12-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY22-23",
        "source_document": "Public_Disclosure_-_Q3_-_FY_2022-23.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 30,
      "unit": "%",
      "reporting_period_label": "Q3 FY22-23",
      "reporting_period_end": "2022-12-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY22-23",
        "source_document": "FY2022-23_Q3.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 29.36,
      "unit": "%",
      "reporting_period_label": "Q3 FY22-23",
      "reporting_period_end": "2022-12-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY22-23",
        "source_document": "NL-20_FY_2022_23_NL_NL_20_ANALYTICAL_RATIOS_SCHEDULE_Analytical_Ratios_Third_Quarter_9b832690fb.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 20.57,
      "unit": "%",
      "reporting_period_label": "Q3 FY22-23",
      "reporting_period_end": "2022-12-31",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY22-23",
        "source_document": "public-disclosure-december-2022.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 46.48,
      "unit": "%",
      "reporting_period_label": "Q2 FY22-23",
      "reporting_period_end": "2022-09-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY22-23",
        "source_document": "public-disclosure_-q2-fy-2022-23.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 19.35,
      "unit": "%",
      "reporting_period_label": "Q2 FY22-23",
      "reporting_period_end": "2022-09-30",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY22-23",
        "source_document": "public-disclosure-september-2022.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 28,
      "unit": "%",
      "reporting_period_label": "Q2 FY22-23",
      "reporting_period_end": "2022-09-30",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY22-23",
        "source_document": "FY2022-23_Q2.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 79.22,
      "unit": "%",
      "reporting_period_label": "Q2 FY22-23",
      "reporting_period_end": "2022-09-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY22-23",
        "source_document": "NL-20_FY_2022_23_NL_NL_20_ANALYTICAL_RATIOS_SCHEDULE_Analytical_Ratios_Second_Quarter_e1dd2b8e82.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 5.87,
      "unit": "%",
      "reporting_period_label": "Q1 FY22-23",
      "reporting_period_end": "2022-06-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY22-23",
        "source_document": "NL-20_FY_2022_23_NL_20_09_09_2022_e7ac35d41f.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 20.02,
      "unit": "%",
      "reporting_period_label": "Q1 FY22-23",
      "reporting_period_end": "2022-06-30",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY22-23",
        "source_document": "public-disclosure-june-2022.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 56.15,
      "unit": "%",
      "reporting_period_label": "Q1 FY22-23",
      "reporting_period_end": "2022-06-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY22-23",
        "source_document": "public-disclosure-q1-fy-2022-23.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 40,
      "unit": "%",
      "reporting_period_label": "Q1 FY22-23",
      "reporting_period_end": "2022-06-30",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY22-23",
        "source_document": "FY2022-23_Q1.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 19.79,
      "unit": "%",
      "reporting_period_label": "Q4 FY21-22",
      "reporting_period_end": "2022-03-31",
      "provenance": {
        "reported_by": "iffco-tokio",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY21-22",
        "source_document": "public-disclosure-march-2022.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 29,
      "unit": "%",
      "reporting_period_label": "Q4 FY21-22",
      "reporting_period_end": "2022-03-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY21-22",
        "source_document": "FY2021-22_Q4.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 40.17,
      "unit": "%",
      "reporting_period_label": "Q4 FY21-22",
      "reporting_period_end": "2022-03-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY21-22",
        "source_document": "NL-20_NL_20_9b687bd243.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-29",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 44.02,
      "unit": "%",
      "reporting_period_label": "Q4 FY21-22",
      "reporting_period_end": "2022-03-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY21-22",
        "source_document": "Public_Disclosure_Q4_FY_2021_22_591d355128.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 30.26,
      "unit": "%",
      "reporting_period_label": "Q3 FY21-22",
      "reporting_period_end": "2021-12-31",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY21-22",
        "source_document": "NL-20_NL_20_Analytical_Ratios_50dd50d624.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 29,
      "unit": "%",
      "reporting_period_label": "Q3 FY21-22",
      "reporting_period_end": "2021-12-31",
      "provenance": {
        "reported_by": "generali-central",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY21-22",
        "source_document": "FY2021-22_Q3.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-26",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 44.44,
      "unit": "%",
      "reporting_period_label": "Q3 FY21-22",
      "reporting_period_end": "2021-12-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q3 FY21-22",
        "source_document": "public-disclosure-q3-fy-2021-22.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 49.94,
      "unit": "%",
      "reporting_period_label": "Q2 FY21-22",
      "reporting_period_end": "2021-09-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY21-22",
        "source_document": "public-disclosure-q2-fy-2021-22.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 21.71,
      "unit": "%",
      "reporting_period_label": "Q2 FY21-22",
      "reporting_period_end": "2021-09-30",
      "provenance": {
        "reported_by": "oriental-insurance",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q2 FY21-22",
        "source_document": "NL-20_NL_20_a13e1deb61.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-28",
        "extraction_note": "NL-20 row-format label match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 67.23,
      "unit": "%",
      "reporting_period_label": "Q1 FY21-22",
      "reporting_period_end": "2021-06-30",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q1 FY21-22",
        "source_document": "public-disclosure-q1-fy-2021-22.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 36.71,
      "unit": "%",
      "reporting_period_label": "Q4 FY20-21",
      "reporting_period_end": "2021-03-31",
      "provenance": {
        "reported_by": "acko-general",
        "regulatory_form": "NL-20-ANALYTICAL-RATIOS",
        "reporting_period": "Q4 FY20-21",
        "source_document": "public-disclosure-q4-fy-2020-21.pdf",
        "source_url": null,
        "extracted_by": "irw_adapter v1",
        "last_verified": "2026-10-31",
        "extraction_note": "NL-20 text-fallback line match: expense_gdp",
        "source_page": null
      }
    }
  ],
  "meta": {
    "generated_at": "2026-11-15",
    "source": "IRDAI public disclosures",
    "api_version": "v1",
    "licence": "Facts derived from IRDAI public disclosure data. Republication with attribution permitted subject to applicable Indian law."
  }
}