{
  "metric": {
    "id": "financial.technical_reserves_to_premium_ratio",
    "slug": "technical-reserves-to-premium",
    "name": "Technical Reserves to Net Premium Ratio",
    "metric_short_name": "technical reserves to premium ratio",
    "unit": "%",
    "definition": "Technical Reserves (unexpired risk reserves + outstanding claims reserves + IBNR) as a percentage of Net Written Premium. Measures the adequacy of liabilities held for future obligations relative to premium volume. A very low ratio may indicate under-reserving; a very high ratio may reflect conservative provisioning or a long-tail portfolio.",
    "higher_is_better": null,
    "metric_status": "regulatory_native",
    "regulatory_form": "NL-20",
    "applicable_to": [
      "general",
      "health"
    ]
  },
  "facts": [
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 17.05,
      "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": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 6.26,
      "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": "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": "sbi-general",
      "insurer_name": "SBI General Insurance",
      "insurer_slug": "sbi-general",
      "value": 6.73,
      "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": "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": 4.22,
      "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": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 7.26,
      "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": "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": "agriculture-insurance",
      "insurer_name": "Agriculture Insurance Company of India",
      "insurer_slug": "agriculture-insurance",
      "value": -176.5,
      "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": "galaxy-health",
      "insurer_name": "Galaxy Health Insurance",
      "insurer_slug": "galaxy-health",
      "value": 1.76,
      "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": "kshema-general",
      "insurer_name": "Kshema General Insurance",
      "insurer_slug": "kshema-general",
      "value": 611.94,
      "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": "raheja-qbe",
      "insurer_name": "Raheja QBE General Insurance",
      "insurer_slug": "raheja-qbe",
      "value": 19.61,
      "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": "united-india",
      "insurer_name": "United India Insurance",
      "insurer_slug": "united-india",
      "value": 9,
      "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": "care-health",
      "insurer_name": "Care Health Insurance",
      "insurer_slug": "care-health",
      "value": 2.27,
      "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": "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": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 9.08,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 695.3,
      "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": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 9.85,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "star-health",
      "insurer_name": "Star Health Insurance",
      "insurer_slug": "star-health",
      "value": 277.6,
      "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": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 913,
      "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: Technical Reserves to net premium ratio **",
        "source_page": 1
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 6.94,
      "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_nl20.pdf",
        "source_url": null,
        "extracted_by": "nonlife_adapter.py v1",
        "last_verified": "2026-09-10",
        "extraction_note": "NL-20 row-format label match: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "narayana-health-insurance",
      "insurer_name": "Narayana Health Insurance",
      "insurer_slug": "narayana-health-insurance",
      "value": 2.36,
      "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": "liberty-general",
      "insurer_name": "Liberty General Insurance",
      "insurer_slug": "liberty-general",
      "value": 6.53,
      "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": 7.4,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "magma-general",
      "insurer_name": "Magma General Insurance",
      "insurer_slug": "magma-general",
      "value": 8.51,
      "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": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 5.39,
      "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": "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": "hdfc-ergo",
      "insurer_name": "HDFC ERGO General Insurance",
      "insurer_slug": "hdfc-ergo",
      "value": 8.76,
      "unit": "%",
      "reporting_period_label": "Q1 FY26-27",
      "reporting_period_end": "2026-06-30",
      "provenance": {
        "reported_by": "hdfc-ergo",
        "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": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 7.26,
      "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": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 364,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "tata-aig",
      "insurer_name": "Tata AIG General Insurance",
      "insurer_slug": "tata-aig",
      "value": 6.02,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 9.07,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "aditya-birla-health",
      "insurer_name": "Aditya Birla Health Insurance",
      "insurer_slug": "aditya-birla-health",
      "value": 2.03,
      "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": "navi-general",
      "insurer_name": "Navi General Insurance",
      "insurer_slug": "navi-general",
      "value": 5.3,
      "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": "niva-bupa",
      "insurer_name": "Niva Bupa Health Insurance",
      "insurer_slug": "niva-bupa",
      "value": 2.7,
      "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": "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": 5.33,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "royal-sundaram",
      "insurer_name": "Royal Sundaram General Insurance",
      "insurer_slug": "royal-sundaram",
      "value": 7.64,
      "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": "manipal-cigna",
      "insurer_name": "ManipalCigna Health Insurance",
      "insurer_slug": "manipal-cigna",
      "value": 262,
      "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": "shriram-general",
      "insurer_name": "Shriram General Insurance",
      "insurer_slug": "shriram-general",
      "value": 1079.92,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 7.63,
      "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": "2026-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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 1.47,
      "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": "2026-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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 0,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "icici-lombard",
      "insurer_name": "ICICI Lombard General Insurance",
      "insurer_slug": "icici-lombard",
      "value": 7.3,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 10.28,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 3.6,
      "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": "NL_till_now_fy2526_q4.pdf",
        "source_url": "https://main.ecgc.in/english/wp-content/uploads/2026/04/NL_till_now_fy2526_q4.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": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 442,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 914,
      "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: Technical Reserves to net premium ratio **",
        "source_page": 1
      }
    },
    {
      "insurer_id": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 625,
      "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: Technical Reserves to net premium ratio **",
        "source_page": 1
      }
    },
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 5.83,
      "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": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 0.1,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 383,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "icici-lombard",
      "insurer_name": "ICICI Lombard General Insurance",
      "insurer_slug": "icici-lombard",
      "value": 776.3,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 3,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 8.37,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 10.59,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 1.45,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 9.98,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "icici-lombard",
      "insurer_name": "ICICI Lombard General Insurance",
      "insurer_slug": "icici-lombard",
      "value": 8.6,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 4.7,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 422,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 890,
      "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: Technical Reserves to net premium ratio **",
        "source_page": 1
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 1.44,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 0.02,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 8.69,
      "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": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 8.65,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 9.82,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "united-india",
      "insurer_name": "United India Insurance",
      "insurer_slug": "united-india",
      "value": 7,
      "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": "liberty-general",
      "insurer_name": "Liberty General Insurance",
      "insurer_slug": "liberty-general",
      "value": 4.57,
      "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": "zurich-kotak",
      "insurer_name": "Zurich Kotak General Insurance",
      "insurer_slug": "zurich-kotak",
      "value": 4.63,
      "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": "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": 10.42,
      "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": "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": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 5.15,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "aditya-birla-health",
      "insurer_name": "Aditya Birla Health Insurance",
      "insurer_slug": "aditya-birla-health",
      "value": 2.22,
      "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": "star-health",
      "insurer_name": "Star Health Insurance",
      "insurer_slug": "star-health",
      "value": 290.13,
      "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": "sbi-general",
      "insurer_name": "SBI General Insurance",
      "insurer_slug": "sbi-general",
      "value": 7.01,
      "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": "galaxy-health",
      "insurer_name": "Galaxy Health Insurance",
      "insurer_slug": "galaxy-health",
      "value": 1.23,
      "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": "icici-lombard",
      "insurer_name": "ICICI Lombard General Insurance",
      "insurer_slug": "icici-lombard",
      "value": 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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 496,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "raheja-qbe",
      "insurer_name": "Raheja QBE General Insurance",
      "insurer_slug": "raheja-qbe",
      "value": 9.65,
      "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": "magma-general",
      "insurer_name": "Magma General Insurance",
      "insurer_slug": "magma-general",
      "value": 7.39,
      "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": "reliance-general",
      "insurer_name": "Reliance General Insurance",
      "insurer_slug": "reliance-general",
      "value": 8.67,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "go-digit-general",
      "insurer_name": "Digit General Insurance",
      "insurer_slug": "go-digit-general",
      "value": 6.99,
      "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": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 6.71,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 9.7,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "ecgc",
      "insurer_name": "ECGC",
      "insurer_slug": "ecgc",
      "value": 18.15,
      "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": "niva-bupa",
      "insurer_name": "Niva Bupa Health Insurance",
      "insurer_slug": "niva-bupa",
      "value": 2.63,
      "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": "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": "shriram-general",
      "insurer_name": "Shriram General Insurance",
      "insurer_slug": "shriram-general",
      "value": 1203.48,
      "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": "tata-aig",
      "insurer_name": "Tata AIG General Insurance",
      "insurer_slug": "tata-aig",
      "value": 8.23,
      "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": "care-health",
      "insurer_name": "Care Health Insurance",
      "insurer_slug": "care-health",
      "value": 2.59,
      "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": "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": "national-insurance",
      "insurer_name": "National Insurance Company",
      "insurer_slug": "national-insurance",
      "value": 9.58,
      "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": "bajaj-allianz-general",
      "insurer_name": "Bajaj Allianz General Insurance",
      "insurer_slug": "bajaj-allianz-general",
      "value": 8.02,
      "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": "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": 9.09,
      "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": "agriculture-insurance",
      "insurer_name": "Agriculture Insurance Company of India",
      "insurer_slug": "agriculture-insurance",
      "value": 71.03,
      "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": "zuno-general",
      "insurer_name": "Zuno General Insurance",
      "insurer_slug": "zuno-general",
      "value": 694,
      "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": "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": "royal-sundaram",
      "insurer_name": "Royal Sundaram General Insurance",
      "insurer_slug": "royal-sundaram",
      "value": 8.05,
      "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": "manipal-cigna",
      "insurer_name": "ManipalCigna Health Insurance",
      "insurer_slug": "manipal-cigna",
      "value": 268,
      "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": "generali-central",
      "insurer_name": "Generali Central Insurance (formerly Future Generali)",
      "insurer_slug": "generali-central",
      "value": 6.62,
      "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": "kshema-general",
      "insurer_name": "Kshema General Insurance",
      "insurer_slug": "kshema-general",
      "value": 1.66,
      "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": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 8.65,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 494,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": -0.16,
      "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": "2025-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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 1.46,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 2.17,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": 0.18,
      "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": "2024-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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 8.7,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 442,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 1.98,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 417,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 6.59,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 8.76,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 4.61,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "oriental-insurance",
      "insurer_name": "Oriental Insurance Company",
      "insurer_slug": "oriental-insurance",
      "value": -0.01,
      "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": "2024-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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "cholamandalam-ms-general",
      "insurer_name": "Chola MS General Insurance",
      "insurer_slug": "cholamandalam-ms-general",
      "value": 9.59,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 414,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "new-india-assurance",
      "insurer_name": "New India Assurance",
      "insurer_slug": "new-india-assurance",
      "value": 5.39,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "iffco-tokio",
      "insurer_name": "IFFCO Tokio General Insurance",
      "insurer_slug": "iffco-tokio",
      "value": 9.45,
      "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": "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 359,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 334,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 321,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 310,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 275,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 317,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 268,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 243,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 270,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 269,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 251,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 290,
      "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: technical_reserves_ratio",
        "source_page": null
      }
    },
    {
      "insurer_id": "acko-general",
      "insurer_name": "Acko General Insurance",
      "insurer_slug": "acko-general",
      "value": 283,
      "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: technical_reserves_ratio",
        "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."
  }
}