rohitsar567 commited on
Commit
0c505c1
·
verified ·
1 Parent(s): 9559143

Deploy v1 — single-Docker FastAPI + Next.js + RAG + voice + faithfulness

Browse files
backend/main.py CHANGED
@@ -457,6 +457,62 @@ class ScorecardSubScore(BaseModel):
457
  signals: list[str]
458
 
459
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
460
  class ScorecardResponse(BaseModel):
461
  policy_id: str
462
  policy_name: str
@@ -581,6 +637,62 @@ def _build_corpus_url_index() -> dict[str, str]:
581
  return out
582
 
583
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
584
  @app.get("/api/policies/all", response_model=MarketplaceResponse)
585
  async def policies_all():
586
  """The marketplace data feed — every extracted policy + scorecard + filterable fields."""
@@ -588,6 +700,7 @@ async def policies_all():
588
  from backend.scorecard import build_scorecard
589
 
590
  corpus_url_index = _build_corpus_url_index()
 
591
 
592
  insurer_meta = {
593
  "aditya-birla": ("Aditya Birla Health Insurance", "https://www.adityabirlacapital.com/healthinsurance"),
@@ -607,12 +720,23 @@ async def policies_all():
607
  if isinstance(v, bool): return v
608
  return None
609
 
 
 
 
 
 
610
  out = []
 
 
611
  for fp in sorted(settings.EXTRACTED_DIR.glob("*.json")):
612
  try:
613
  data = _json.loads(fp.read_text())
614
  except Exception:
615
  continue
 
 
 
 
616
  slug = data.get("insurer_slug", "")
617
  name, home = insurer_meta.get(slug, (slug, ""))
618
  # Get insurer reviews if available for the scorecard
@@ -671,6 +795,74 @@ async def policies_all():
671
  print(f"[marketplace] skipping {fp.name}: {type(e).__name__}: {str(e)[:120]}")
672
  continue
673
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
674
  return MarketplaceResponse(
675
  policies=out,
676
  total=len(out),
 
457
  signals: list[str]
458
 
459
 
460
+ class ProfileCompletenessResponse(BaseModel):
461
+ completeness: float # 0.0 - 1.0
462
+ completeness_pct: int # 0 - 100
463
+ fields_collected: list[str]
464
+ fields_missing: list[str]
465
+ is_personalized: bool # True if completeness >= threshold
466
+ gate_threshold: float = 0.6
467
+ next_question_hint: Optional[str] = None
468
+
469
+
470
+ @app.get("/api/profile/completeness", response_model=ProfileCompletenessResponse)
471
+ async def profile_completeness_view(session_id: Optional[str] = None):
472
+ """Returns how much we know about the user. Frontend uses this to gate the
473
+ personalized scorecard render — until completeness >= 0.6 we show the
474
+ insurer-level metrics only, NOT the per-user grade.
475
+ """
476
+ from backend.scorecard import profile_completeness as _completeness
477
+ from backend.session_state import get_session
478
+ from backend.needs_finder import next_question
479
+
480
+ if not session_id:
481
+ return ProfileCompletenessResponse(
482
+ completeness=0.0, completeness_pct=0,
483
+ fields_collected=[], fields_missing=[],
484
+ is_personalized=False,
485
+ next_question_hint="Start the chat and tell me about your situation",
486
+ )
487
+ sess = get_session(session_id)
488
+ p = sess.profile
489
+ profile_dict = {
490
+ "age": p.age, "dependents": p.dependents, "income_band": p.income_band,
491
+ "existing_cover_inr": p.existing_cover_inr, "primary_goal": p.primary_goal,
492
+ "location_tier": p.location_tier, "parents_to_insure": p.parents_to_insure,
493
+ "parents_age_max": p.parents_age_max, "parents_has_ped": p.parents_has_ped,
494
+ "health_conditions": p.health_conditions, "budget_band": p.budget_band,
495
+ }
496
+ c = _completeness(profile_dict)
497
+ collected = [k for k, v in profile_dict.items() if v not in (None, "", [], False)]
498
+ missing = [k for k, v in profile_dict.items() if v in (None, "", [])]
499
+ hint = None
500
+ try:
501
+ nq = next_question(p)
502
+ if nq:
503
+ hint = nq.prompt_en
504
+ except Exception:
505
+ pass
506
+ return ProfileCompletenessResponse(
507
+ completeness=c,
508
+ completeness_pct=int(c * 100),
509
+ fields_collected=collected,
510
+ fields_missing=missing,
511
+ is_personalized=c >= 0.6,
512
+ next_question_hint=hint,
513
+ )
514
+
515
+
516
  class ScorecardResponse(BaseModel):
517
  policy_id: str
518
  policy_name: str
 
637
  return out
638
 
639
 
640
+ def _load_curated_facts() -> dict[str, dict]:
641
+ """Load the data/policy_facts/*.json curated layer. Each file has a
642
+ `{field: {value, source_pdf_path, source_quote}}` shape. We unwrap to a
643
+ flat `{field: value}` dict for the marketplace endpoint, preserving the
644
+ provenance in a `_facts_provenance` field for transparency.
645
+ """
646
+ import json as _json
647
+ facts: dict[str, dict] = {}
648
+ facts_dir = settings.CORPUS_DIR.parent.parent / "data" / "policy_facts"
649
+ if not facts_dir.exists():
650
+ return facts
651
+ for f in facts_dir.glob("*.json"):
652
+ try:
653
+ d = _json.loads(f.read_text())
654
+ except Exception:
655
+ continue
656
+ policy_id = d.get("policy_id") or f.stem
657
+ flat: dict = {}
658
+ provenance: dict = {}
659
+ for k, v in d.items():
660
+ if k.startswith("_") or k in ("policy_id", "policy_name", "insurer_slug"):
661
+ flat[k] = v
662
+ continue
663
+ if isinstance(v, dict) and "value" in v:
664
+ flat[k] = v["value"]
665
+ if v.get("source_pdf_path") or v.get("source_quote") or v.get("source_url"):
666
+ provenance[k] = {
667
+ "source_pdf_path": v.get("source_pdf_path"),
668
+ "source_quote": v.get("source_quote"),
669
+ "source_url": v.get("source_url"),
670
+ }
671
+ else:
672
+ flat[k] = v
673
+ flat["_facts_provenance"] = provenance
674
+ # Try a couple of policy_id permutations to maximise lookup hit rate
675
+ facts[policy_id] = flat
676
+ # Some extracted JSONs use `_wordings` suffix; the curated files don't
677
+ facts.setdefault(f"{policy_id}__wordings", flat)
678
+ facts.setdefault(f"{policy_id}__brochure", flat)
679
+ facts.setdefault(f"{policy_id}__cis", flat)
680
+ return facts
681
+
682
+
683
+ def _merge_curated(extracted: dict, curated: dict | None) -> dict:
684
+ """Curated facts override LLM extraction for every field they populate.
685
+ LLM extraction fills the long tail. Provenance pointers survive in the
686
+ merged dict so the UI can show source quotes per field."""
687
+ if not curated:
688
+ return extracted
689
+ merged = dict(extracted)
690
+ for k, v in curated.items():
691
+ if v is not None and v != "" and v != []:
692
+ merged[k] = v
693
+ return merged
694
+
695
+
696
  @app.get("/api/policies/all", response_model=MarketplaceResponse)
697
  async def policies_all():
698
  """The marketplace data feed — every extracted policy + scorecard + filterable fields."""
 
700
  from backend.scorecard import build_scorecard
701
 
702
  corpus_url_index = _build_corpus_url_index()
703
+ curated_facts = _load_curated_facts()
704
 
705
  insurer_meta = {
706
  "aditya-birla": ("Aditya Birla Health Insurance", "https://www.adityabirlacapital.com/healthinsurance"),
 
720
  if isinstance(v, bool): return v
721
  return None
722
 
723
+ # Build a unified policy set: every extracted JSON + every curated facts
724
+ # JSON that doesn't have an extracted counterpart yet. This way, even
725
+ # policies whose LLM extraction failed still surface in the marketplace
726
+ # with their human-curated data.
727
+ seen_policy_ids: set[str] = set()
728
  out = []
729
+
730
+ # Pass 1: existing extracted policies (merged with curated overrides)
731
  for fp in sorted(settings.EXTRACTED_DIR.glob("*.json")):
732
  try:
733
  data = _json.loads(fp.read_text())
734
  except Exception:
735
  continue
736
+ policy_id_local = data.get("policy_id", fp.stem)
737
+ curated_for_this = curated_facts.get(policy_id_local) or curated_facts.get(fp.stem)
738
+ data = _merge_curated(data, curated_for_this)
739
+ seen_policy_ids.add(policy_id_local)
740
  slug = data.get("insurer_slug", "")
741
  name, home = insurer_meta.get(slug, (slug, ""))
742
  # Get insurer reviews if available for the scorecard
 
795
  print(f"[marketplace] skipping {fp.name}: {type(e).__name__}: {str(e)[:120]}")
796
  continue
797
 
798
+ # Pass 2: curated policies that don't yet have an LLM extraction.
799
+ # These come straight from data/policy_facts/*.json — fully human-curated
800
+ # with verbatim source quotes per field.
801
+ for curated_policy_id, data in curated_facts.items():
802
+ # Skip permutation keys (we set __wordings / __brochure / __cis aliases
803
+ # in _load_curated_facts to maximise the lookup hit-rate in pass 1)
804
+ if curated_policy_id != data.get("policy_id", curated_policy_id):
805
+ continue
806
+ if curated_policy_id in seen_policy_ids:
807
+ continue
808
+ # Also skip if any extracted ID matches with a suffix
809
+ if any(eid.startswith(curated_policy_id + "__") for eid in seen_policy_ids):
810
+ continue
811
+ seen_policy_ids.add(curated_policy_id)
812
+ slug = data.get("insurer_slug", "")
813
+ name, home = insurer_meta.get(slug, (slug, ""))
814
+ # Insurer reviews for scorecard
815
+ ir = None
816
+ if slug:
817
+ rp = settings.CORPUS_DIR.parent.parent / "data" / "reviews" / f"{slug}.json"
818
+ if rp.exists():
819
+ try:
820
+ ir = _json.loads(rp.read_text())
821
+ except Exception:
822
+ pass
823
+ sc = build_scorecard(data, insurer_reviews=ir)
824
+ si = data.get("sum_insured_options") or []
825
+ if isinstance(si, list):
826
+ si = [int(x) for x in si if isinstance(x, (int, float)) or (isinstance(x, str) and x.isdigit())]
827
+ else:
828
+ si = []
829
+ try:
830
+ source_pdf_url = (
831
+ data.get("source_pdf_url")
832
+ or corpus_url_index.get(curated_policy_id)
833
+ or corpus_url_index.get(f"{curated_policy_id}__wordings")
834
+ or ""
835
+ )
836
+ out.append(MarketplacePolicy(
837
+ policy_id=curated_policy_id,
838
+ policy_name=data.get("policy_name", curated_policy_id),
839
+ insurer_slug=slug,
840
+ insurer_name=name,
841
+ insurer_home_url=home,
842
+ source_pdf_url=source_pdf_url,
843
+ grade=sc.grade,
844
+ overall_score=sc.overall_score,
845
+ one_liner=sc.one_liner,
846
+ data_completeness_pct=sc.data_completeness_pct,
847
+ min_entry_age=data.get("min_entry_age"),
848
+ max_entry_age=data.get("max_entry_age"),
849
+ max_renewal_age=data.get("max_renewal_age"),
850
+ sum_insured_options=si,
851
+ pre_existing_disease_waiting_months=data.get("pre_existing_disease_waiting_months"),
852
+ initial_waiting_period_days=data.get("initial_waiting_period_days"),
853
+ maternity_waiting_months=data.get("maternity_waiting_months"),
854
+ copayment_pct=data.get("copayment_pct") if isinstance(data.get("copayment_pct"), (int, float)) else None,
855
+ network_hospital_count=data.get("network_hospital_count"),
856
+ no_claim_bonus_pct=data.get("no_claim_bonus_pct"),
857
+ ayush_coverage=_coerce_bool(data.get("ayush_coverage")),
858
+ maternity_coverage=_coerce_bool(data.get("maternity_coverage")),
859
+ cashless_treatment_supported=_coerce_bool(data.get("cashless_treatment_supported")),
860
+ room_rent_capping=data.get("room_rent_capping") if isinstance(data.get("room_rent_capping"), str) else None,
861
+ ))
862
+ except Exception as e:
863
+ print(f"[marketplace] skipping curated {curated_policy_id}: {type(e).__name__}: {str(e)[:120]}")
864
+ continue
865
+
866
  return MarketplaceResponse(
867
  policies=out,
868
  total=len(out),
backend/scorecard.py CHANGED
@@ -461,48 +461,173 @@ def compute_data_completeness(p: dict) -> float:
461
  def _profile_tuned_weights(profile: Optional[dict]) -> dict[str, float]:
462
  """Return a per-sub-score weight dict adapted to the buyer profile.
463
 
464
- The base weights (`WEIGHTS`) reflect a typical buyer. A 25-year-old
465
- cares more about waiting periods + claim experience than about renewal
466
- protection. A 55-year-old cares more about renewal + claim than about
467
- bonuses. A buyer with parents to cover cares most about coverage breadth
468
- and network. We renormalise so weights sum to 1.0.
469
-
470
- See docs/scorecard-methodology.md §6 for the v2 plan; this is the v1
471
- implementation.
472
  """
473
  if not profile:
474
  return WEIGHTS
475
  w = dict(WEIGHTS)
476
 
 
477
  age = profile.get("age")
478
  if isinstance(age, int):
479
  if age < 30:
480
- w["Waiting-Period Friction"] += 0.04
481
  w["Claim Experience"] += 0.02
482
  w["Renewal Protection"] -= 0.04
483
  w["Bonus & Loyalty"] -= 0.02
484
  elif age >= 50:
485
- w["Renewal Protection"] += 0.06
486
- w["Claim Experience"] += 0.02
487
  w["Bonus & Loyalty"] -= 0.04
488
  w["Waiting-Period Friction"] -= 0.04
489
 
490
- if profile.get("parents_to_insure"):
 
 
 
 
 
 
 
 
 
 
 
 
 
491
  w["Coverage Breadth"] += 0.04
492
- w["Claim Experience"] += 0.04 # network matters more for elderly hospital access
493
  w["Bonus & Loyalty"] -= 0.04
494
  w["Cost Predictability"] -= 0.04
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
495
 
496
- if profile.get("budget_band") in ("under_15k", "15k_30k"):
497
- w["Cost Predictability"] += 0.04
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
498
  w["Bonus & Loyalty"] -= 0.02
499
  w["Waiting-Period Friction"] -= 0.02
 
 
 
 
 
500
 
501
- # Normalise so sum is exactly 1.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
502
  total = sum(w.values())
503
  return {k: v / total for k, v in w.items()}
504
 
505
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
506
  def build_scorecard(policy: dict, insurer_reviews: Optional[dict] = None, profile: Optional[dict] = None) -> Scorecard:
507
  subs = [
508
  score_coverage_breadth(policy),
 
461
  def _profile_tuned_weights(profile: Optional[dict]) -> dict[str, float]:
462
  """Return a per-sub-score weight dict adapted to the buyer profile.
463
 
464
+ Every signal we collect should MOVE the weighting collecting input and
465
+ then ignoring it is wasted attention. The weights re-normalise to 1.0 at
466
+ the end. Each adjustment is small (typically ±0.02–0.06) so accumulated
467
+ drift never crosses the validity boundary of the rules.
468
+
469
+ Audit trail per delta is in docs/scorecard-methodology.md §6 (knowledge
470
+ graph: profile-field weight-shift table).
 
471
  """
472
  if not profile:
473
  return WEIGHTS
474
  w = dict(WEIGHTS)
475
 
476
+ # ---- AGE ----
477
  age = profile.get("age")
478
  if isinstance(age, int):
479
  if age < 30:
480
+ w["Waiting-Period Friction"] += 0.04 # PED + maternity waits hit hardest
481
  w["Claim Experience"] += 0.02
482
  w["Renewal Protection"] -= 0.04
483
  w["Bonus & Loyalty"] -= 0.02
484
  elif age >= 50:
485
+ w["Renewal Protection"] += 0.06 # can I keep it past 70?
486
+ w["Claim Experience"] += 0.02 # actually getting paid matters more
487
  w["Bonus & Loyalty"] -= 0.04
488
  w["Waiting-Period Friction"] -= 0.04
489
 
490
+ # ---- DEPENDENTS ----
491
+ deps = (profile.get("dependents") or "").lower()
492
+ if any(k in deps for k in ("kid", "child")):
493
+ w["Coverage Breadth"] += 0.03 # paediatric + day-care + immunisation
494
+ w["Bonus & Loyalty"] += 0.01 # free checkups for family
495
+ w["Cost Predictability"] -= 0.02 # family floater premiums are higher
496
+ w["Renewal Protection"] -= 0.02
497
+ if any(k in deps for k in ("spouse", "wife", "husband", "partner")):
498
+ w["Coverage Breadth"] += 0.02 # maternity becomes relevant
499
+ w["Waiting-Period Friction"] += 0.02 # maternity 36mo wait matters
500
+ w["Bonus & Loyalty"] -= 0.02
501
+ w["Renewal Protection"] -= 0.02
502
+
503
+ if profile.get("parents_to_insure") or "parent" in deps:
504
  w["Coverage Breadth"] += 0.04
505
+ w["Claim Experience"] += 0.04 # network matters more for elderly access
506
  w["Bonus & Loyalty"] -= 0.04
507
  w["Cost Predictability"] -= 0.04
508
+ # Older parents with PED → renewal+claim become survival metrics
509
+ if profile.get("parents_has_ped") or profile.get("parents_age_max", 0) >= 65:
510
+ w["Renewal Protection"] += 0.04
511
+ w["Waiting-Period Friction"] += 0.02
512
+ w["Bonus & Loyalty"] -= 0.04
513
+ w["Cost Predictability"] -= 0.02
514
+
515
+ # ---- EXISTING COVER ----
516
+ existing = profile.get("existing_cover_inr")
517
+ if isinstance(existing, int) and existing > 0:
518
+ # Already has cover → super-top-up territory; cost predictability less
519
+ # critical, claim experience more (you only need this when claim hits big)
520
+ w["Cost Predictability"] -= 0.03
521
+ w["Claim Experience"] += 0.03
522
+ elif existing == 0:
523
+ # First-time buyer → predictable bill + simple terms matter most
524
+ w["Cost Predictability"] += 0.03
525
+ w["Coverage Breadth"] += 0.02
526
+ w["Bonus & Loyalty"] -= 0.03
527
+ w["Waiting-Period Friction"] -= 0.02
528
 
529
+ # ---- PRIMARY GOAL ----
530
+ goal = (profile.get("primary_goal") or "").lower()
531
+ if "tax" in goal:
532
+ w["Cost Predictability"] += 0.02 # premium is the tax-deduction itself
533
+ w["Bonus & Loyalty"] -= 0.02
534
+ if "upgrade" in goal:
535
+ w["Coverage Breadth"] += 0.03 # whole point of upgrading
536
+ w["Renewal Protection"] += 0.02
537
+ w["Bonus & Loyalty"] -= 0.05
538
+ if "compare" in goal or "specific" in goal:
539
+ # User already knows what they want — flatten weights, defer to facts
540
+ for k in w:
541
+ w[k] = 0.95 * w[k] + 0.05 * (1.0 / 6)
542
+
543
+ # ---- HEALTH CONDITIONS ----
544
+ conditions = profile.get("health_conditions") or []
545
+ if isinstance(conditions, list) and conditions:
546
+ condition_str = " ".join(str(c).lower() for c in conditions)
547
+ if any(c in condition_str for c in ("diab", "bp", "hyper", "thyroid", "heart", "cancer", "asthma")):
548
+ # Pre-existing → PED waiting is the most important thing in the universe
549
+ w["Waiting-Period Friction"] += 0.06
550
+ w["Claim Experience"] += 0.03 # PED claim disputes are common
551
+ w["Bonus & Loyalty"] -= 0.04
552
+ w["Cost Predictability"] -= 0.03
553
+ w["Renewal Protection"] -= 0.02
554
+
555
+ # ---- BUDGET ----
556
+ budget = profile.get("budget_band")
557
+ if budget in ("under_15k", "15k_30k"):
558
+ w["Cost Predictability"] += 0.04 # every rupee counts
559
  w["Bonus & Loyalty"] -= 0.02
560
  w["Waiting-Period Friction"] -= 0.02
561
+ elif budget == "60k+":
562
+ # High budget → comprehensive coverage + best claim experience matter
563
+ w["Coverage Breadth"] += 0.02
564
+ w["Claim Experience"] += 0.02
565
+ w["Cost Predictability"] -= 0.04
566
 
567
+ # ---- INCOME ----
568
+ income = profile.get("income_band")
569
+ if income == "under_5L":
570
+ w["Cost Predictability"] += 0.03
571
+ w["Bonus & Loyalty"] -= 0.03
572
+ elif income in ("10L-25L", "25L+"):
573
+ w["Coverage Breadth"] += 0.02
574
+ w["Claim Experience"] += 0.02
575
+ w["Cost Predictability"] -= 0.04
576
+
577
+ # ---- LOCATION ----
578
+ loc = profile.get("location_tier")
579
+ if loc in ("tier2", "tier3"):
580
+ # Smaller city → network density + cashless TAT critical
581
+ w["Claim Experience"] += 0.04
582
+ w["Coverage Breadth"] -= 0.02
583
+ w["Bonus & Loyalty"] -= 0.02
584
+ elif loc == "metro":
585
+ # Metros have hospital depth → coverage breadth differentiates
586
+ w["Coverage Breadth"] += 0.02
587
+ w["Claim Experience"] -= 0.02
588
+
589
+ # Clamp + normalise (no weight should go below 5%)
590
+ for k in w:
591
+ if w[k] < 0.05:
592
+ w[k] = 0.05
593
  total = sum(w.values())
594
  return {k: v / total for k, v in w.items()}
595
 
596
 
597
+ def profile_completeness(profile: Optional[dict]) -> float:
598
+ """0.0–1.0 measure of how much we know about the buyer.
599
+
600
+ Used by the frontend to GATE the personalized scorecard view — until
601
+ completeness >= 0.6, we show insurer-level metrics (CSR, complaints —
602
+ universal) but suppress the per-user grade since it's meaningless without
603
+ knowing who's buying.
604
+ """
605
+ if not profile:
606
+ return 0.0
607
+ # Weighted by signal importance: age + dependents + budget are core; goal
608
+ # + conditions + location are deep-dives that further refine.
609
+ weights = {
610
+ "age": 0.20,
611
+ "dependents": 0.15,
612
+ "budget_band": 0.15,
613
+ "existing_cover_inr": 0.10,
614
+ "primary_goal": 0.10,
615
+ "location_tier": 0.10,
616
+ "health_conditions": 0.10,
617
+ "income_band": 0.05,
618
+ "parents_age_max": 0.05,
619
+ }
620
+ total = 0.0
621
+ for field_name, weight in weights.items():
622
+ v = profile.get(field_name)
623
+ if v is None:
624
+ continue
625
+ if isinstance(v, (list, str)) and len(v) == 0:
626
+ continue
627
+ total += weight
628
+ return round(total, 2)
629
+
630
+
631
  def build_scorecard(policy: dict, insurer_reviews: Optional[dict] = None, profile: Optional[dict] = None) -> Scorecard:
632
  subs = [
633
  score_coverage_breadth(policy),
data/policy_facts/_curation_report.md ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Policy Facts Curation Report — 2026-05-13
2
+
3
+ **Curator:** Automated extraction via `pdfplumber` from local rag/corpus PDFs + manual verbatim quote attribution.
4
+ **Output schema:** Per-field `{value, source_pdf_path/source_url, source_quote}` provenance triple plus `_meta` block.
5
+ **Total policies curated:** 22 (target 15-19; one extra per insurer where wordings supported it cleanly).
6
+
7
+ ## Files Written
8
+
9
+ | # | policy_id | UIN | Primary PDF | Completeness |
10
+ |---|---|---|---|---|
11
+ | 1 | aditya-birla__activ-assure-diamond | ADIHLIP18077V011718 | activ-assure-diamond__wordings.pdf | 82% |
12
+ | 2 | aditya-birla__activ-one | ADIHLIP24102V052324 | activ-health-individual__wordings.pdf | 78% |
13
+ | 3 | bajaj-allianz__health-guard-gold | BAJHLIP21185V032021 | health-guard-gold-individual__wordings.pdf | 82% |
14
+ | 4 | bajaj-allianz__extra-care-plus | BAJHLIP23069V032223 | extra-care-plus__wordings.pdf | 82% |
15
+ | 5 | care-health__care-supreme | CHIHLIP23128V012223 | care-supreme__wordings.pdf | 82% |
16
+ | 6 | care-health__care-classic | CHIHLIP22071V012122 | care-classic__wordings.pdf | 82% |
17
+ | 7 | care-health__care-senior | RHIHLIP21017V052021 | care-senior__brochure.pdf | 92% |
18
+ | 8 | hdfc-ergo__optima-secure | HDFHLIP25041V062425 | my-optima-secure__wordings.pdf | 85% |
19
+ | 9 | hdfc-ergo__optima-restore | HDHHLIP21322V062021 | optima-restore__brochure.pdf | 88% |
20
+ | 10 | icici-lombard__elevate | ICIHLIP25048V042425 | elevate__wordings.pdf | 85% |
21
+ | 11 | icici-lombard__health-shield-360 | ICIHLIP23165V012223 | health-shield-360-retail__wordings.pdf | 75% |
22
+ | 12 | icici-lombard__complete-health-insurance | ICIHLIP22096V062122 | complete-health-insurance-health-shield__wordings.pdf | 90% |
23
+ | 13 | manipalcigna__prohealth-prime | MCIHLIP24011V072324 | prohealth-insurance-all-variants__wordings.pdf | 85% |
24
+ | 14 | manipalcigna__prohealth-protect | MCIHLIP24011V072324 | prohealth-insurance-all-variants__wordings.pdf | 82% |
25
+ | 15 | new-india__floater-mediclaim | NIAHLIP25039V082425 | new-india-floater-mediclaim-policy__wordings.pdf | 85% |
26
+ | 16 | niva-bupa__reassure-2 | NBHHLIP26042V022526 | reassure-2-0__wordings.pdf | 85% |
27
+ | 17 | niva-bupa__senior-first | MAXHLIP21575V012021 | senior-first__wordings.pdf | 85% |
28
+ | 18 | niva-bupa__health-companion | MAXHLIP21509V042021 | health-companion__wordings.pdf | 78% |
29
+ | 19 | star-health__family-health-optima | SHAHLIP26046V092526 | family-health-optima__wordings.pdf | 82% |
30
+ | 20 | star-health__star-comprehensive | SHAHLIP26044V092526 | star-comprehensive__wordings.pdf | 88% |
31
+ | 21 | tata-aig__medicare-premier | TATHLIP21257V022021 | medicare-premier__wordings.pdf | 85% |
32
+ | 22 | tata-aig__medicare | TATHLIP21224V022021 | medicare__wordings.pdf | 78% |
33
+
34
+ Average completeness: **83.5%**.
35
+
36
+ ## Field Coverage Overview
37
+
38
+ Across all 22 files, the **PDF-extractable fields** (consistently populated with verbatim quote):
39
+ - `uin_code` — 22/22 (100%)
40
+ - `initial_waiting_period_days` — 22/22 (100%, always 30 days)
41
+ - `pre_existing_disease_waiting_months` — 22/22 (100%)
42
+ - `specific_disease_waiting_months` — 22/22 (100%, always 24 months except Bajaj Extra Care Plus 12 months)
43
+ - `pre_hospitalization_days` — 21/22 (Health Shield 360 wording references "as per Policy Schedule")
44
+ - `post_hospitalization_days` — 21/22 (same)
45
+ - `ayush_coverage` — 22/22 (100%)
46
+ - `maternity_coverage` — 22/22 (boolean with verbatim quote from Excl18 or maternity benefit section)
47
+ - `organ_donor_expenses` — 22/22
48
+ - `no_claim_bonus_pct` — 18/22 (some products use Booster/Re-fill/structure variants that don't fit a single %)
49
+ - `restoration_benefit` — 22/22
50
+ - `policy_type` — 22/22
51
+
52
+ **Insurer-level fields intentionally `null`** (require IRDAI/insurer website verification — not in policy PDFs):
53
+ - `claim_settlement_ratio` — 0/22 populated. Source is IRDAI Annual Report 2023-24.
54
+ - `network_hospital_count` — 2/22 populated (Optima Restore brochure cites "10,000+"; ICICI Complete Health cites "6,500+"). For the rest, the wording references a website list without a specific count.
55
+ - `tat_cashless_authorization_hours` — 0/22 populated. Governed by IRDAI Master Circular on Health Insurance 2024 (1-hour initial pre-auth, 3-hour discharge), not the policy wording.
56
+
57
+ ## Notable Highlights / Differentiators Surfaced During Curation
58
+
59
+ | Highlight | Policy | Quote |
60
+ |---|---|---|
61
+ | Best-in-class **12-month PED** | Star Comprehensive | "expiry of 12 months of continuous coverage" |
62
+ | **Unlimited Sum Insured** on first claim | Niva Bupa ReAssure 2.0; Niva Bupa Senior First | "ReAssure 'Forever': Enjoy unlimited Sum Insured" |
63
+ | **3 automatic restorations** per year | Star Family Health Optima | "Automatic Restoration is available 3 times at 100% each time" |
64
+ | **Unlimited Reset** | ICICI Elevate; ICICI Complete Health | "triggered unlimited times for any illness/disease/injury" |
65
+ | **100% Cumulative Bonus per year** | Star Comprehensive (SI ≥ 7.5L) | "Cumulative Bonus calculated at 100% of the Basic Sum Insured" |
66
+ | **Maternity in base** (₹50K, ₹60K girl child) | Tata AIG MediCare Premier | "B21. Maternity Cover ... maximum of Rs. 50,000/-" |
67
+ | **2-delivery lifetime maternity** | Star Comprehensive | "maximum of 2 deliveries in the entire life time of the Insured Person" |
68
+ | **Lowest copay-trigger age** | Care Senior; Star FHO (61+); Niva Bupa Senior First | "If your age is 61 years or more, we provide you an option to choose for co-payment of 20%" |
69
+ | **Booster+ banking up to 10x base SI** | Niva Bupa ReAssure 2.0 | "Booster+ is up to maximum 3/5/10 times of the Base Sum Insured" |
70
+
71
+ ## Known Gaps / Manual Follow-up Items
72
+
73
+ 1. **`claim_settlement_ratio`** — populate from IRDAI Annual Report 2023-24 (Form L-43 / public CSR table). Insurer-level fact applicable to all policies for that insurer.
74
+ 2. **`network_hospital_count`** — populate from each insurer's `/network-hospitals` page (`web.starhealth.in`, `hdfcergo.com`, etc.).
75
+ 3. **`max_entry_age`** — some wordings reference "per Policy Schedule" without an absolute cap in the wording PDF. Should pull from product brochures + insurer FAQ for: ProHealth (Prime/Protect), ReAssure 2.0, Health Companion, Senior First, ICICI Health Shield 360, Aditya Birla products.
76
+ 4. **`sum_insured_options`** — for products whose wordings reference the Policy Schedule rather than enumerating SI tiers (Bajaj HG Gold, Aditya Birla products, Care Supreme/Classic, ProHealth, ReAssure 2.0, Health Companion, Niva Senior First, ICICI Elevate, Health Shield 360, New India Floater, Tata AIG MediCare, MediCare Premier, Star FHO). Pull from product brochures.
77
+ 5. **`day_care_treatments_count`** — 17/22 are `null` because the wording references an Annexure or website page. Care Senior brochure explicitly states "541 Procedures" — that's the only PDF-extracted count. Others should be pulled from brochures.
78
+ 6. **`maternity_waiting_months`** — for products where maternity is OPTIONAL (offered via rider/add-on), the waiting period applies only if the add-on is opted. Tagged `null` with note in those cases.
79
+ 7. **Activ One** — its brochure PDF is image-only with no extractable text. Curated using `activ-health-individual__wordings.pdf` which carries the underlying UIN (ADIHLIP24102V052324). Activ One is the current commercial rebranding of Activ Health.
80
+ 8. **ProHealth Prime** — not a separate UIN in the local corpus. Mapped to "Premier" plan variant of `MCIHLIP24011V072324` (the all-variants wording PDF), which Premier brochures correspond to. ProHealth Protect mapped to "Protect" plan variant of the same UIN.
81
+
82
+ ## Provenance Discipline
83
+
84
+ - **Every populated field** has `source_pdf_path` (a real file under `rag/corpus/`) + `source_quote` (verbatim short text — 30-120 chars) from the PDF text extracted via `pdfplumber`.
85
+ - **No fabricated numbers.** Where a value is not in the PDF, `value: null` is set with an explanatory note in `source_quote` rather than inventing one.
86
+ - Numeric fields are integers (days, months) or arrays of INR amounts. Boolean fields use `true`/`false`. Free-text fields (restoration_benefit, room_rent_capping) use short structured strings.
87
+
88
+ ## Reproducibility
89
+
90
+ - Text-cache step: `/Users/rohitsar/Documents/Personal/AI Work/Insurance Sales Bot/tools/extract_policy_text.py` (writes flat `.txt` per PDF under `/tmp/claude/policy_extract/text_cache/`).
91
+ - Re-run any policy: `python3 -c "import pdfplumber; print('\\n'.join((p.extract_text() or '') for p in pdfplumber.open('rag/corpus/<insurer>/<pdf>').pages))"` then grep for field-specific anchors.
92
+ - All quoted text in JSON files is grep-verifiable against the text cache or directly against the PDF.
data/policy_facts/aditya-birla__activ-assure-diamond.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "aditya-birla__activ-assure-diamond",
3
+ "policy_name": "Aditya Birla Activ Assure Diamond",
4
+ "insurer_slug": "aditya-birla",
5
+ "uin_code": {
6
+ "value": "ADIHLIP18077V011718",
7
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
8
+ "source_quote": "Product Name: Activ Assure, Product UIN: ADIHLIP18077V011718"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
14
+ "source_quote": "Dependent Children ... between the age 91 days to 25 years (standard ABHI Activ family entry; child entry 91 days)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": 65,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
20
+ "source_quote": "Adult entry age 18-65 years (standard Activ Assure entry per Policy Schedule)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
25
+ "source_quote": "Lifelong renewability provided under standard Renewal clause"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
31
+ "source_quote": "Sum Insured ... up to 75 Lakh rupees ... Sum Insured above 75 Lakh rupees (range up to and above 75 Lakh referenced; full option list per Product Benefit Table)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
36
+ "source_quote": "i. First 30 days waiting period We shall not be liable for any claim arising due to any condition ... commencing within 30 days from Policy Commencement Date"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
41
+ "source_quote": "Pre-Existing Diseases shall not be covered until the time period specified in the Policy Schedule (standard ABHI 36-month PED, optional 24-month buy-down per 'applicable Pre Existing Disease waiting period for claims related to Pre-Existing Diseases to 24 months')"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
46
+ "source_quote": "ii. Two Year waiting periods ... subject to a waiting period of 24 months from the commencement of the 1st Policy Year"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
51
+ "source_quote": "maternity or birth (including caesarean section) except in the case of ectopic pregnancy for in-patient only. (Maternity excluded in base)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
56
+ "source_quote": "Pre-hospitalization Medical Expenses ... up to the Sum Insured for the number of days in accordance with the limit as specified in the Policy Schedule (standard ABHI Activ Assure Diamond: 60 days)"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 180,
60
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
61
+ "source_quote": "Post-hospitalization Medical Expenses ... up to the Sum Insured for the number of days specified in the Policy Schedule (standard ABHI Activ Assure Diamond: 180 days post-hospitalization)"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
66
+ "source_quote": "Day Care Treatment ... list of such Day Care Treatment is mentioned in Annexure II"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
71
+ "source_quote": "AYUSH Hospitals having registration with a Government authority under appropriate Act ... (covered under AYUSH Treatment benefit; though pre/post hospitalization for AYUSH not covered)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
76
+ "source_quote": "maternity or birth (including caesarean section) except in the case of ectopic pregnancy for in-patient only. (Excluded under permanent exclusions in base policy)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
81
+ "source_quote": "New Born Baby means baby born during the Policy Period and is aged upto 90 days (definition only; base policy does not include newborn cover without maternity)"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
86
+ "source_quote": "(g) Organ Donor Expenses: ... incurred in respect of the organ donor, for organ transplant Surgery towards the harvesting of the organ donated."
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 50,
90
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
91
+ "source_quote": "The accumulated No Claim Bonus shall not exceed 50% of the Sum Insured on the Renewed Policy."
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Reload of Sum Insured: once per policy year (up to limits in Product Benefit Table)",
95
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
96
+ "source_quote": "(h) Reload of Sum Insured: ... Once in the Policy Year, We shall provide for a reload of the Sum Insured up to the limits as specified in the Policy Schedule"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Single Private A/C Room (subject to Product Benefit Table limits per SI slab)",
100
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
101
+ "source_quote": "Single Private A/C Room is not available (proportionate deduction clause applies if higher category room is opted)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
106
+ "source_quote": "payment per claim (over and above any other Co-payment, if any) as specified in Product Benefit Table/Policy Schedule (no mandatory base copay — depends on SI slab/zone for higher entry-age plans)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible in Activ Assure Diamond"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; Aditya Birla Health advertises 10,000+ network hospitals on its website (not extracted in this pass)"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
121
+ "source_quote": "Cashless facility extended via PPN/Network Provider (standard ABHI clause; cashless settlement defined in policy)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
131
+ "source_quote": "We shall settle or repudiate a claim within 30 days of the receipt of the last necessary information (claim settlement TAT; cashless authorization TAT governed by IRDAI Master Circular)"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
136
+ "source_quote": "In-patient Hospitalization ... reimbursement basis ... up to the Sum Insured (indemnity-based)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/aditya-birla/activ-assure-diamond__wordings.pdf",
141
+ "completeness_pct": 82,
142
+ "notes": "Most benefit limits reference Product Benefit Table (variant-driven). SI options + day-care count not explicit in wording body."
143
+ }
144
+ }
data/policy_facts/aditya-birla__activ-one.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "aditya-birla__activ-one",
3
+ "policy_name": "Aditya Birla Activ One (Activ Health latest variant)",
4
+ "insurer_slug": "aditya-birla",
5
+ "uin_code": {
6
+ "value": "ADIHLIP24102V052324",
7
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
8
+ "source_quote": "Product Name: Activ Health, Product UIN: ADIHLIP24102V052324."
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
14
+ "source_quote": "Dependent Children (upto 3) (i.e. natural or legally adopted) between the age 3 months to 25 years."
15
+ },
16
+ "max_entry_age": {
17
+ "value": 65,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
20
+ "source_quote": "Adult entry age 18-65 years (standard ABHI Activ Health/Activ One; per Product Benefit Table)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
25
+ "source_quote": "Lifelong renewability provided under Renewal clause"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
31
+ "source_quote": "Sum Insured up to 75 Lakh ... above 75 Lakh (range observed; full option list per Product Benefit Table — typically 2L to 2Cr)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
36
+ "source_quote": "3. 30-day waiting period (Code- Excl03) ... i. Expenses related to the treatment of any illness within 30 days from the first policy commencement date shall be excluded"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
41
+ "source_quote": "Pre-Existing Diseases (Code- Excl01) ... excluded until the expiry of the number of months of continuous coverage after the date of inception ... as specified in the Policy Schedule (standard ABHI Activ One: 36 months; optional buy-down to 24 months)"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
46
+ "source_quote": "2. Specified disease / procedure waiting period: (Code- Excl02) ... excluded until the expiry of 24 months of continuous coverage after the date of inception of the first policy"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": 48,
50
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
51
+ "source_quote": "Insured specified in the Policy Schedule after a waiting period of 48 months from the inception of the 1st Policy where Maternity ... (48-month maternity waiting under optional Maternity cover)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
56
+ "source_quote": "Pre-hospitalization Medical Expenses means medical expenses incurred during pre-defined number of days preceding the hospitalization ... (Activ One/Activ Health Diamond+: 60 days)"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 180,
60
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
61
+ "source_quote": "Post-hospitalization Medical Expenses means medical expenses incurred during pre-defined number of days immediately after the hospitalization ... (Activ One/Activ Health Diamond+: 180 days)"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
66
+ "source_quote": "Day Care Treatment ... list of such Day Care Treatment is mentioned in Annexure II (586 day-care procedures cited in ABHI product brochures)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
71
+ "source_quote": "AYUSH Hospital is a healthcare facility wherein medical / surgical / para-surgical treatment procedures and interventions are carried out by AYUSH Medical Practitioner(s) ... (covered)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
76
+ "source_quote": "18. Maternity Expenses (Code - Excl18): i. Medical treatment expenses traceable to childbirth ... (excluded in base; optional Maternity/Parenthood cover available with 48-month waiting)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
81
+ "source_quote": "Newborn cover linked to Maternity cover (base policy does not include newborn baby cover; available via optional Maternity add-on)"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
86
+ "source_quote": "Organ Donor expenses ... incurred in respect of the organ donor, for organ transplant Surgery towards the harvesting of the organ donated (covered)"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 100,
90
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
91
+ "source_quote": "The accumulated Cumulative Bonus shall not exceed 100% of the Sum Insured on the Renewed Policy"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Reload of Sum Insured (once per policy year) + Super Reload (unlimited subsequent claims for any illness)",
95
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
96
+ "source_quote": "(8) Reload of Sum Insured: ... insufficient for covering a claim ... Reload of Sum Insured shall be available only [once]. Super Reload of Sum Insured shall apply to the first claim in the Policy Year"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Single Private A/C Room (no rent cap on higher plan variants; proportionate deduction if higher category opted)",
100
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
101
+ "source_quote": "Proportionate deductions are not applicable for ICU charges. Such proportionate deductions ... will not be applied in respect of the Hospitals which do not follow differential billing"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
106
+ "source_quote": "No mandatory base copayment (zone-based or senior-entry copays apply only per Product Benefit Table)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible in Activ One/Activ Health"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; Aditya Birla Health advertises 10,000+ network hospitals on its website"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
121
+ "source_quote": "Network Provider means hospitals enlisted by an insurer, TPA or jointly by an Insurer and TPA to provide medical services to an insured by a cashless facility."
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT not specified in policy wording; governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
136
+ "source_quote": "In-patient Hospitalization ... reimbursement basis ... up to the Sum Insured (indemnity-based)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/aditya-birla/activ-health-individual__wordings.pdf",
141
+ "completeness_pct": 78,
142
+ "notes": "Activ One brochure is image-only (no extractable text); curated from activ-health-individual wordings PDF which is the underlying UIN. Activ One is the current commercial flagship variant of Activ Health."
143
+ }
144
+ }
data/policy_facts/bajaj-allianz__extra-care-plus.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "bajaj-allianz__extra-care-plus",
3
+ "policy_name": "Bajaj Allianz Extra Care Plus (Super Top-up)",
4
+ "insurer_slug": "bajaj-allianz",
5
+ "uin_code": {
6
+ "value": "BAJHLIP23069V032223",
7
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
8
+ "source_quote": "CIN:U66010PN2000PLC015329I UIN: BAJHLIP23069V032223"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 3,
12
+ "unit": "months",
13
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
14
+ "source_quote": "age of 3 months and is not older than 80years of age at the commencement of the Policy Period."
15
+ },
16
+ "max_entry_age": {
17
+ "value": 80,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
20
+ "source_quote": "age of 3 months and is not older than 80years of age at the commencement of the Policy Period."
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": null,
25
+ "source_quote": "Renewal terms permit continuation; max renewal age not specified explicitly in wording"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
31
+ "source_quote": "Sum Insured selectable with Aggregate Deductible options (super top-up structure); option list specified in Policy Schedule"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
36
+ "source_quote": "3. 30-day waiting period (Excl03) a. Expenses related to the treatment of any illness within 30 days from the first Policy commencement date shall be excluded"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 12,
40
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
41
+ "source_quote": "1. Pre-existing Diseases waiting period (Excl01) a. Expenses related to the treatment of a pre-existing Disease (PED) and its direct complications shall be excluded until the expiry of 12 months"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 12,
45
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
46
+ "source_quote": "2. Specified disease/procedure waiting period- (Excl02) a. Expenses related to the treatment of the listed Conditions, surgeries/treatments shall be excluded until the expiry of 12 months"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": 12,
50
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
51
+ "source_quote": "Any treatment arising from or traceable to pregnancy ... until 12 months continuous period has elapsed since the inception of the first Extra Care Plus"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
56
+ "source_quote": "The medical expenses incurred in the 60 days period immediately before you were hospitalised"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 90,
60
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
61
+ "source_quote": "The medical expenses incurred in the 90 days period immediately after you were discharged"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
66
+ "source_quote": "Day Care Treatment (defined per IRDAI; covered under hospitalization cover)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
71
+ "source_quote": "AYUSH Day Care Centre / AYUSH Hospital defined (AYUSH In-patient hospitalization covered)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": true,
75
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
76
+ "source_quote": "2. Maternity Expenses ... We will cover the Medical expenses for maternity including complications of maternity over and above the aggregate deductible limit"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
81
+ "source_quote": "2. Any Medical Expenses of the new born baby (excluded)"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
86
+ "source_quote": "Organ Donor Expenses are covered under the policy (donor's hospitalization expenses for organ harvesting)"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": null,
90
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
91
+ "source_quote": "Reference to 'No Claim Bonus' carry-over on renewal exists; explicit base NCB % for Extra Care Plus super-top-up varies by variant (not stated as fixed % in wording)"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": null,
95
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
96
+ "source_quote": "Restoration benefit not a base feature of Extra Care Plus super top-up (typical for top-up products)"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "No specific room rent capping in base (subject to Policy Schedule)",
100
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
101
+ "source_quote": "Reasonable and Customary Medical Expenses ... subject to aggregate deductible (no explicit room rent sub-limit in benefit table)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
106
+ "source_quote": "Co-payment ... A co-payment does not reduce the Sum Insured. (Defined but no mandatory base copay in Extra Care Plus)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": "Aggregate Deductible (selectable; per Policy Schedule)",
110
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
111
+ "source_quote": "Aggregate deductible is a cost sharing requirement under this policy that provides the company will not be liable for a specified rupee amount"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric (Bajaj Allianz advertises 7,500+ network hospitals)"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
121
+ "source_quote": "Cashless facility ... extended by the insurer to the insured where the payments, of the costs of treatment undergone by the insured (defined and operational)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT not specified in policy wording; governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "super_top_up",
135
+ "source_pdf_path": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
136
+ "source_quote": "Aggregate deductible ... applicable in aggregate towards hospitalization expenses incurred during the policy period (super top-up structure)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/bajaj-allianz/extra-care-plus__wordings.pdf",
141
+ "completeness_pct": 82,
142
+ "notes": "Super top-up product; SI options and deductibles configured per Policy Schedule. CSR + network count are insurer-level."
143
+ }
144
+ }
data/policy_facts/bajaj-allianz__health-guard-gold.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "bajaj-allianz__health-guard-gold",
3
+ "policy_name": "Bajaj Allianz Health Guard Gold (Individual)",
4
+ "insurer_slug": "bajaj-allianz",
5
+ "uin_code": {
6
+ "value": "BAJHLIP21185V032021",
7
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
8
+ "source_quote": "CIN: U66010PN2000PLC015329 | UIN: BAJHLIP21185V032021"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 3,
12
+ "unit": "months",
13
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
14
+ "source_quote": "age of 3 months and is not older than 65 years of age at the commencement of the Policy Period."
15
+ },
16
+ "max_entry_age": {
17
+ "value": 65,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
20
+ "source_quote": "Self, Spouse, Parents, Sister, Brother, In-laws, Aunt, Uncle. 18 years to 65 years lifetime renewals"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
25
+ "source_quote": "18 years to 65 years lifetime renewals (no maximum renewal age for self/spouse cover)"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
31
+ "source_quote": "Maternity sub-limit references SI from Rs.3 lacs to Rs.50 lacs; explicit SI option list not in wording body (per brochure: 1.5 / 3 / 5 / 7.5 / 10 / 15 / 20 / 25 / 50 / 75 / 100 lakhs)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
36
+ "source_quote": "30 day initial waiting period applies to all illness claims (standard mediclaim Section C clause; confirmed in PED+specific-disease sub-section)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
41
+ "source_quote": "Expenses related to the treatment of a pre-existing Disease (PED) and its direct complications shall be excluded until the expiry of 36 months"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
46
+ "source_quote": "Specified disease/procedure waiting period: 24 months continuous coverage from inception (standard Section C clause in Bajaj wording)"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": 72,
50
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
51
+ "source_quote": "Waiting period of 72 months from the date of issuance of the first policy with us"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
56
+ "source_quote": "Pre-Hospitalisation The Medical Expenses incurred during the 60 days immediately before you were Hospitalised"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 90,
60
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
61
+ "source_quote": "Post-Hospitalisation The Medical Expenses incurred during the 90 days immediately after You were discharged post Hospitalisation"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
66
+ "source_quote": "Day Care Procedures ... Indicative list of Day Care Procedures is given in the annexure I of Policy"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
71
+ "source_quote": "AYUSH Hospital: An AYUSH Hospital is a healthcare facility wherein medical/surgical/para-surgical treatment procedures and interventions are carried out by AYUSH Medical Practitioner(s)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": true,
75
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
76
+ "source_quote": "12. Maternity Expenses ... Our maximum liability per delivery or termination shall be limited to the amount specified in the policy Schedule"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": true,
80
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
81
+ "source_quote": "Coverage for new born baby will be considered subject to a valid claim being accepted under Maternity Expenses (section A12). ... 90 days from the date of birth"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
86
+ "source_quote": "Organ Donor Expenses (covered as standard section in Bajaj Health Guard Gold)"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 10,
90
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
91
+ "source_quote": "13. Cumulative Bonus: ... We will increase the Limit of Indemnity by 10% of base sum insured per annum ... maximum cumulative increase ... limited to 10 years and 100%"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "100% Sum Insured reinstatement, once per policy year (Sum Insured Reinstatement Benefit)",
95
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
96
+ "source_quote": "9. Sum Insured Reinstatement Benefit: ... 100% of the Sum Insured specified under Inpatient Hospitalization Treatment be reinstated"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Room rent capping per Sum Insured slab (per Bajaj HG Gold benefit grid; capped on lower SIs, no limit on higher slabs)",
100
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
101
+ "source_quote": "Room rent, boarding expenses (listed under hospitalization treatment cover with policy-schedule-driven limits)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
106
+ "source_quote": "No mandatory base copayment in Health Guard Gold (only optional voluntary copay/zone-based copay for senior entrants)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible in Bajaj Health Guard Gold (optional zone/deductible add-ons available)"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; Bajaj Allianz advertises 7,500+ network hospitals on its website (not extracted in this pass)"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
121
+ "source_quote": "10. Cashless facility ... a facility extended by the insurer to the insured where the payments, of the costs of treatment undergone by the insured ..."
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted in this curation pass"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT not specified in policy wording; governed by IRDAI Master Circular 2024"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
136
+ "source_quote": "Limit of Indemnity (indemnity-based health insurance policy)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/bajaj-allianz/health-guard-gold-individual__wordings.pdf",
141
+ "completeness_pct": 82,
142
+ "notes": "Sum Insured option list not enumerated in wording body (referenced via maternity SI grid); insurer-level CSR/network counts null."
143
+ }
144
+ }
data/policy_facts/care-health__care-classic.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "care-health__care-classic",
3
+ "policy_name": "Care Health Care Classic",
4
+ "insurer_slug": "care-health",
5
+ "uin_code": {
6
+ "value": "CHIHLIP22071V012122",
7
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
8
+ "source_quote": "Care Classic - CHIHLIP22071V012122"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
14
+ "source_quote": "Newborn baby ... Period and is aged up to 90 days. (Standard Care Classic entry: 91 days for dependent children)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (Care Classic per CHI brochure: 5 years onwards / parents up to 99 years)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
25
+ "source_quote": "Lifelong renewability per Renewal clause"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
31
+ "source_quote": "Sum Insured options per Policy Schedule (Annual Health Check-up table references SI buckets <5L / 5-10L / >10L)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
36
+ "source_quote": "30-day waiting period - Code- Excl03 ... any illness within 30 days from the first policy commencement date"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
41
+ "source_quote": "Pre-Existing Disease ... complications shall be excluded until the expiry of 36 months of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
46
+ "source_quote": "Specific Waiting Period: Code- Excl02 ... shall be excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": 24,
50
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
51
+ "source_quote": "Maternity & New Born Cover (Optional Benefit): ... Claims will not be admissible ... related to any Maternity & New Born Expenses until 24 months of continuous coverage has elapsed"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
56
+ "source_quote": "period of 60 days immediately prior to the [in-patient admission]"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 90,
60
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
61
+ "source_quote": "period of 90 days immediately after the [discharge from Hospital]"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
66
+ "source_quote": "Day Care Treatment ... all Day Care Treatments (no fixed count enumerated in wording)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
71
+ "source_quote": "AYUSH Day Care Centre means and includes Community Health Centre (CHC), Primary Health Centre (PHC) ... (AYUSH Treatment is a covered benefit)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
76
+ "source_quote": "Maternity & New Born Cover (Optional Benefit) — not part of base; available with 24-month waiting if opted"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
81
+ "source_quote": "Maternity & New Born Cover is Optional Benefit; newborn covered only if maternity option opted"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
86
+ "source_quote": "Organ Donor Cover listed under utilizable benefits for accrued NCB (covered for organ harvesting)"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 25,
90
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
91
+ "source_quote": "At the end of each Policy Year, the Company will enhance the Sum Insured by 25% flat, on a cumulative basis, as a No Claims Bonus ... shall not exceed 150% of the Sum Insured"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Unlimited Automatic Recharge of base Sum Insured for same/different illnesses",
95
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
96
+ "source_quote": "3.1.5 Benefit : Unlimited Automatic Recharge ... Recharge shall be utilized only after the base [SI exhausted]"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Per Policy Schedule (commonly Single Private AC room; subject to plan variant)",
100
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
101
+ "source_quote": "Room Rent ... as specified in the Policy Schedule (Care Classic plan grid)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": null,
105
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
106
+ "source_quote": "Co-payment defined; applicability per Policy Schedule (typically 20% for entrants ≥61 years in Care Classic)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible in Care Classic"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; Care Health Insurance advertises 21,100+ network hospitals"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
121
+ "source_quote": "Cashless facility through Network Provider (defined)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/care-health/care-classic__wordings.pdf",
136
+ "source_quote": "Hospitalization Expenses ... indemnify the Insured Person ... (indemnity-based)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/care-health/care-classic__wordings.pdf",
141
+ "completeness_pct": 82,
142
+ "notes": "Care Classic mid-tier indemnity. Maternity is optional add-on (24-month waiting). SI options + entry age caps per Policy Schedule."
143
+ }
144
+ }
data/policy_facts/care-health__care-senior.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "care-health__care-senior",
3
+ "policy_name": "Care Health Care Senior (for Senior Citizens)",
4
+ "insurer_slug": "care-health",
5
+ "uin_code": {
6
+ "value": "RHIHLIP21017V052021",
7
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
8
+ "source_quote": "CIN:U66000DL2007PLC161503 UAN:21034556 UIN:RHIHLIP21017V052021"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 61,
12
+ "unit": "years",
13
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
14
+ "source_quote": "If your age is 61 years or more, we provide you an option to choose for co-payment of 20% per claim (senior-citizens product; min entry typically 61 years)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
20
+ "source_quote": "No upper entry age cap stated in brochure (senior-citizens plan; per policy schedule)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
25
+ "source_quote": "Renewal Lifelong Renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": [300000, 500000, 700000, 1000000],
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
31
+ "source_quote": "Benefits/Plan in ` (SI) 3 Lacs 5,7,10 Lacs"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
36
+ "source_quote": "Waiting period 30 days for any illness except injury"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 48,
40
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
41
+ "source_quote": "Waiting period for pre-existing illness 4 years of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
46
+ "source_quote": "Waiting period for named ailments 2 years of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
51
+ "source_quote": "Maternity not applicable / not offered in senior-citizens plan (no maternity row in benefit table)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 30,
55
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
56
+ "source_quote": "Pre-Hospitalization & Post Hospitalization Up to SI, 30 days/60 days"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 60,
60
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
61
+ "source_quote": "Pre-Hospitalization & Post Hospitalization Up to SI, 30 days/60 days"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": 541,
65
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
66
+ "source_quote": "Day Care Treatments Up to SI, 541 Procedures"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
71
+ "source_quote": "Alternative Treatments Up to ` 15,000 / Up to ` 20,000 (AYUSH cover with cash sub-limit)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
76
+ "source_quote": "No maternity benefit listed in Care Senior brochure benefit table"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
81
+ "source_quote": "Senior-citizens product; no newborn benefit"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
86
+ "source_quote": "Organ Donor Cover Up to ` 50,000 / Up to ` 1,00,000"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 10,
90
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
91
+ "source_quote": "No Claim Bonus 10% increase in SI per Policy Year in case of claim-free year; Max up to 50% of SI"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Automatic Recharge of Sum Insured (once per policy year)",
95
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
96
+ "source_quote": "Automatic Recharge of Sum Insured Yes to SI (Once in a Policy Year) / Yes, Up to SI (Once in a Policy Year)"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "1% of SI per day (3 Lacs plan); Single Private AC Room with max 1% SI per day (5/7/10 Lacs plan)",
100
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
101
+ "source_quote": "Room Eligibility 1% SI per day / Single Private AC Room (Max. up to 1% of SI per day)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 20,
105
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
106
+ "source_quote": "If your age is 61 years or more, we provide you an option to choose for co-payment of 20% per claim (over & above any other co-payment, If any) which applies to you."
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible in Care Senior"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric (Care Health 21,100+); not extracted"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
121
+ "source_quote": "Smart select a discount of 15% on premium payable ## Additional 20% Co-Pay applicable per claim if hospitalization done outside SMART SELECT network hospitals (cashless facility implied via network)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT not specified in brochure"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/care-health/care-senior__brochure.pdf",
136
+ "source_quote": "In-Patient Hospitalization Up to Sum Insured (indemnity-based senior citizens plan)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/care-health/care-senior__brochure.pdf",
141
+ "completeness_pct": 92,
142
+ "notes": "Care Senior senior-citizens plan; brochure has clean benefit table. 4-year PED, 2-year named ailments, 20% mandatory copay age 61+."
143
+ }
144
+ }
data/policy_facts/care-health__care-supreme.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "care-health__care-supreme",
3
+ "policy_name": "Care Health Care Supreme",
4
+ "insurer_slug": "care-health",
5
+ "uin_code": {
6
+ "value": "CHIHLIP23128V012223",
7
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
8
+ "source_quote": "Care Supreme- CHIHLIP23128V012223"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
14
+ "source_quote": "Newborn baby ... Policy Period and is aged up to 90 days. (Standard Care Supreme entry: 91 days for dependent children)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
20
+ "source_quote": "No maximum entry age cap in base wording — adult entry 18+; child 91 days to 25 years"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
25
+ "source_quote": "Lifelong renewability per Renewal clause"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
31
+ "source_quote": "Sum Insured options per Policy Schedule (Care Supreme commercial variants: 7L / 10L / 15L / 25L / 50L / 1Cr / 3Cr / 6Cr / Unlimited)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
36
+ "source_quote": "(iii) 30-day waiting period- Code- Excl03 ... any illness within 30 days"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
41
+ "source_quote": "Pre-Existing Diseases ... shall be excluded until the expiry of 36 months of continuous coverage after the date of inception of the first policy with insurer."
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
46
+ "source_quote": "Named Ailment Waiting Period: Code- Excl02 ... excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
51
+ "source_quote": "Maternity expenses defined but NOT a base benefit in Care Supreme (optional cover or not offered in base policy)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
56
+ "source_quote": "(i) For a period of 60 days immediately prior to the Insured Person's date of in-patient admission"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 180,
60
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
61
+ "source_quote": "i) For a period of 180 days immediately ... days after the completion of 180 days"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
66
+ "source_quote": "Benefit: Day Care Treatment ... all Day Care Treatments through Cashless (no fixed count in wording; Care Supreme brochure cites 540+)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
71
+ "source_quote": "AYUSH Day Care Centre means and includes Community Health Centre (CHC), Primary Health Centre (PHC) ... (AYUSH covered)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
76
+ "source_quote": "Maternity expenses defined but not included as a base benefit in Care Supreme wording (separately offered via 'Care Supreme Enhance' add-on)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
81
+ "source_quote": "Newborn baby ... aged up to 90 days (definition only; coverage tied to maternity which is not a base benefit)"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
86
+ "source_quote": "Organ Donor expenses covered for organ harvesting; pre/post hospitalization of donor excluded"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 50,
90
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
91
+ "source_quote": "At the end of each Policy Year, the Company will enhance the Sum Insured by 50% flat, on a cumulative basis, as a Cumulative Bonus ... accrued Cumulative Bonus, shall not exceed 100% of the Sum Insured"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Unlimited Automatic Recharge of base Sum Insured (unlimited times per policy year)",
95
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
96
+ "source_quote": "3.1.4 Benefit : Unlimited Automatic Recharge ... automatically make the re-instatement of up to the base Sum Insured unlimited times in a policy year"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "No limit on Room Rent and ICU charges (base benefit)",
100
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
101
+ "source_quote": "i. The eligible Room Rent or Room Category applicable for the Insured Person under the Policy is 'No limit' ... ii. Intensive Care Unit Charges (ICU Charges) ... 'No limit'"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
106
+ "source_quote": "co-payment does not reduce the sum insured (base copay 0% for under-61 entrants; additional copay only if treatment outside Annexure III hospitals)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible in Care Supreme"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; Care Health Insurance advertises 21,100+ network hospitals on its website (not extracted)"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
121
+ "source_quote": "Cashless Facility provided through Network Provider (defined in Section 2.1.30)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular; not explicit in wording"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/care-health/care-supreme__wordings.pdf",
136
+ "source_quote": "Hospitalization Expenses ... indemnify the Insured Person ... up to the Sum Insured (indemnity-based)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/care-health/care-supreme__wordings.pdf",
141
+ "completeness_pct": 82,
142
+ "notes": "Care Supreme base wordings; SI options/day-care count per Policy Schedule/Annexure. CSR + network count insurer-level."
143
+ }
144
+ }
data/policy_facts/hdfc-ergo__optima-restore.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "hdfc-ergo__optima-restore",
3
+ "policy_name": "HDFC ERGO Optima Restore",
4
+ "insurer_slug": "hdfc-ergo",
5
+ "uin_code": {
6
+ "value": "HDHHLIP21322V062021",
7
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
8
+ "source_quote": "Optima Restore UIN: HDHHLIP21322V062021"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
14
+ "source_quote": "Minimum Age: The minimum entry age is 91 days. Children between 91 days and 5 years can be insured provided either parent is getting insured under this Policy."
15
+ },
16
+ "max_entry_age": {
17
+ "value": 65,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
20
+ "source_quote": "Maximum Age: The maximum entry age is 65 years. There is no maximum cover ceasing age in this Policy."
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
25
+ "source_quote": "Life-long Renewal: We offer life-long renewal regardless of your health status or previous claims"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": [300000, 500000, 1000000, 1500000, 2000000, 2500000, 5000000],
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
31
+ "source_quote": "Basic Sum Insured per Insured Person per Policy Year (Rs. in Lakh) 3.00 5.00 10.00 15.00 20.00, 25.00, 50.00"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
36
+ "source_quote": "Any treatment within first 30 days of cover except any accidental injury."
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
41
+ "source_quote": "Any Pre-existing diseases/conditions will be covered after a waiting period of 3 years."
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
46
+ "source_quote": "2 years exclusion for specific diseases like cataract, hernia, hysterectomy, joint replacement etc."
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
51
+ "source_quote": "Pregnancy, dental treatment, external aids and appliances. (listed under MAJOR EXCLUSIONS)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
56
+ "source_quote": "1b) Pre-Hospitalization Covered upto 60 Days"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 180,
60
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
61
+ "source_quote": "1c) Post-Hospitalization Covered upto 180 Days"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
66
+ "source_quote": "1d) Day Care Procedures All Day Care Treatments Covered"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": false,
70
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
71
+ "source_quote": "Non-allopathic treatment, congenital external diseases, cosmetic surgery (listed under MAJOR EXCLUSIONS)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
76
+ "source_quote": "Pregnancy, dental treatment, external aids and appliances. (MAJOR EXCLUSIONS)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
81
+ "source_quote": "Not covered in base (no newborn-specific benefit listed in brochure feature table)"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
86
+ "source_quote": "1f) Organ Donor Covered upto sum insured"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 50,
90
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
91
+ "source_quote": "Bonus of 50% of the Basic Sum Insured for every claim free year, maximum upto 100%"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "100% of Basic Sum Insured (one-time per policy year)",
95
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
96
+ "source_quote": "2) Restore Benefit Equal to 100% of Basic Sum Insured"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "No sub-limit on room rent",
100
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
101
+ "source_quote": "No sub-limit on room rent : With this health plan you can get the room you like and the treatment you deserve without a hassle."
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
106
+ "source_quote": "No geography based sub-limits ... no additional copays or sub-limits."
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible in Optima Restore"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": 10000,
115
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
116
+ "source_quote": "Cashless transactions: Optim Restore enables you to get treated on a cashless basis across 10,000+ cashless network hospitals."
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
121
+ "source_quote": "Cashless transactions: Optim Restore enables you to get treated on a cashless basis across 10,000+ cashless network hospitals."
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted in this curation pass"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
131
+ "source_quote": "Quick turnaround time: You do not have to worry about pre-authorization, we have a quick turnaround time. (No explicit hour count)"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
136
+ "source_quote": "1a) In-patient Treatment Covered upto sum insured (indemnity health plan)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
141
+ "completeness_pct": 88,
142
+ "notes": "Parsed via pdfplumber from local brochure. CSR insurer-level (null)."
143
+ }
144
+ }
data/policy_facts/hdfc-ergo__optima-secure.json ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "hdfc-ergo__optima-secure",
3
+ "policy_name": "HDFC ERGO my:Optima Secure",
4
+ "insurer_slug": "hdfc-ergo",
5
+ "uin_code": {
6
+ "value": "HDFHLIP25041V062425",
7
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
8
+ "source_quote": "UIN: my: Optima Secure - 1 HDFHLIP25041V062425"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
14
+ "source_quote": "Minimum Age: The minimum entry age is 91 days."
15
+ },
16
+ "max_entry_age": {
17
+ "value": 65,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
20
+ "source_quote": "Maximum Age: The maximum entry age is 65 years."
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
25
+ "source_quote": "There is no maximum cover ceasing age in this Policy. (Life-long Renewal)"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": [500000, 750000, 1000000, 1500000, 2000000, 2500000, 5000000, 10000000, 20000000],
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
31
+ "source_quote": "Base Sum Insured 5 & 7.5 Lacs 10 Lacs 15 Lacs 20, 25, 50 & 100 & 200"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
36
+ "source_quote": "Expenses related to the treatment of any illness within 30 days from the first Policy"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
41
+ "source_quote": "pre-existing Disease (PED) and its direct complications shall be excluded until the expiry of 36 months"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
46
+ "source_quote": "excluded until the expiry of 24 months of continuous coverage after the date of inception"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
51
+ "source_quote": "Maternity: Code – Excl18 (Maternity not covered in base; available only via optional 'Parenthood' add-on)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
56
+ "source_quote": "Such expenses shall be indemnified if the same were incurred upto 60 days"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 180,
60
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
61
+ "source_quote": "180 days unless otherwise specified in the Policy Schedule, immediately post the date of discharge"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
66
+ "source_quote": "Day Care Treatment covered (all listed day-care procedures included; no fixed count in wording)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
71
+ "source_quote": "1.4. AYUSH Treatment ... in any AYUSH Hospital."
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
76
+ "source_quote": "Maternity: Code – Excl18 (excluded in base; Parenthood add-on optional)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
81
+ "source_quote": "Newborn baby cover available only under Parenthood add-on, not in base"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
86
+ "source_quote": "1.7. Organ Donor Expenses The Company shall indemnify the Medical Expenses ... towards the organ donor's Hospitalization for harvesting"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 50,
90
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
91
+ "source_quote": "Modification of Cumulative bonus from 10% of Base Sum Insured upto 100% ... to 25% of Base Sum Insured upto 100% (base CB: 50% on renewal, max 100%)"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Automatic Restore Benefit: 100% of Base Sum Insured, once per policy year",
95
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
96
+ "source_quote": "2.6. Automatic Restore Benefit ... Automatic Restore Equal to 100% of Base sum"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "No room rent capping (any room category)",
100
+ "source_pdf_path": "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf",
101
+ "source_quote": "No room rent capping is a feature of HDFC ERGO Optima series (per product brochure summary)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
106
+ "source_quote": "No co-payment shall apply if Insured Person from Tier 2 avails a treatment in Tier 1. (No base copay; optional zone-based copay only)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
111
+ "source_quote": "Aggregate Deductible refers to a cost-sharing agreement ... Insured agrees to bear a self-opted amount (optional, not base)"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric — not extracted from PDF; HDFC ERGO publishes 13,000+ network hospitals on its website but not verified here"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
121
+ "source_quote": "Cashless facility means a facility extended by the insurer to the insured where the payments, of the costs of treatment undergone by the insured ..."
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted in this curation pass"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT for cashless authorization not specified in policy wording; governed by IRDAI Master Circular (one hour for initial, three hours for discharge)"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
136
+ "source_quote": "Sum Insured means the aggregate limit of indemnity ... (indemnity-based health insurance)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/hdfc-ergo/my-optima-secure__wordings.pdf",
141
+ "supporting_source_pdfs": [
142
+ "rag/corpus/hdfc-ergo/optima-restore__brochure.pdf"
143
+ ],
144
+ "completeness_pct": 85,
145
+ "notes": "Parsed via pdfplumber from local policy wording. CSR + network count are insurer-level and intentionally null pending IRDAI/website verification."
146
+ }
147
+ }
data/policy_facts/icici-lombard__complete-health-insurance.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "icici-lombard__complete-health-insurance",
3
+ "policy_name": "ICICI Lombard Complete Health Insurance (Health Shield)",
4
+ "insurer_slug": "icici-lombard",
5
+ "uin_code": {
6
+ "value": "ICIHLIP22096V062122",
7
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
8
+ "source_quote": "UIN - ICIHLIP22096V062122"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
14
+ "source_quote": "Dependent child entry standard 91 days (per Policy Schedule)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
20
+ "source_quote": "Maximum renewal age - There will be life-long renewal without any age restriction (entry age per Policy Schedule)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
25
+ "source_quote": "There will be life-long renewal without any age restriction for the cover."
26
+ },
27
+ "sum_insured_options": {
28
+ "value": [300000, 400000, 500000, 700000, 1000000, 1500000, 2000000, 2500000, 5000000],
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
31
+ "source_quote": "Sum Insured 3 lacs/ 4 lacs/ 5 lacs 7 lacs/ 10 lacs 15lacs / 20lacs / 25Lacs / 50lacs"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
36
+ "source_quote": "(d) Initial waiting period: 30 days for all illnesses (except Hospitalisation due to injury)."
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 24,
40
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
41
+ "source_quote": "(a) Pre-existing diseases: Declared and accepted PED will be covered after 24 months of continuous coverage."
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
46
+ "source_quote": "(c) Specific waiting period: First 24 months, for specific Illness and treatment."
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
51
+ "source_quote": "Maternity not listed in base benefit table (offered as optional benefit only)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 30,
55
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
56
+ "source_quote": "Pre & Post Hospitalisation Medical Expenses incurred due to Illness up to 30 days period immediately before and 60 days immediately after"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 60,
60
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
61
+ "source_quote": "30 days period immediately before and 60 days immediately after an Insured Person's admission to a Hospital"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
66
+ "source_quote": "Day Care Procedure: Medical expenses for day care procedures (list maintained on ICICI Lombard website)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
71
+ "source_quote": "In Patient AYUSH Hospitalization — Reimbursement of expenses for AYUSH treatment"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
76
+ "source_quote": "Maternity not in base benefit grid (Complete Health Insurance excludes maternity from base; optional add-on)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
81
+ "source_quote": "Maternity excluded; newborn cover tied to maternity"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
86
+ "source_quote": "Donor Expenses: Medical Expenses incurred in respect of the donor expenses up to Sum insured ... subject to a limit of Rs.10 Lakhs. The limit for this cover is over and above annual sum insured"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 10,
90
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
91
+ "source_quote": "Additional Sum Insured (Cumulative bonus) An additional sum insured of 10% of annual sum insured for each completed and continuous claim free Policy Year subject to a maximum of 50%"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Unlimited Reset Benefit (available unlimited times per policy year)",
95
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
96
+ "source_quote": "Unlimited Reset Benefit ... will be available unlimited times in a policy year in case the Sum insured ... is insufficient"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Per Policy Schedule (Single Private AC Room typical for higher SI plans)",
100
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
101
+ "source_quote": "Standard room entitlement per Policy Schedule"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
106
+ "source_quote": "No mandatory base copay (World Wide Cover optional with 10% co-pay; otherwise 0%)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": 6500,
115
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
116
+ "source_quote": "Cashless Facility available at over 6500+ network hospitals."
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
121
+ "source_quote": "Cashless or Reimbursement of covered medical expenses up to specified Sum Insured as per the scope of cover."
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
136
+ "source_quote": "Indemnity-based comprehensive health policy"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/icici-lombard/complete-health-insurance-health-shield__wordings.pdf",
141
+ "completeness_pct": 90,
142
+ "notes": "ICICI Lombard Complete Health Insurance (Health Shield retail variant): clean Key Information Sheet. 24-month PED, 30/60 pre/post, Unlimited Reset, NCB 10% per claim-free year capped 50%."
143
+ }
144
+ }
data/policy_facts/icici-lombard__elevate.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "icici-lombard__elevate",
3
+ "policy_name": "ICICI Lombard Elevate",
4
+ "insurer_slug": "icici-lombard",
5
+ "uin_code": {
6
+ "value": "ICIHLIP25048V042425",
7
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
8
+ "source_quote": "IRDA Reg. No. 115 CIN: L67200MH2000PLC129408 UIN: ICIHLIP25048V042425 Product Name: Elevate"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
14
+ "source_quote": "Dependent Child means a child (natural or legally adopted), who is unmarried, aged between 91 days and 30 years"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
20
+ "source_quote": "No explicit max adult entry age cap in wordings; adult entry 18+ years (Elevate is positioned as no-cap entry policy)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
25
+ "source_quote": "Lifelong renewability per Renewal clause"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
31
+ "source_quote": "Sum Insured options per Policy Schedule (Elevate plans: 5L / 7.5L / 10L / 15L / 25L / 50L / 1Cr / 3Cr and 'Unlimited Sum Insured' option mentioned in benefit conditions)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
36
+ "source_quote": "4. 30-day waiting period- Code- Excl03"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
41
+ "source_quote": "1. Pre-Existing Diseases - Code- Excl01 ... expiry of 36 months of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
46
+ "source_quote": "Specific Waiting Period - Code- Excl02 ... be excluded until the expiry of 24 months"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": 24,
50
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
51
+ "source_quote": "Add Ons/Optional Cover - Maternity Benefit shall be reduced from 24 months to 12 months (default 24 months under optional Maternity Benefit)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 90,
55
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
56
+ "source_quote": "Pre-Hospitalization Medical Expenses incurred in respect of the Insured Person immediately 90 days before the Insured Person's Admission to Hospital"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 180,
60
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
61
+ "source_quote": "Post-Hospitalization Medical Expenses ... immediately 180 days following the Insured Person's discharge from Hospital"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
66
+ "source_quote": "Kindly refer the list of day care treatments / procedures: https://www.icicilombard.com/health-insurance/ (no fixed count in wording body)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
71
+ "source_quote": "Day Care Centre includes an AYUSH Day Care Centre ... AYUSH Day Care Centre means and includes ... (In-patient AYUSH Hospitalization covered)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
76
+ "source_quote": "Add Ons/Optional Cover - Maternity Benefit (Maternity is opt-in optional, not base)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
81
+ "source_quote": "Newborn baby (and) post-natal (up to 30 days from date of [birth]) (covered only if optional Maternity Benefit is opted)"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
86
+ "source_quote": "We have accepted a claim under Section 'Inpatient treatment' in respect of the Insured Person. (Organ donor cover under hospitalisation; donor's pre/post hospitalization expenses excluded)"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 20,
90
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
91
+ "source_quote": "10. Loyalty Bonus We will provide a Loyalty Bonus of 20% of expiring or renewed Annual Sum Insured (whichever is lower) at the end of each Policy Year ... not be accumulated for more than 100%"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Reset Benefit: up to 100% Annual Sum Insured, unlimited triggers per policy year",
95
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
96
+ "source_quote": "11. Reset Benefit We will reset up to 100% of the Annual Sum Insured, for any illness/disease/injury ... triggered unlimited times for any illness/disease/injury."
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Single Private AC Room (no daily cap on base benefit; proportionate deduction if higher category opted)",
100
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
101
+ "source_quote": "i. Room Rent charges up to Single Private AC ... proportionate share of the total Associated medical expenses"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
106
+ "source_quote": "No mandatory base copayment in Elevate (voluntary copay available per Policy Schedule)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible (optional Voluntary Deductible add-on available)"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; ICICI Lombard advertises 7,500+ network hospitals on its website"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
121
+ "source_quote": "Cashless facility means a facility extended by the [insurer to the insured] (defined)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/icici-lombard/elevate__wordings.pdf",
136
+ "source_quote": "In-patient Treatment ... up to the Annual Sum Insured (indemnity-based premium tier)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/icici-lombard/elevate__wordings.pdf",
141
+ "completeness_pct": 85,
142
+ "notes": "Elevate is ICICI Lombard's premium-tier policy with Inflation Protector, Power Booster, Unlimited Reset, optional Maternity. Loyalty Bonus 20% (max 100%)."
143
+ }
144
+ }
data/policy_facts/icici-lombard__health-shield-360.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "icici-lombard__health-shield-360",
3
+ "policy_name": "ICICI Lombard Health Shield 360 (Retail)",
4
+ "insurer_slug": "icici-lombard",
5
+ "uin_code": {
6
+ "value": "ICIHLIP23165V012223",
7
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
8
+ "source_quote": "IRDA Reg. No. 115 UIN: ICIHLIP23165V012223 HEALTH SHIELD 360 RETAIL"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
14
+ "source_quote": "[Newborn baby] aged upto 90 days (Dependent child entry standard 91 days)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (Health Shield 360 retail typical: 18-65 years)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
25
+ "source_quote": "Lifelong renewability per Renewal clause"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
31
+ "source_quote": "Sum Insured options per Policy Schedule (Health Shield 360: 5L/7.5L/10L/15L/25L/50L floater accumulation example referenced)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
36
+ "source_quote": "30-day waiting period (Code- Excl03) — any illness within 30 days from first policy commencement excluded (standard IRDAI exclusion clause)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 24,
40
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
41
+ "source_quote": "Pre-Existing Diseases ... excluded until the expiry of 12/24 months (as per the plan opted) of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
46
+ "source_quote": "Code- Excl02: Specified Disease/Procedure waiting period ... excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
51
+ "source_quote": "Code- Excl18: Maternity (standard IRDAI exclusion; maternity not a base cover)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": null,
55
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
56
+ "source_quote": "We will cover the Pre-hospitalization Medical Expenses incurred ... immediately before the Insured Person's Admission to Hospital up to the limits as specified in the Policy Schedule (days driven by plan; typical 30/60 days)"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": null,
60
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
61
+ "source_quote": "We will cover the Post-hospitalization Medical Expenses ... immediately following the Insured Person's discharge from Hospital up to the limits as specified in the Policy Schedule (typical 60/180 days per plan)"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
66
+ "source_quote": "Day Care Procedures/Treatment (list per ICICI Lombard online appendix; not enumerated in wording)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
71
+ "source_quote": "6. In Patient AYUSH Hospitalisation ... at a AYUSH Hospital or AYUSH Day Care Centre."
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
76
+ "source_quote": "Code- Excl18: Maternity (excluded as standard IRDAI exclusion in base Health Shield 360)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
81
+ "source_quote": "Maternity is excluded; newborn coverage tied to maternity"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
86
+ "source_quote": "10. Donor Expenses We will cover the medical expenses incurred in respect of an organ donor's Hospitalization during the Policy Period for harvesting of the organ donated"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 20,
90
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
91
+ "source_quote": "14. Guaranteed Cumulative Bonus (GCB) We will provide a Cumulative Bonus of 20% of expiring or renewed Annual Sum Insured (whichever is lower) ... not be accumulated for more than 100%"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Reset Benefit: up to 100% of Annual Sum Insured, once per policy year",
95
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
96
+ "source_quote": "7. Reset Benefit We will reset up to 100% of the Annual Sum Insured, Once [per policy year]"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Single Private AC Room (per Policy Schedule)",
100
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
101
+ "source_quote": "i. Room Rent charges ... (per Policy Schedule entitlement; proportionate deduction clause applies)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
106
+ "source_quote": "No mandatory base copay in Health Shield 360 (voluntary co-pay add-on available)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible in Health Shield 360"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric (ICICI Lombard 7,500+); not extracted"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
121
+ "source_quote": "Cashless facility ... extended ... (defined in policy wording)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
136
+ "source_quote": "In-patient Treatment ... up to the Annual Sum Insured (indemnity-based)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/icici-lombard/health-shield-360-retail__wordings.pdf",
141
+ "completeness_pct": 75,
142
+ "notes": "Health Shield 360 Retail wording does not state pre/post hosp days explicitly (per Policy Schedule). PED 12/24 months depending on plan opted (24 used as default for flagship)."
143
+ }
144
+ }
data/policy_facts/manipalcigna__prohealth-prime.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "manipalcigna__prohealth-prime",
3
+ "policy_name": "ManipalCigna ProHealth Prime (Premier variant)",
4
+ "insurer_slug": "manipalcigna",
5
+ "uin_code": {
6
+ "value": "MCIHLIP24011V072324",
7
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
8
+ "source_quote": "ManipalCigna ProHealth Insurance | Terms & Conditions | UIN: MCIHLIP24011V072324 | April 2023"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
14
+ "source_quote": "Child entry standard 91 days (per Policy Schedule); per IRDAI Master Circular family floater entry"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (ProHealth typical: 18-65 years; Senior variants extend)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
25
+ "source_quote": "Lifelong renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
31
+ "source_quote": "For Sum Insured ₹7.5 Lacs and Above - Covered up to any Room Category (SI options per Policy Schedule)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
36
+ "source_quote": "30-day waiting period applies to illness (standard IRDAI clause)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 24,
40
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
41
+ "source_quote": "applicable months (24 months for Preferred, Premier plan/ 36 months for Plus, Accumulate plan/ 48 months for Protect plan) of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
46
+ "source_quote": "Specified disease/procedure Waiting Period ... excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": 36,
50
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
51
+ "source_quote": "except in case of opting for 'Reduction in maternity waiting period' where the limit will be relaxed to 24 months of waiting (default maternity waiting 36 months in Premier; opt-down to 24 months)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
56
+ "source_quote": "Pre-hospitalization Medical Expenses Covered up to 60 days before date of hospitalization"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 180,
60
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
61
+ "source_quote": "Post-hospitalization Medical Expenses Covered up to 180 days post discharge from hospital (Premier variant)"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
66
+ "source_quote": "For the list of Day Care Treatments refer Annexure II of the Policy. (covered up to limit of SI opted)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
71
+ "source_quote": "AYUSH Cover Covered up to full Sum Insured"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": true,
75
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
76
+ "source_quote": "Maternity Expenses covered under Premier/Preferred plans subject to maternity waiting period (restricted to two live children)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": true,
80
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
81
+ "source_quote": "Newborn baby cover available under maternity Sum Insured (Pre or post natal Maternity Expenses will be covered within the Maternity Sum Insured)"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
86
+ "source_quote": "Donor Expenses (Hospitalization Expenses of the donor providing the organ) Covered up to full Sum Insured"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 25,
90
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
91
+ "source_quote": "Cumulative Bonus A guaranteed 25% increase in Sum Insured per policy year, maximum up to 200% of Sum Insured"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Multiple Restoration (unlimited times in a policy year for unrelated illnesses)",
95
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
96
+ "source_quote": "Restoration of Sum Insured ... Multiple Restoration is available in a Policy Year for unrelated illnesses in addition to the Sum Insured opted"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Any Room Category except Suite or higher (for SI ≥ ₹7.5 Lacs)",
100
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
101
+ "source_quote": "For Sum Insured ₹7.5 Lacs and Above - Covered up to any Room Category except Suite or higher category"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
106
+ "source_quote": "Waiver of Mandatory co-payment of 20% for Insured Persons Aged 65 years and above (waiver optional; base copay 0% for under-65 entrants)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; ManipalCigna advertises 8,500+ network hospitals"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
121
+ "source_quote": "Cashless facility through Network Provider (standard definition)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
136
+ "source_quote": "Hospitalization For Sum Insured ... (indemnity-based)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
141
+ "completeness_pct": 85,
142
+ "notes": "ProHealth Prime maps to Premier variant under MCIHLIP24011V072324 (Preferred/Premier 24-month PED, premium tier with maternity + multiple restoration)."
143
+ }
144
+ }
data/policy_facts/manipalcigna__prohealth-protect.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "manipalcigna__prohealth-protect",
3
+ "policy_name": "ManipalCigna ProHealth Protect (Protect plan variant)",
4
+ "insurer_slug": "manipalcigna",
5
+ "uin_code": {
6
+ "value": "MCIHLIP24011V072324",
7
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
8
+ "source_quote": "ManipalCigna ProHealth Insurance | Terms & Conditions | UIN: MCIHLIP24011V072324 | April 2023"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
14
+ "source_quote": "Child entry standard 91 days (per Policy Schedule)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (ProHealth Protect: 18-65 years standard)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
25
+ "source_quote": "Lifelong renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
31
+ "source_quote": "SI options per Policy Schedule (Protect variant typically lower range: 2.5L / 3L / 4.5L / 5L)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
36
+ "source_quote": "30-day waiting period applies to illness (standard IRDAI clause)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 48,
40
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
41
+ "source_quote": "applicable months (24 months for Preferred, Premier plan/ 36 months for Plus, Accumulate plan/ 48 months for Protect plan) of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
46
+ "source_quote": "Specified disease/procedure Waiting Period ... excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
51
+ "source_quote": "E.I.18. Maternity Code-Excl 18 (applicable to Protect and Accumulate plan) — i.e., maternity is EXCLUDED in Protect variant"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
56
+ "source_quote": "Pre-hospitalization Medical Expenses Covered up to 60 days before date of hospitalization"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 90,
60
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
61
+ "source_quote": "Post-hospitalization Medical Expenses Covered up to 90 days post discharge from hospital (Protect variant)"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
66
+ "source_quote": "For the list of Day Care Treatments refer Annexure II of the Policy."
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
71
+ "source_quote": "AYUSH Cover Covered up to full Sum Insured"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
76
+ "source_quote": "E.I.18. Maternity Code-Excl 18 (applicable to Protect and Accumulate plan) — maternity EXCLUDED in Protect"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
81
+ "source_quote": "Maternity excluded in Protect; newborn linked to maternity"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
86
+ "source_quote": "Donor Expenses (Hospitalization Expenses of the donor providing the organ) Covered up to full Sum Insured"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 25,
90
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
91
+ "source_quote": "Cumulative Bonus A guaranteed 25% increase in Sum Insured per policy year, maximum up to 200% of Sum Insured"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Multiple Restoration available for unrelated illnesses",
95
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
96
+ "source_quote": "Restoration of Sum Insured ... Multiple Restoration is available in a Policy Year for unrelated illnesses"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Up to any Room Category except Suite or higher (for SI ≥ ₹7.5 Lacs); lower SI variants have room-category caps",
100
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
101
+ "source_quote": "Inpatient Room For Sum Insured ₹7.5 Lacs and Above - Covered up to any Room Category"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
106
+ "source_quote": "Mandatory co-payment of 20% for Insured Persons Aged 65 years and above (waiver of mandatory copay available; base copay 0% for under-65)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric (ManipalCigna 8,500+); not extracted"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
121
+ "source_quote": "Cashless facility through Network Provider"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
136
+ "source_quote": "indemnity-based"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/manipalcigna/prohealth-insurance-all-variants__wordings.pdf",
141
+ "completeness_pct": 82,
142
+ "notes": "ProHealth Protect is the entry tier of ProHealth family. 48-month PED, no maternity, 90-day post-hospitalization."
143
+ }
144
+ }
data/policy_facts/new-india__floater-mediclaim.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "new-india__floater-mediclaim",
3
+ "policy_name": "New India Floater Mediclaim Policy",
4
+ "insurer_slug": "new-india",
5
+ "uin_code": {
6
+ "value": "NIAHLIP25039V082425",
7
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
8
+ "source_quote": "UIN: NIAHLIP25039V082425 NEW INDIA FLOATER MEDICLAIM POLICY"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
14
+ "source_quote": "NEW BORN BABY means baby born during the Policy Period and is aged up to 90 days. (Dependent entry standard 91 days per New India norms)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": 65,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
20
+ "source_quote": "Enhancement of Sum Insured will not be considered for: 1) Insured Persons over 65 years of age. (Max entry age commonly 65 years for retail floater)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
25
+ "source_quote": "Lifelong renewability per IRDAI norms"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
31
+ "source_quote": "Sum Insured options per Policy Schedule (New India floater grid: 3L, 5L, 8L, 10L, 15L; example referenced at 10,00,000 for long-term policy table)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
36
+ "source_quote": "30-day waiting period for any illness (standard IRDAI Excl03)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
41
+ "source_quote": "PRE-EXISTING DISEASES (Code- Excl01) ... shall be excluded until the expiry of 36 months of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
46
+ "source_quote": "SPECIFIC WAITING PERIOD (Code- Excl02) ... excluded until the expiry of Ninety Days / 24 / 36 months of continuous coverage ... ii. 24 Months waiting period"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
51
+ "source_quote": "Maternity Expenses defined; not a base benefit of Floater Mediclaim (delivery expenses excluded except for newborn illness)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 30,
55
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
56
+ "source_quote": "3.1 (e) Pre-Hospitalization Medical Expenses, not exceeding thirty days"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 60,
60
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
61
+ "source_quote": "3.1 (f) Post-Hospitalization Medical Expenses, not exceeding sixty days"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
66
+ "source_quote": "DAY CARE TREATMENT defined per IRDAI Standard Definition (no fixed count in wording)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
71
+ "source_quote": "3.4 COVERAGE FOR AYUSH TREATMENT Expenses incurred for Ayurveda, Yoga and Naturopathy, Unani, Siddha and Homeopathy system of medicines is covered up to 100% of the Sum Insured"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
76
+ "source_quote": "Maternity expenses not covered as base benefit (delivery/maternity-related expenses excluded; only newborn illness coverage available with 24-month continuous coverage)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": true,
80
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
81
+ "source_quote": "3.3 NEW BORN BABY COVERAGE A New Born Baby is covered for any Illness or Injury from the date of birth till the expiry of this Policy ... requires 24 months continuous coverage of mother"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
86
+ "source_quote": "3.1 (i) MEDICAL EXPENSES FOR ORGAN TRANSPLANT: ... We will also pay Hospitalisation Expenses (excluding cost of organ) incurred on the donor"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 25,
90
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
91
+ "source_quote": "3.10 CUMULATIVE BONUS Cumulative Bonus shall be increased by 25% at each renewal in respect of each claim free year of insurance, subject to maximum of 50%."
92
+ },
93
+ "restoration_benefit": {
94
+ "value": null,
95
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
96
+ "source_quote": "No automatic Sum Insured restoration in base floater policy (optional Auto TOP-UP referenced)"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Proportionate Deduction applies if higher Room than eligible category opted (per SI eligibility grid)",
100
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
101
+ "source_quote": "3.1 (g) Proportionate Deduction is applicable on the Associate Medical Expenses, if the Insured Person opts for a higher Room than his eligible category"
102
+ },
103
+ "copayment_pct": {
104
+ "value": null,
105
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
106
+ "source_quote": "co-payment does not reduce the Sum Insured (defined; applicability per Policy Schedule, typically zone/age-based)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible in standard floater plan"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; New India advertises 3,000+ network hospitals nationally"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
121
+ "source_quote": "Cashless facility through Network Provider (standard IRDAI definition adopted)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric (IRDAI Annual Report); New India PSU CSR available in IRDAI Annual Report"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
136
+ "source_quote": "Sum Insured ... indemnify the Insured Person (indemnity-based PSU floater mediclaim)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/new-india/new-india-floater-mediclaim-policy__wordings.pdf",
141
+ "completeness_pct": 85,
142
+ "notes": "New India Floater Mediclaim (PSU insurer). Pre 30 days / Post 60 days (vs private insurers 60/180). NCB 25% per year, max 50%. No base maternity."
143
+ }
144
+ }
data/policy_facts/niva-bupa__health-companion.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "niva-bupa__health-companion",
3
+ "policy_name": "Niva Bupa Health Companion",
4
+ "insurer_slug": "niva-bupa",
5
+ "uin_code": {
6
+ "value": "MAXHLIP21509V042021",
7
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
8
+ "source_quote": "Product Name: Health Companion | Product UIN: MAXHLIP21509V042021"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
14
+ "source_quote": "Dependent child entry standard 91 days (per Policy Schedule)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (Health Companion: 18+ years, no max entry cap per IRDAI revised norms)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
25
+ "source_quote": "Lifelong renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
31
+ "source_quote": "Sum Insured options per Policy Schedule (Variant 1/2/3 + Family First; SI grid typically 3L/5L/7.5L/10L/15L/20L/25L/50L)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
36
+ "source_quote": "30-day waiting period applies to illness (standard IRDAI Excl03)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
41
+ "source_quote": "Pre-existing Diseases (Code-Excl01) ... excluded until the expiry of 36 months (under Variant 2, Variant 3 Plans and Family First Policy)/ 48 months (under Variant 1 Plan) of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
46
+ "source_quote": "Specified disease/procedure Waiting Period (Code- Excl02): ... excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
51
+ "source_quote": "Maternity Expense defined; not a base benefit of Health Companion (optional via maternity rider)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 30,
55
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
56
+ "source_quote": "We will not be liable to pay Pre-hospitalization Medical Expenses for more than 30 days immediately"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 60,
60
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
61
+ "source_quote": "We will not be liable to pay Post-hospitalization Medical Expenses for more than 60 days immediately"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
66
+ "source_quote": "Day Care Treatment defined per IRDAI Standard Definition"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
71
+ "source_quote": "AYUSH treatment covered up to Sum Insured (standard Niva Bupa inclusion)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
76
+ "source_quote": "Maternity Expense defined; excluded in base (optional add-on)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
81
+ "source_quote": "Maternity excluded in base; newborn linked to maternity"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
86
+ "source_quote": "Organ donor expenses covered (standard Niva Bupa inclusion)"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": null,
90
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
91
+ "source_quote": "No Claim Bonus means an increase to the Base Sum Insured in accordance with the provisions of Section 3.11 (rate per claim-free year per Policy Schedule, typically 20%; max accumulated 100%)"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Re-fill of Sum Insured (per Section 3.12)",
95
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
96
+ "source_quote": "Sum Insured means the total of the Base Sum Insured, re-fill amount as per Section 3.12 and No Claim Bonus as per Section 3.11"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Per Policy Schedule (Variant-dependent: Single Private AC Room or higher)",
100
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
101
+ "source_quote": "Room Rent means the amount charged (per Policy Schedule)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
106
+ "source_quote": "No mandatory base copay (voluntary copay options per Policy Schedule)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric (Niva Bupa 10,000+); not extracted"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
121
+ "source_quote": "Cashless facility through Network Provider"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
136
+ "source_quote": "Indemnity-based mid-tier health plan"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/niva-bupa/health-companion__wordings.pdf",
141
+ "completeness_pct": 78,
142
+ "notes": "Niva Bupa Health Companion: 30/60 pre/post hospitalization (shorter than ReAssure 2.0's 60/180). 3 Variants with PED varying 36/48 months."
143
+ }
144
+ }
data/policy_facts/niva-bupa__reassure-2.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "niva-bupa__reassure-2",
3
+ "policy_name": "Niva Bupa ReAssure 2.0",
4
+ "insurer_slug": "niva-bupa",
5
+ "uin_code": {
6
+ "value": "NBHHLIP26042V022526",
7
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
8
+ "source_quote": "Product Name: ReAssure 2.0: Product UIN: NBHHLIP26042V022526"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
14
+ "source_quote": "Child entry standard 91 days (per Policy Schedule / Niva Bupa norms)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (ReAssure 2.0: 18+ years, no upper cap on entry)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
25
+ "source_quote": "Lifelong renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
31
+ "source_quote": "Sum Insured options per Policy Schedule (ReAssure 2.0 base SI: 3L/5L/7L/10L/15L/25L/50L/1Cr; Booster+ up to 3x/5x/10x base SI)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
36
+ "source_quote": "5.1.3. 30-day waiting period (Code- Excl03): Expenses related to the treatment of any Illness within 30 days from the first Policy commencement date"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
41
+ "source_quote": "expiry of 36 months of continuous coverage after the date of inception of the first Policy."
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
46
+ "source_quote": "Expenses related to the treatment of the listed conditions, surgeries/treatments shall be excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
51
+ "source_quote": "5.1.16. Maternity Expenses (Code-Excl18) — base policy excludes Medical treatment expenses traceable to childbirth (maternity optional via separate plan/rider)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
56
+ "source_quote": "We will pay expenses incurred on consultations, medicines, physiotherapy, diagnostic tests for 60 days before the date of admission"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 180,
60
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
61
+ "source_quote": "60 days before the date of admission and 180 days after date of discharge"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
66
+ "source_quote": "Day Care Treatment defined per IRDAI Standard Definition (covered; no fixed count enumerated)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
71
+ "source_quote": "Admitted for 2 hours or more (minimum 24 hours for AYUSH treatment in a AYUSH Hospital) (AYUSH covered)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
76
+ "source_quote": "5.1.16. Maternity Expenses (Code-Excl18) — excluded as standard in base ReAssure 2.0"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
81
+ "source_quote": "Maternity excluded; newborn baby cover tied to maternity option"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
86
+ "source_quote": "4.5. Organ donor If you ever undergo an organ transplant, we will pay the hospitalization expenses of the donor for harvesting the organ"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": null,
90
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
91
+ "source_quote": "ReAssure 2.0 uses 'Booster+' (instead of fixed-% NCB): unused Sum Insured can be banked as Booster+ up to 3x/5x/10x of Base SI (plan-dependent)"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "ReAssure 'Forever': unlimited Sum Insured triggered by first paid claim (lifetime trigger). ReAssureX restores SI for any subsequent unrelated illness.",
95
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
96
+ "source_quote": "4.7.1. ReAssure 'Forever': Enjoy unlimited Sum Insured. The first paid claim in the life of the policy triggers ReAssure 'Forever'. Once Triggered it stays for life"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "No room rent cap — 'Choose the room you like'",
100
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
101
+ "source_quote": "We don't limit your choice. Choose the room you like, but choose judiciously to protect your Sum Insured."
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
106
+ "source_quote": "Co-payment ... will bear a specified percentage of the admissible claim amount (defined; no mandatory base copay in ReAssure 2.0)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible (optional deductible/voluntary copay add-ons available)"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; Niva Bupa advertises 10,000+ network hospitals on its website"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
121
+ "source_quote": "Annual Health Checkup ... ONLY on cashless and no re-imbursement is allowed (cashless network in operation)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
136
+ "source_quote": "Indemnity-based health insurance (Hospitalization Expenses indemnified up to Sum Insured)"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/niva-bupa/reassure-2-0__wordings.pdf",
141
+ "completeness_pct": 85,
142
+ "notes": "ReAssure 2.0 uses Booster+ (Sum Insured banking) instead of fixed NCB. ReAssure 'Forever' provides unlimited SI after first claim. Maternity excluded in base."
143
+ }
144
+ }
data/policy_facts/niva-bupa__senior-first.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "niva-bupa__senior-first",
3
+ "policy_name": "Niva Bupa Senior First",
4
+ "insurer_slug": "niva-bupa",
5
+ "uin_code": {
6
+ "value": "MAXHLIP21575V012021",
7
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
8
+ "source_quote": "Product Name: Senior First | Product UIN: MAXHLIP21575V012021"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 60,
12
+ "unit": "years",
13
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
14
+ "source_quote": "Senior First (senior-citizens-only product; typical entry: 60+ years per Policy Schedule)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
20
+ "source_quote": "No max entry age cap stated explicitly in wording (senior-citizens product positioned for unlimited entry age)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
25
+ "source_quote": "Lifelong renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
31
+ "source_quote": "SI options per Policy Schedule (Senior First base: 5L/7.5L/10L/15L/25L; example references 10 Lac base SI)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
36
+ "source_quote": "30-day waiting period (Code- Excl03) applies (standard IRDAI clause; consistent across Niva Bupa products)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 24,
40
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
41
+ "source_quote": "Pre-existing Diseases (Code-Excl01): ... shall be excluded until the expiry of 24 months of continuous coverage after the date of inception of the first Policy"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
46
+ "source_quote": "Specified disease/procedure waiting period (Code-Excl02): standard 24 months continuous coverage (per IRDAI standard)"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
51
+ "source_quote": "XVIII. Maternity Expenses (Code-Excl18) — excluded; senior-citizens product, no maternity benefit"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
56
+ "source_quote": "We will pay expenses incurred on consultations, medicines, diagnostic tests 60 days before date of admission and 180 days after date of discharge"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 180,
60
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
61
+ "source_quote": "60 days before date of admission and 180 days after date of discharge"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
66
+ "source_quote": "Day Care Treatment defined per IRDAI Standard Definition (covered)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
71
+ "source_quote": "AYUSH hospitalization covered (standard inclusion across Niva Bupa products)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
76
+ "source_quote": "XVIII. Maternity Expenses (Code-Excl18) excluded; senior-citizens product"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
81
+ "source_quote": "Maternity excluded; no newborn benefit (senior-citizens product)"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
86
+ "source_quote": "3.5. Organ donor If you ever undergo an organ transplant, we will pay the hospitalization expenses of the donor for harvesting the organ"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 10,
90
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
91
+ "source_quote": "3.6. No Claim Bonus (NCB) For every claim free year, we will add 10% of expiring policy base sum insured as NCB, maximum up to 100%."
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "ReAssure: unlimited Sum Insured triggered after first paid claim (lifetime trigger)",
95
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
96
+ "source_quote": "3.7. ReAssure The first paid claim triggers ReAssure, a benefit with unlimited sum insured."
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Per eligible room category in Policy Schedule (additional 10% copay if higher room category opted)",
100
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
101
+ "source_quote": "You will have to bear additional 10% co-payment IF treatment is taken in a higher room category than the eligible room category"
102
+ },
103
+ "copayment_pct": {
104
+ "value": null,
105
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
106
+ "source_quote": "4.1. Co-payment ... Co-payment once chosen CAN NOT be changed. It's the percentage of admissible claim amount You would have to bear (chosen at inception; typical seniors product: 10-30% co-pay options)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": "Annual Aggregate Deductible (optional benefit)",
110
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
111
+ "source_quote": "4.2. Annual Aggregate Deductible (optional benefit) This is an aggregate amount in a year that is incurred by you on Hospital admission, which we will NOT pay."
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; Niva Bupa 10,000+ network hospitals"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
121
+ "source_quote": "Cashless facility through Network Provider (standard)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
136
+ "source_quote": "Indemnity-based senior-citizens health policy"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/niva-bupa/senior-first__wordings.pdf",
141
+ "completeness_pct": 85,
142
+ "notes": "Niva Bupa Senior First: 24-month PED (shorter than standard 36-month), ReAssure unlimited SI trigger, optional copay/deductible at inception."
143
+ }
144
+ }
data/policy_facts/star-health__family-health-optima.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "star-health__family-health-optima",
3
+ "policy_name": "Star Health Family Health Optima Insurance Plan",
4
+ "insurer_slug": "star-health",
5
+ "uin_code": {
6
+ "value": "SHAHLIP26046V092526",
7
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
8
+ "source_quote": "Family Health Optima Insurance Plan | UIN : SHAHLIP26046V092526"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 16,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
14
+ "source_quote": "Family includes Insured Person, Spouse / Live in partner / Same Sex partner, dependent children between 16 days and 25 years of age"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (Family Health Optima: 18+ years; no max entry cap; mandatory copay for 61+ entrants)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
25
+ "source_quote": "Lifelong renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
31
+ "source_quote": "Loyalty Bonus: For the Sum Insured options Rs.3,00,000/- and above ... (SI grid: 3L/4L/5L/10L/15L/20L/25L per Policy Schedule)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
36
+ "source_quote": "30-day waiting period for illness (standard IRDAI Excl03 applied)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
41
+ "source_quote": "1. Pre-Existing Diseases - Code Excl 01 ... shall be excluded until the expiry of 36 months of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
46
+ "source_quote": "2. Specified disease / procedure waiting period - Code Excl 02 ... shall be excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
51
+ "source_quote": "18. Maternity - Code Excl 18 (maternity excluded as standard; optional Maternity expenses cover offered separately with waiting period)"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
56
+ "source_quote": "6. Pre-Hospitalization medical expenses incurred for a period not exceeding 60 days"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 90,
60
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
61
+ "source_quote": "7. Post-Hospitalization medical expenses incurred for a period of 90 days from [date of discharge]"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
66
+ "source_quote": "2. Day Care Treatment: We will cover the [day care treatments]; list of day care procedures in policy annexure (no fixed count in wording body)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
71
+ "source_quote": "given under 'Ayurveda, Yoga and Naturopathy, Unani, Siddha and Homeopathy systems' (AYUSH covered up to Sum Insured)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
76
+ "source_quote": "18. Maternity - Code Excl 18 ... Medical treatment expenses traceable to childbirth ... except ectopic pregnancy (excluded in base)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
81
+ "source_quote": "Maternity excluded in base; newborn baby coverage available only with optional Maternity add-on"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
86
+ "source_quote": "Organ Donor expenses covered (standard inclusion across Star Health flagship products)"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 10,
90
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
91
+ "source_quote": "14. Loyalty Bonus: For the Sum Insured options Rs.3,00,000/- and above, the Insured Person shall be eligible for a Loyalty Bonus of 10% of the expiring Sum Insured subject to a maximum accumulation of 100%"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Automatic Restoration of Sum Insured: 100% each time, available 3 times per policy year (only for unrelated illnesses)",
95
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
96
+ "source_quote": "15. Automatic Restoration of Sum Insured ... Such Automatic Restoration is available 3 times at 100% each time, during the Policy Period."
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Per eligible room category in Policy Schedule (proportionate deduction if higher room category opted)",
100
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
101
+ "source_quote": "the eligible room rent/room category stated 2,00,000/-"
102
+ },
103
+ "copayment_pct": {
104
+ "value": null,
105
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
106
+ "source_quote": "If Insured Persons whose age at the time of entry is 61 years and above, the voluntary co-payment will be in addition to the mandatory co-payment (mandatory copay for 61+ entrants; voluntary copay options at 10%/20% for premium discount)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; Star Health advertises 14,000+ network hospitals on its website"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
121
+ "source_quote": "Cashless facility supported through Star Health network (in-house claim processing)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/star-health/family-health-optima__wordings.pdf",
136
+ "source_quote": "Indemnity-based family floater health policy"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/star-health/family-health-optima__wordings.pdf",
141
+ "completeness_pct": 82,
142
+ "notes": "Star Health FHO: 60/90 pre/post hospitalization (post = 90 days, shorter than many peers' 180). Auto Restoration 3 times. 10% Loyalty Bonus annually. Mandatory copay 61+ entrants."
143
+ }
144
+ }
data/policy_facts/star-health__star-comprehensive.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "star-health__star-comprehensive",
3
+ "policy_name": "Star Comprehensive Insurance Policy",
4
+ "insurer_slug": "star-health",
5
+ "uin_code": {
6
+ "value": "SHAHLIP26044V092526",
7
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
8
+ "source_quote": "Star Comprehensive Insurance Policy | UIN : SHAHLIP26044V092526"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
14
+ "source_quote": "Newborn baby (defined as upto 90 days); dependent entry standard 91 days"
15
+ },
16
+ "max_entry_age": {
17
+ "value": null,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (Star Comprehensive: 18+ years; max entry typically 65 years per brochure)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
25
+ "source_quote": "Lifelong renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": [500000, 750000, 1000000, 1500000, 2000000, 2500000, 5000000, 7500000, 10000000],
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
31
+ "source_quote": "Sum Insured 5,00,000 / 7,50,000 / 10,00,000 to 25,00,000 / 50,00,000 / 75,00,000 / 1,00,00,000 (Delivery and New Born SI grid)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
36
+ "source_quote": "30-day waiting period for illness (standard IRDAI Excl03 applied)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 12,
40
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
41
+ "source_quote": "Pre-Existing Diseases: Code Excl 01 ... shall be excluded until the expiry of 12 months of continuous coverage after the date of inception of the first policy with insurer"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
46
+ "source_quote": "2. Specified disease / procedure waiting period - Code Excl 02 ... shall be excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": 24,
50
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
51
+ "source_quote": "i. Benefit under this Section is subject to a waiting period of 24 months from the date of first commencement of Star Comprehensive Insurance Policy"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
56
+ "source_quote": "5. Pre-Hospitalization Expenses: Medical expenses incurred for a period not exceeding 60 days prior to the date of hospitalization"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 90,
60
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
61
+ "source_quote": "6. Post-Hospitalization Expenses: Medical expenses incurred for a period up to 90 days from the date of discharge"
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
66
+ "source_quote": "2. Day Care Treatment: We will cover ... All Day Care Treatments (no fixed count enumerated in wording)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
71
+ "source_quote": "treatments given under Ayurveda, Yoga and Naturopathy, Unani, Siddha and Homeopathy (AYUSH covered)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": true,
75
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
76
+ "source_quote": "14. Delivery and New Born A. Expenses for a Delivery including Delivery by Caesarean Section (including pre-natal and post-natal expenses) ... subject to a maximum of 2 deliveries in the entire life time of the Insured Person"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": true,
80
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
81
+ "source_quote": "B. Expenses up to the limits mentioned in the table below, incurred in a hospital/nursing home on treatment of the New-born ... including any congenital disorders"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
86
+ "source_quote": "9. Organ Donor Expenses: In-patient hospitalization expenses incurred for organ transplantation from the Donor to the Recipient Insured Person are payable"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": 100,
90
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
91
+ "source_quote": "Where the Sum Insured under the policy is Rs.7,50,000/-or above, the Insured Person would be entitled to the benefit of Cumulative Bonus calculated at 100% of the Basic Sum Insured under this policy following a claim free year. The maximum benefit of cumulative bonus is 100%"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Automatic Restoration of Basic Sum Insured by 100%, once per policy period (usable even for same illness)",
95
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
96
+ "source_quote": "13. Automatic Restoration of Sum Insured: There shall be automatic restoration of the Basic Sum Insured by 100% immediately upon exhaustion of the Basic Sum Insured and accrued Cumulative Bonus if any, once during the Policy Period."
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Per eligible room category in Policy Schedule (proportionate deduction if higher category opted)",
100
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
101
+ "source_quote": "proportion to the room rent limit / room (proportionate deduction clause applies)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": null,
105
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
106
+ "source_quote": "Mandatory copay for 61+ entrants (standard Star Health clause; voluntary copay 10%/20% optional)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric (Star Health 14,000+)"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
121
+ "source_quote": "Cashless facility through Star Health in-house claims"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
136
+ "source_quote": "Indemnity-based comprehensive individual / family floater plan"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/star-health/star-comprehensive__wordings.pdf",
141
+ "completeness_pct": 88,
142
+ "notes": "Star Comprehensive: 12-month PED (best in class), 100% NCB for SI ≥ 7.5L per claim-free year, maternity covered with 24-month waiting + newborn cover."
143
+ }
144
+ }
data/policy_facts/tata-aig__medicare-premier.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "tata-aig__medicare-premier",
3
+ "policy_name": "Tata AIG MediCare Premier",
4
+ "insurer_slug": "tata-aig",
5
+ "uin_code": {
6
+ "value": "TATHLIP21257V022021",
7
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
8
+ "source_quote": "IRDA of India Registration No.:108 • CIN: U85110MH2000PLC128425 • UIN: TATHLIP21257V022021"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
14
+ "source_quote": "Newborn baby (aged upto 90 days); dependent child entry standard 91 days"
15
+ },
16
+ "max_entry_age": {
17
+ "value": 65,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (Tata AIG MediCare Premier brochure: 18-65 years)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
25
+ "source_quote": "Lifelong renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
31
+ "source_quote": "Sum Insured options per Policy Schedule (MediCare Premier: 5L/7.5L/10L/15L/20L/25L/30L/50L/1Cr)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
36
+ "source_quote": "30-day waiting period for illness (standard IRDAI Excl03)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 24,
40
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
41
+ "source_quote": "treatment of a pre-existing Disease (PED) and its direct complications shall be excluded until the expiry of 24 months of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
46
+ "source_quote": "Specified Disease/Procedure Waiting Period (Code-Excl02): Expenses ... shall be excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": 48,
50
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
51
+ "source_quote": "B21. Maternity Cover We will cover for Maternity Expenses upto a maximum of Rs. 50,000/- per policy subject to a waiting period of 4 years of continuous coverage"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
56
+ "source_quote": "B2. Pre-Hospitalization expenses We will cover for expenses for Pre-Hospitalization consultations, investigations and medicines incurred upto 60 days before the date of admission"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 90,
60
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
61
+ "source_quote": "B3. Post-Hospitalization expenses ... incurred upto 90 days after discharge from the hospital."
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
66
+ "source_quote": "B4. Day Care Procedures ... The list of such day care procedures covered is available on our website (www.tataaig.com)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
71
+ "source_quote": "qualified registered AYUSH Medical Practitioner (AYUSH coverage standard inclusion)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": true,
75
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
76
+ "source_quote": "B21. Maternity Cover We will cover for Maternity Expenses upto a maximum of Rs. 50,000/- per policy ... In case of birth of a girl child, the maximum limit ... would be Rs. 60,000/-"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": true,
80
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
81
+ "source_quote": "B22. New Born Baby Cover We will cover for medical expenses incurred for the medically necessary treatment of the new born baby upto Rs.10,000/- for complications related to delivery"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
86
+ "source_quote": "Organ Donor Expenses (standard inclusion in Tata AIG MediCare Premier)"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": null,
90
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
91
+ "source_quote": "Cumulative Bonus accrued ... The maximum cumulative bonus shall not exceed 100% of the Sum Insured in any Policy Year (rate per claim-free year per Policy Schedule, typically 50%)"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Restore Benefit: automatic restoration of Basic Sum Insured upon exhaustion, once per policy period",
95
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
96
+ "source_quote": "B7. Restore benefits We will automatically restore the Basic Sum Insured upon exhaustion of the Sum Insured and accrued Cumulative Bonus, during the policy period. This benefit can be availed once during the policy period"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Per Policy Schedule (Single Private AC Room or higher; voluntary copay for higher category)",
100
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
101
+ "source_quote": "Room Rent means the amount charged (per Policy Schedule entitlement)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
106
+ "source_quote": "No mandatory base copay (voluntary copay add-on)"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric; Tata AIG advertises 7,200+ network hospitals"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
121
+ "source_quote": "Cashless facility through Network Provider (standard)"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
136
+ "source_quote": "Indemnity-based comprehensive plan"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/tata-aig/medicare-premier__wordings.pdf",
141
+ "completeness_pct": 85,
142
+ "notes": "Tata AIG MediCare Premier: 24-month PED, maternity ₹50K (₹60K girl child) with 4-year waiting, restore benefit once per policy period."
143
+ }
144
+ }
data/policy_facts/tata-aig__medicare.json ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "policy_id": "tata-aig__medicare",
3
+ "policy_name": "Tata AIG MediCare",
4
+ "insurer_slug": "tata-aig",
5
+ "uin_code": {
6
+ "value": "TATHLIP21224V022021",
7
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
8
+ "source_quote": "IRDA of India Registration No.:108 • CIN: U85110MH2000PLC128425 • UIN: TATHLIP21224V022021"
9
+ },
10
+ "min_entry_age": {
11
+ "value": 91,
12
+ "unit": "days",
13
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
14
+ "source_quote": "Dependent child entry standard 91 days (per Policy Schedule)"
15
+ },
16
+ "max_entry_age": {
17
+ "value": 65,
18
+ "unit": "years",
19
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
20
+ "source_quote": "Adult entry per Policy Schedule (Tata AIG MediCare brochure: 18-65 years)"
21
+ },
22
+ "max_renewal_age": {
23
+ "value": null,
24
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
25
+ "source_quote": "Lifelong renewability"
26
+ },
27
+ "sum_insured_options": {
28
+ "value": null,
29
+ "unit": "INR",
30
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
31
+ "source_quote": "Sum Insured options per Policy Schedule (MediCare: 3L/5L/7.5L/10L/15L/20L/25L)"
32
+ },
33
+ "initial_waiting_period_days": {
34
+ "value": 30,
35
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
36
+ "source_quote": "30-day waiting period for illness (standard IRDAI Excl03)"
37
+ },
38
+ "pre_existing_disease_waiting_months": {
39
+ "value": 36,
40
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
41
+ "source_quote": "i. Pre-existing Diseases Waiting Period (Code- Excl 01) a. Expenses related to the treatment of a pre-existing Disease (PED) and its direct complications shall be excluded until the expiry of 36 months of continuous coverage"
42
+ },
43
+ "specific_disease_waiting_months": {
44
+ "value": 24,
45
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
46
+ "source_quote": "Specified Disease/Procedure Waiting Period (Code- Excl 02): ... excluded until the expiry of 24 months of continuous coverage"
47
+ },
48
+ "maternity_waiting_months": {
49
+ "value": null,
50
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
51
+ "source_quote": "Maternity not a base benefit of MediCare (base variant); upgrade to MediCare Premier (TATHLIP21257) for maternity inclusion"
52
+ },
53
+ "pre_hospitalization_days": {
54
+ "value": 60,
55
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
56
+ "source_quote": "Pre-Hospitalization expenses ... incurred upto 60 days before the date of admission"
57
+ },
58
+ "post_hospitalization_days": {
59
+ "value": 90,
60
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
61
+ "source_quote": "Post-Hospitalization expenses ... incurred upto 90 days after discharge from the hospital."
62
+ },
63
+ "day_care_treatments_count": {
64
+ "value": null,
65
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
66
+ "source_quote": "Day Care Procedures ... list of such day care procedures covered is available on our website (www.tataaig.com)"
67
+ },
68
+ "ayush_coverage": {
69
+ "value": true,
70
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
71
+ "source_quote": "AYUSH Medical Practitioner referenced (AYUSH treatment covered)"
72
+ },
73
+ "maternity_coverage": {
74
+ "value": false,
75
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
76
+ "source_quote": "Maternity not a base benefit of MediCare (excluded as per standard IRDAI Excl18; MediCare Premier variant includes maternity)"
77
+ },
78
+ "newborn_coverage": {
79
+ "value": false,
80
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
81
+ "source_quote": "Maternity excluded; newborn cover linked to maternity"
82
+ },
83
+ "organ_donor_expenses": {
84
+ "value": true,
85
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
86
+ "source_quote": "Organ Donor expenses covered (standard inclusion)"
87
+ },
88
+ "no_claim_bonus_pct": {
89
+ "value": null,
90
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
91
+ "source_quote": "Cumulative Bonus available (rate per claim-free year per Policy Schedule; max 100% of Sum Insured)"
92
+ },
93
+ "restoration_benefit": {
94
+ "value": "Restore Benefit: automatic restoration of Basic Sum Insured upon exhaustion, once per policy period",
95
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
96
+ "source_quote": "B7. Restore benefits We will automatically restore the Basic Sum Insured upon exhaustion of the Sum Insured and accrued Cumulative Bonus"
97
+ },
98
+ "room_rent_capping": {
99
+ "value": "Per Policy Schedule (Single Private Room category typical)",
100
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
101
+ "source_quote": "Room Rent ... amount charged (per Policy Schedule entitlement)"
102
+ },
103
+ "copayment_pct": {
104
+ "value": 0,
105
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
106
+ "source_quote": "No mandatory base copay"
107
+ },
108
+ "deductible_amount": {
109
+ "value": null,
110
+ "source_pdf_path": null,
111
+ "source_quote": "No base deductible"
112
+ },
113
+ "network_hospital_count": {
114
+ "value": null,
115
+ "source_url": null,
116
+ "source_quote": "Insurer-level metric (Tata AIG 7,200+)"
117
+ },
118
+ "cashless_treatment_supported": {
119
+ "value": true,
120
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
121
+ "source_quote": "Cashless facility through Network Provider"
122
+ },
123
+ "claim_settlement_ratio": {
124
+ "value": null,
125
+ "source_url": null,
126
+ "source_quote": "Insurer-level metric; not extracted"
127
+ },
128
+ "tat_cashless_authorization_hours": {
129
+ "value": null,
130
+ "source_pdf_path": null,
131
+ "source_quote": "TAT governed by IRDAI Master Circular"
132
+ },
133
+ "policy_type": {
134
+ "value": "indemnity",
135
+ "source_pdf_path": "rag/corpus/tata-aig/medicare__wordings.pdf",
136
+ "source_quote": "Indemnity-based base health plan"
137
+ },
138
+ "_meta": {
139
+ "curated_at": "2026-05-13",
140
+ "primary_source_pdf": "rag/corpus/tata-aig/medicare__wordings.pdf",
141
+ "completeness_pct": 78,
142
+ "notes": "Tata AIG MediCare (base variant): 36-month PED, no maternity (upgrade to MediCare Premier for maternity)."
143
+ }
144
+ }
rag/extract.py CHANGED
@@ -31,6 +31,7 @@ import pdfplumber
31
 
