How the cover layer was built
Agents did the reading; people set the questions and checked the answers. Every line on the listing points at a clause read from the insurer's current policy, and every figure on this page comes from the run log of 28 Sep 2026.
The pipeline
Step 1
Capture
The MoneySmart listing as a traveller sees it: 51 plans, order, prices, badges, filters and the compare page.
Runs: MS page capture (24.1 min); Wave 2 Singlife + UOI + MS filters/compare (16.9 min)
Step 2
Fetch wordings
Each insurer's current policy wording, summary of cover and brochure; superseded versions kept aside.
Runs: Wordings scrape + first diff (14.0 min)
Step 3
Extract
Plan by plan, clause by clause: pre-existing conditions, altitude, winter sports, scuba, with the page and line cited.
Runs: Wave 1 dataset (15.4 min); Wave 2 MSIG + Tiq (10.5 min); Wave 2 Income + GE + Sompo (12.5 min); Merge + normalise (5.5 min)
Step 4
QA
A second agent checks every row against the source and writes down what it caught.
Runs: QA competitors (4.5 min); QA coverage diff (14.1 min); QA all 12 insurers (22.1 min)
Step 5
Receipts
Clauses re-read word for word from the cited lines become the “See clause” behind every line on the page.
Measured timings
Wall-clock per agent from the harness task notifications, 28 Sep 2026.
| Run | Agents | Wall-clock | Output |
|---|---|---|---|
| Competitors research | 1 | 11.2 min | competitors.md |
| Wordings scrape + first diff (5 insurers) | 1 | 14.0 min | wordings/, coverage-diff.md |
| QA competitors | 1 | 4.5 min | qa-competitors.md |
| QA coverage diff | 1 | 14.1 min | qa-coverage-diff.md |
| Wave 1 dataset (5 insurers, all tiers + add-ons) | 1 (+5 sub-agents) | 15.4 min | dataset.json (501 rows) |
| MS page capture (51 plans, 12 insurers) | 1 | 24.1 min | ms-page/ms-page-capture.md |
| Wave 2 MSIG + Tiq | 1 (+sub-agents) | 10.5 min | 334 rows |
| Wave 2 Income + GE + Sompo | 1 (+sub-agents) | 12.5 min | 331 rows |
| Wave 2 Singlife + UOI + MS filters/compare | 1 | 16.9 min | 106 rows + ms-filters-and-compare.md |
| Merge + normalise (1,272 rows) | 1 | 5.5 min | dataset-all.json |
| QA all 12 insurers | 1 | 22.1 min | dataset-all-qa.json, qa-dataset-all.md |
| Sum of agent run times (runs overlap, so elapsed time is shorter) | 150.8 min | ||
What QA caught
- First agent's scenario verdict backwards (Starr); QA corrected to HLAS and FWD (qa-coverage-diff.md).
- 2 of 5 wordings superseded (DirectAsia 15 Jul 2026, FWD V6); one plan on the wrong tier (HLAS Basic has no Covid cover).
- MS "T&Cs" link mistaken for policy wording; it is promo T&Cs (qa-competitors.md).
- Starr's own documents give 3 different Covid medical limits (do not quote).
What the page never does
- No AI model writes a verdict, a limit, a price or a clause. The chat may only quote, and each quote is checked word for word against the policy before it is shown.
- Health answers stay on the page: not saved, not sent to the AI.
- The insurer decides claims. The page shows what the policy says; it is information, not advice or a recommendation.
