# Seeded product catalogue

Loaded by `database/seeders/ProductSeeder.php` from Schedule 1 (Annexure 1) and the Schedule 2
bifurcation tables. All amounts are PKR.

Re-run at any time &mdash; the seeder is idempotent (`updateOrCreate` on the product code and plan code):

```bash
php artisan db:seed --class=Database\\Seeders\\BenefitSeeder
php artisan db:seed --class=Database\\Seeders\\ProductSeeder
```

---

## Summary

| Code | Product | Categories | Frequencies | Contribution range |
|---|---|---|---|---|
| P1 | EFU Afiyah Takaful Plus Plan | A, B, C | Annual | 10,150 &ndash; 12,650 |
| P2 | EFU Afiyah Takaful Essential Plan | A, B, C | Annual | 7,500 &ndash; 11,500 |
| P3 | EFU Afiyah Home Takaful Plan | A, B, C | Annual | 13,400 &ndash; 47,500 |
| P4 | EFU Afiyah Micro Takaful Plus Plan | A, B, C | Annual, Monthly | 6,000 &ndash; 9,000 (500 &ndash; 750/mo) |
| P5 | EFU Afiyah Micro Takaful Essential Plan | A, B, C | Annual, Monthly | 3,600 &ndash; 6,600 (300 &ndash; 550/mo) |
| P6 | EFU Afiyah Micro Home Takaful Plan | A, B, C | Annual, Monthly | 7,200 &ndash; 10,200 (600 &ndash; 850/mo) |
| P7 | EFU Travel Takaful Protection Plan | single | Daily, One time | 320/day |
| P8 | EFU M-TAG Takaful Protection Plan | single | Daily, One time | 100/day |
| P9 | EFU Takaful Digital Shield Plan | A, B, C, D | Annual | 700 &ndash; 1,700 |

Common to every product: BankIslami accountholders, Takaful Voluntary Cover, enrollment 18&ndash;64,
coverage to 65, 15-day free look, quarterly review.

---

## Contribution bifurcation (Schedule 2)

Each plan stores `efu_life_contribution` and `efu_general_contribution`. **Every row reconciles to
the gross contribution**, which is asserted by the seeder data and verified in the portal at
*Products → (product) → Schedule 2 bifurcation*.

| Product | Category | EFU Life | EFU General | Gross |
|---|---|---|---|---|
| P1 | A / B / C | 3,000 / 4,000 / 5,500 | 7,150 / 7,150 / 7,150 | 10,150 / 11,150 / 12,650 |
| P2 | A / B / C | 3,500 / 3,500 / 4,000 | 4,000 / 5,500 / 7,500 | 7,500 / 9,000 / 11,500 |
| P3 | A / B / C | 3,500 / 5,000 / 6,500 | 9,900 / 24,800 / 41,000 | 13,400 / 29,800 / 47,500 |
| P4 | A / B / C | 2,000 / 2,800 / 3,000 | 4,000 / 5,000 / 6,000 | 6,000 / 7,800 / 9,000 |
| P5 | A / B / C | 1,100 / 1,900 / 2,100 | 2,500 / 3,500 / 4,500 | 3,600 / 5,400 / 6,600 |
| P6 | A / B / C | 700 / 900 / 1,200 | 6,500 / 7,500 / 9,000 | 7,200 / 8,400 / 10,200 |
| P7 | Standard | 120 | 200 | 320 |
| P8 | Standard | 100 | &mdash; | 100 |
| P9 | A / B / C / D | 368 / 610 / 836 / 1,078 | 332 / 390 / 564 / 622 | 700 / 1,000 / 1,400 / 1,700 |

Bank remuneration percentages are held in `config/takaful.php → remuneration` and shown on each
product page.

---

## Benefit heads

23 benefit heads are seeded, each attributed to a window operator.

**EFU Life:** monthly income continuation, monthly grocery continuation, accidental permanent total
disability, AMR, term takaful, additional accidental death, accidental death benefit, accidental
death &amp; PTD, accidental medical expenses, term life benefit, mHealth (flag).

**EFU General:** bike total loss, bike accidental repairs, mobile theft, mobile screen damage,
wallet snatching, home structure, home contents, ATM cash withdrawal, third party liability,
in-flight / checked-in baggage, land travel baggage, emergency medical expenses, fraudulent
digital transactions.

Policy aggregate limits are stored per plan where Schedule 1 states them: P2 (3m / 4m / 5m, applying
only to mobile theft, screen damage and wallet snatching) and P9 (1m / 1.2m / 1.5m / 2m, not
applying to death benefits).

---

## Discrepancies in the source document

These are flagged rather than silently resolved. Please confirm with EFU Life and, if the source is
corrected, update `ProductSeeder`.

**1. Product 6, Category C &mdash; AMR benefit.**
The Schedule 1 benefits table states **35,000**; the Schedule 2 "Contribution Wise Bifurcation for
Bank by EFU Life" table states **25,000** for the same row. The seeder uses **35,000** (the
Schedule 1 benefits table, which is the customer-facing figure) and records a note on the
plan-benefit row so it surfaces in the portal. The contribution figures are unaffected.

**2. Schedule 2, item 2 &mdash; product name.**
The remuneration table lists item 2 as "EFU Afiyah Takaful **Plus** Plan", duplicating item 1.
From the ordering and the 40% / 40% split it is clearly **EFU Afiyah Takaful Essential Plan**
(Product 2). Config is keyed on the product code `P2`, so this is a labelling issue only.

**3. Sales tax rate varies by product.**
Products 1 and 4 are quoted at 16% Sales Tax on Services; the rest at 15%. This is carried in
`config/takaful.php → levies.sales_tax_on_services` rather than assumed uniform.

**4. Administrative surcharge caps differ.**
Products 1 and 4: 5% with a minimum of PKR 200 and a maximum of PKR 3,000. Products 2, 3, 5, 6:
5% with a maximum of PKR 5,000 and no stated minimum. The config currently holds the
200 / 3,000 variant; contributions are quoted tax-inclusive, so this only matters if EFU ever
needs to re-derive the net from the gross.

**5. Waiting periods.**
Only Products 2 and 3 state a waiting period (15 days from the date of deduction). The others state
a free look period only. Seeded accordingly &mdash; `waiting_period_days` is null elsewhere.

**6. Products 7 and 8 &mdash; "Daily / One Time".**
The coverage term is stated as "Daily/ One Time" with a single daily contribution. Both frequencies
are enabled at the same rate, and cover for a daily plan runs one day from the deduction date.
If one-time travel cover should span the whole trip, the trip length needs to become an input on
the journey and `SubscriptionWorkflow::coverEnd()` needs to use it.

**7. Duplicated exclusion bullet.**
"Loss to the mobile phone due to short circuit / excess voltage related damage" appears twice in
Products 2 and 5. Seeded once.