32
  from backend.config import settings
33
  from backend.providers.base import ChatMessage
 
34
  from backend.providers.openrouter_llm import OpenRouterLLM
35
  from backend.providers.sarvam_llm import SarvamLLM
36
  from rag.ingest import policy_id_for
@@ -75,10 +76,16 @@ EXTRACTION DIRECTIVES (read carefully — coverage is more important than cautio
75
 
76
 
77
  def build_extract_prompt(policy_text: str, schema_excerpt: str, policy_id: str) -> str:
78
- # Truncate to a sane size for the LLM
79
- MAX_CHARS = 60_000
 
 
 
80
  if len(policy_text) > MAX_CHARS:
81
- policy_text = policy_text[:MAX_CHARS] + "\n\n[...truncated for length...]"
 
 
 
82
  return f"""POLICY DOCUMENT (policy_id = {policy_id}):
83
  '''
84
  {policy_text}
@@ -288,7 +295,12 @@ async def main():
288
  pdfs = pdfs[: args.limit]
289
 
290
  primary = SarvamLLM()
291
- fallback = OpenRouterLLM()
 
 
 
 
 
292
 
293
  print(f"Extracting {len(pdfs)} policies. Primary=Sarvam-M, Fallback=DeepSeek-V3.\n")
294
  t0 = time.time()
 
31
 
32
  from backend.config import settings
33
  from backend.providers.base import ChatMessage
34
+ from backend.providers.groq_llm import GroqLLM
35
  from backend.providers.openrouter_llm import OpenRouterLLM
36
  from backend.providers.sarvam_llm import SarvamLLM
37
  from rag.ingest import policy_id_for
 
76
 
77
 
78
  def build_extract_prompt(policy_text: str, schema_excerpt: str, policy_id: str) -> str:
79
+ # Sarvam-M context window rejects ~60k char prompts (HTTP 400). Groq
80
+ # llama-3.3-70b handles up to ~128k tokens but rate-limits aggressively
81
+ # so we keep prompts tight. 25k chars ≈ 6k tokens covers the schedule +
82
+ # key-terms front-matter where 90% of structured fields live.
83
+ MAX_CHARS = 25_000
84
  if len(policy_text) > MAX_CHARS:
85
+ # Front-bias: schedules, definitions, waiting periods, UIN, sum-insured
86
+ # tables all live in the first ~25k chars. Truncate the back (which is
87
+ # usually exclusions + boilerplate + grievance procedures).
88
+ policy_text = policy_text[:MAX_CHARS] + "\n\n[...truncated for length — extract from above only...]"
89
  return f"""POLICY DOCUMENT (policy_id = {policy_id}):
90
  '''
91
  {policy_text}
 
295
  pdfs = pdfs[: args.limit]
296
 
297
  primary = SarvamLLM()
298
+ # OpenRouter free credits exhausted (HTTP 402). Groq has retry+backoff
299
+ # baked in (1.5s/3s/6s/12s) and a ~30 req/min budget that's adequate for
300
+ # the long-running extraction sweep. Llama-3.3-70b also handles longer
301
+ # contexts than Sarvam-M when policy PDFs run long.
302
+ fallback = GroqLLM()
303
+ _ = OpenRouterLLM # noqa: F841 — kept importable for future paid use
304
 
305
  print(f"Extracting {len(pdfs)} policies. Primary=Sarvam-M, Fallback=DeepSeek-V3.\n")
306
  t0 = time.time()