# Swiss insurance policy comparison reports

Use this reference when the user provides Swiss household/building/insurance PDFs and asks for an advisor-style comparison or decision recommendation.

## Workflow

1. **Extract all source documents first**
   - Use `pdfinfo` for page count/metadata.
   - Use `pdftotext -layout` for text-layer PDFs.
   - If text extraction is poor, OCR the PDF and keep page references.
   - Do not ask the user to paste contents when document paths are available.

2. **Build a normalized comparison table**
   Capture at minimum:
   - policy/offerte date, start date, expiry date, payment frequency
   - net premium, federal stamp duty, cantonal/fire levy, gross annual premium
   - per-module premiums: service, household contents, private liability, legal protection, building
   - insured sums and deductibles
   - AVB/conditions edition dates
   - special terms such as underinsurance waiver, provisional building estimate, update guarantee, cancellation terms

3. **Separate non-equivalent coverages**
   For Swiss building insurance, do not conflate:
   - **Feuer/Elementar**: usually mandatory cantonal building insurance where applicable; natural perils such as flood, storm, hail, avalanche, snow pressure, rockfall, landslide.
   - **Gebäudewasser / Flüssigkeiten und Gas**: leakage, pipe bursts, escaping liquids/gases, leak detection, uncovering/reclosing, pipe repair depending on policy.
   - **Glass**: building, surroundings, sanitary fittings.
   - **Earthquake/volcano**: often optional, with high deductible.
   - **Legal protection / cyber / service packages**: separate from property indemnity.

4. **Calculate deltas with real arithmetic**
   Use Python/terminal for all CHF and percentage differences. Include annual and monthly deltas where useful.

5. **Advisor-style output structure**
   - Kurzfazit first: better/worse, price impact, recommendation.
   - Table: current policy vs new offer.
   - Sections: “Wo fährst du besser?”, “Wo fährst du schlechter?”, “Offene Fragen an Versicherer”.
   - Highlight non-like-for-like comparisons and missing policy splits.
   - Provide exact email wording to request split premiums, cancellation date, or written coverage confirmations.

6. **Swiss cancellation/legal guardrails**
   - For non-life insurance, multi-year policies may be written for longer periods, but check VVG cancellation rights after the third insurance year and the contractual notice period (commonly 3 months).
   - Warn that a new offer can restart the practical 3-year binding period.
   - Earlier exit usually requires insurer agreement/partial cancellation, a contractual/special cancellation right, premium/terms change, a claim-related cancellation right, or another legally recognized reason.
   - Distinguish legal possibility from insurer-side operational acceptance of removing one module from a bundled policy.

7. **PDF report verification**
   - Generate the PDF from structured content, not pasted chat prose.
   - Verify with `pdfinfo`, `pdftotext` spot checks, and render first/last pages to images for visual QA.
   - Keep chat concise and deliver the PDF via `MEDIA:/path` plus a short summary.

## Pitfalls

- Do not compare a whole Helvetia building premium directly against a cantonal AGV Gebäudewasser premium without subtracting/identifying extra Helvetia modules such as glass, earthquake, folgekosten, and service effects.
- Do not call AGV Gebäudewasser an Elementarversicherung; it is an optional/additional water-damage cover complementing mandatory fire/elemental building insurance.
- If a building sum is marked **provisorisch geschätzt**, flag it as a major negotiation/verification item because future documentation may change sum and premium.
- Cyber cover on household/private-liability offers often looks stronger than it is; ask specifically about phishing, social engineering, voluntarily authorized payments, investment/crypto scams, and business use exclusions.
