# 05 — Roadmap & Business Case

**Step:** 6 · **Date:** 2026-07-27 · **Status:** GATE 2 cleared by the Head of Product with two rulings, both applied below.
**Inputs:** `04-opportunity-register.md` (especially **§6 RED TEAM**, which supersedes §6a/§6b/§6c) · `00-internal-context.md` · `00-scope.md` · `01-landscape.md` · `02-competitor-matrix.md` · `03-ops-scan.md` · `99-open-questions.md`
**Evidence rule applied throughout:** every number traces to a cited section of the register or the research files, or carries an explicit `[ASSUMPTION ± band]`. No new claims. `[VERIFIED]` / `[INFERENCE]` / `[ASSUMPTION]` and Tier labels are preserved from source. Where the honest answer is "we cannot know until Q6 and GATE 0 land," this document says so instead of estimating.

---

## 0. The one-paragraph version

**This is not a build plan. It is a plan to find out whether there is anything worth building.** Every dollar in the opportunity register is `R × parameter`, where `R = 1,000 bookings/month` is an `[ASSUMPTION — comparability device only]` (register §1b) and `{{SCALE}}` is still `UNKNOWN`. The red team's plausible low case is **200–400 bookings/month**, at which the surviving headline falls from **$12,160–$51,160** to roughly **$4,000–$21,600**, and **thirteen of twenty-four rows sit below a $3,000/yr materiality floor — i.e. they cost less to ignore than to convene a meeting about** (§6.11, §6.19). Separately, **seventeen of twenty-four rows are exposed to GATE 0**, the one-day Pool B exclusivity cross-check, including **~76% of the "safe" zero-engineering lane**, because exclusivity is a term *inside* the 27% Pool B margin, not merely a term in the sales pitch (§6.10). Therefore: **two measurements land first — Q6 (count the bookings) and GATE 0 (2026-08-07) — and nothing material is funded before them.** The unconditional work that proceeds regardless is **~2.0–2.9 engineering-weeks** (§6.18a), and the single highest-ranked action in the file — **OPP-D1-4** — *returns* 8–29 engineering-weeks rather than consuming any.

> **This is a deliberate choice, not a hedge.** A roadmap that funded ten rows against an unmeasured base would be a more confident document and a less useful one. The measurement costs roughly one person-day plus one counsel brief and resolves the largest single uncertainty in the study.

---

## 1. The two GATE 2 rulings, and what each changes

### Ruling 1 — MEASURE FIRST

The 90-day plan's primary deliverables are two measurements, not two features.

| | **Q6 — count the bookings** | **GATE 0 — Pool B exclusivity cross-check** |
|---|---|---|
| **The question** | `{{SCALE}}` — actual monthly orders, GMV, passes sold, Pass utilisation | **Q29** — are Pool B products already listed on GlobalTix or Klook by their own operators? |
| **Cost** | Hours. Internal. Zero engineering. | **One day** of catalogue cross-checking. Internal. Zero engineering. |
| **Date** | **2026-08-03** | **2026-08-07** *(register §3, unchanged)* |
| **What it decides** | Whether any row clears a materiality floor. At **300 bookings/mo exactly one CURRENT-basis row clears $3,000/yr**; at 150, none does (§6.11). | Kills 8 of 24 ranked rows and 4 of 6 `[UNSTAFFABLE]` rows outright; re-prices ZE-01, ZE-09, OPP-02 and OPP-03a through the Pool B margin band; re-opens `{{B2B_PRICING}}` (Q15), already signed off at GATE 1; invalidates the §1a feasibility screen for Pool B; removes the only High-defensibility claim in the file. **17 of 24 rows, one pricing architecture, one moat** (§6.10). |
| **Failure mode if skipped** | A precisely-reasoned answer about a business whose size nobody has measured (§6.19). | Funding a B2B strategy whose sole justification is an unverified fact. |

**The specific mechanism by which GATE 0 reaches the "safe" lane.** `01-landscape.md` §6.3 states the Pool B margin band's basis as *"direct contracting at operator net rate … **plus exclusivity supporting the upper end**."* If Pool B operators self-list, Pool B gross margin falls from **27% toward ~15–20%** *(toward the Arival floor, unverified)*, contribution per D2C booking falls from **$6.00 to ~$3.00–4.25**, and the G12 mix-shift constant (`Pool B margin − Pool A margin`, ~17 gross / ~20 net points) collapses to roughly **5–13 points** — halving ZE-01, the largest surviving number in the lane. By component: **$29,000 (21%)** of the original lane headline is directly GATE-0-gated and a further **$78,000 (55%)** rides the G12 delta → **~76% GATE-0-exposed** (§6.10).

### Ruling 2 — RE-SCORE OPP-01 AS CAPACITY, NOT COST-TO-SERVE

**The cost case genuinely fails and is not being rescued.** `03-ops-scan.md` §4a.5.3's **$0.079 per concierge-minute** is fully loaded — a market band above generic CS (Rp 4.5/6.5/9.5m) chosen because the role requires English fluency and destination expertise, grossed up by THR ×1.0833, BPJS ×1.11, a non-wage operating load ×1.25/1.40/1.60 itemising supervision, tooling, workspace, device, recruitment and attrition replacement at 25–35% Indonesian BPO attrition, with 12–18% shrinkage, triangulated against two independent sources. **Break-even AHT against a $0.99/resolution vendor is 12.5 minutes; the deflectable tasks are 2–3 minutes. That finding stands** (§6.9). Nothing below disputes it.

**The reverse case the register never ran** (§6.9.1). One concierge FTE = 1,780 productive hours = **106,800 minutes/year**. Against W1's 32 / 100 / 276 minutes per pass:

| Concierge minutes per pass | Passes servable per FTE per year |
|---|---:|
| 32 (low) | 3,338 |
| **100 (base)** | **1,068** |
| 276 (high) | 387 |

R assumes **2,400 passes/yr**, requiring **0.7 / 2.2 / 6.2 concierge FTE**. Concierge headcount is **UNKNOWN (Q7)**; `00-scope.md` §2.5 records **one** dedicated Pass concierge WhatsApp number. Compressing itinerary build by 30% of 25 minutes frees 7.5 of 100 minutes → **+8.1% throughput per FTE** → **~194 additional passes** on a 2,400 base → at a conservative **$40 contribution per pass** against the Pass ladder ($59.95 / $104.95 / $144.95) → **~$7,760/yr against the register's $1,422**, moving OPP-01 from 9th ($356/eng-week) to roughly 2nd ($1,940/eng-week).

> ⚠️ **This is strictly conditional on one unverified fact and is not presented as established.** The whole case rests on: **does concierge availability actually limit how many Passes can be sold?** Nobody has checked. If the roster is not the binding constraint on Pass volume, **OPP-01 reverts to killed** — 9th of nine, $1,422/yr against a $3,000 materiality floor, consuming 4.0 of an assumed 6 engineering-weeks.
>
> **Two further honesty notes carried forward.** (i) The capacity case scales with R too: at 300 bookings/mo (720 passes/yr) the same 8.1% throughput gain is **58 passes ≈ $2,320/yr — below the materiality floor.** The capacity re-score does not survive the low case either. (ii) `$0.079` is a **40-hour-week** cost with no night-shift or public-holiday differential; continuous coverage requires ~4.2 FTE per covered seat (§6.9). **It must never be quoted as the cost of an *available* minute.**

**Validation step — dated, with an owner by role.** See §7, item **V-3**.

---

## 2. PLATFORM PREREQUISITES — a separate lane, with its own justification

🔴 **These are not strategic bets and must not be presented as any. They have no independent ROI and should not be asked to produce one.** Their justification is dependency: named rows below are unshippable without them, and two of them (P5, P7) exist specifically to stop the plan from measuring the wrong thing or generating the wrong artefact. **Presenting infrastructure as a bet is how a roadmap loses credibility at first review — the CEO correctly asks "what is the return on an eval harness?" and there is no honest answer except "it is the condition under which the other returns are real."**

| # | Prerequisite | What it actually is | Cost | Blocks | Justification stated as a dependency, not a return |
|---|---|---|---|---|---|
| **P1** | 🔴 **Declared `availability_model` per Pool B SKU + booking state machine** (= **ZE-09**) | One schema field, four values (`allotment` / `freesale_capped` / `static_schedule` / `request_to_book`) + parameters + a supplier-side booking record | **1.0 eng-wk + 0.8–1.5 person-wk** ops classification across 150–250 SKUs | OPP-02, OPP-03a, OPP-03b, all D2 rows, all D3 rows — **8 rows** | Direct return $1,365/yr against $1,079 cost is a **15-month payback and not a case** (§6.13). Its case is that eight rows depend on it. It is also **the only row in the file that asks the operator to adopt nothing** — the only requirement this supply base demonstrably can meet (`03-ops-scan` C-13: 39% of operators worldwide run no booking system; 54% of operators founded after 2022 have none — the newest cohort is the *least* digitised). |
| **P2** | 🔴 **PDP-law ruling** — may traveller WhatsApp content reach a third-party model provider? | One counsel brief | **Zero eng-weeks.** Counsel time. | Every row touching traveller conversation content: OPP-01, OPP-03b, OPP-04 | Binary. A "no" closes the vendor route at the egress point; three of four fallbacks fail the capacity constraint outright and the only survivor is in-region hosted inference **whose availability and price are unverified** (§12 row 3). |
| **P3** | 🔴 **Liability ruling** — does automating a concierge instruction expand exposure beyond the operator disclaimer? | Same counsel brief as P2 | Zero eng-weeks | OPP-01, OPP-02, any in-destination automation | A concierge instruction is **SatuSatu's own act**, not an operator act, and the Pass markets *"a real Bali local."* **No amount of model quality addresses a misrepresentation claim.** |
| **P4** | **Eval harness** | Cheapest viable form: 100–200 manually-labelled examples per task, held out, re-run on every prompt change | 8–16 **ops hours** = **US$60–130** at the $8/hr loaded rate `[the rate itself is flagged unverified — 4c-G1]` | Every model-bearing row | It is ops hours, not eng-weeks. There is no version of shipping a model-bearing row without it that is defensible in a post-incident review. |
| **P5** | **Observability on the *right* metric** | **IDIER** (in-destination instruction error rate) via 100% manual QA of a random sample; **escaped-defect rate** for catalog; **72h re-contact rate** | Ops process | Every model-bearing row | 🔴 **Explicitly NOT deflection rate and NOT auto-pass rate — both rise as quality falls** (`03-ops-scan` §4a.3.5, §4b.2.3, Q43). *"A traveller who goes silent after a bad in-destination instruction is not a resolved ticket — they are a person walking toward the wrong temple"* (C-11). This prerequisite exists to prevent the plan from grading itself on a metric that improves when the product gets worse. |
| **P6** | **Human-in-the-loop tooling** | Concierge assist: the queue already exists (WhatsApp) → near-zero. Catalog dedup: a review-queue UI is **~⅓ of the dedup build** | **0** for concierge; **1.3–2.7 eng-wk** for dedup | OPP-D1-2 (light), U-03 (heavy) | The heavy version is **avoidable by contract** — see OPP-D1-4. This is the clearest case in the file of a prerequisite deleted by a commercial decision rather than paid for. |
| **P7** | **Rendered-not-generated template library + slot mapping** | The single highest-value architectural constraint available | Inside **OPP-02** | OPP-02 and **any outbound traveller message** | Converts failure classes F1 (wrong meeting point/time) and F2 (booking never placed) from **mandatory-HITL to gate-able**, and **forecloses U-06 by construction.** 🔴 **Write *"generated in-destination prose is prohibited"* into the design doc before anyone can argue otherwise** (§6.14). |
| **P8** | **Crawl access verified** | Check the robots configuration | **Hours** | Anything AEO | Binary gate, costs nothing, and is the *only* fragment of ZE-11 that survives the kill (§6.8). Retain schema.org markup on Pool B SKUs at **≤0.1 eng-wk of catalog hygiene, with no traffic claim attached.** |

### 2b. Data infrastructure — the prerequisite nobody has costed

**Three of the four data assets this roadmap would want are `UNKNOWN`** (register §1 screen 2). This is a prerequisite, not a bet, and it is the reason ZE-12 is reclassified below.

| Asset | Status | Consequence | Cheapest path |
|---|---|---|---|
| **Order volume / GMV** (Q6) | 🔴 UNKNOWN | Every dollar in the study is `R × parameter` | **Q6. Hours.** |
| **Search & clickstream logs** (Q10) | 🟠 UNKNOWN | Decides whether ranking, relevance and personalisation work is possible **at all** | **ZE-12** — reclassified from (a) GMV lift to **instrumentation**. It is the only row that *manufactures* data the rest of the file lacks. |
| **WhatsApp / CS transcript retention** (Q9) | 🟠 UNKNOWN | Decides whether concierge automation is a 90-day build or a 9-month one that begins by instrumenting a pipeline | Internal check. OPP-03b **cannot start** until this is Yes. |
| **Concierge minutes/headcount** (Q7, Q8) | 🔴 UNKNOWN | Every D0 sizing; OPP-01's break-even swings **4,603 → 16,975 passes** across the band | **One week of queue data.** Bundled into V-3. |

### 2c. Table stakes — do them, never claim them

Per register §9. **Each is worth doing; none is a moat; presenting any of them as one would be the fastest way to lose the room.**

WhatsApp support/concierge channel *(Antavaya publishes a named WhatsApp concierge — "AMY" — on its homepage; the "WhatsApp-first SEA player" category was investigated and **refuted**)* · a B2B partner portal *(Golden Rama has one; Traveloka is building one; **"a portal is table stakes and confers nothing"**)* · a public reseller API *(Klook, GYG, Viator, KKday, Headout all ship one)* · a pass/bundle product *(**Klook Bali Pass is live now** — activity ID 68512, 40+ Bali activities, 25 locale variants; a merchandising construct, not an AI or platform construct, **which is exactly why a horizontal incumbent can bolt one on in a week**)* · AI-assisted listing creation *(GetYourGuide shipped it 2025-04-23, 8 of 16 wizard steps, 100% rollout — **do it as ZE-08 and never claim it**)* · AI customer-service deflection · instant confirmation on Pool A *(plumbing, not service)*.

> **The one thing in this file with High defensibility** — *a contracted, classified availability model over **exclusive** direct-contracted Balinese long-tail supply* (ZE-09 + ZE-06 + GATE 0) — **is 100% conditional on GATE 0.** If Pool B is not exclusive there is no moat in this roadmap, only a well-argued operations improvement (§6.10, §9).

---

## 3. SEQUENCE — Now / Next / Later

**Horizon definition** *(`{{HORIZON}}` is UNKNOWN; the plan default is used and should be confirmed or overridden by the Head of Product)*: **Now ≤ 90 days = 2026-07-27 → 2026-10-25** · **Next = 2–3 quarters, i.e. to ~2027-04-30** · **Later = bets, unfunded, documented for sequencing.**
⚠️ **Calendar honesty:** the register's instrumented window starts at **T₀ ≈ 2026-08-16**, so several kill decisions dated **T₀+90d = 2026-11-15** land *outside* the 90-day Now window. They are shown in Now because the *work* is in Now; the *decision* is three weeks later. This is stated rather than hidden by re-dating.

### 3a. 🟩 NOW (≤90 days) — unconditional. True regardless of GATE 0 and regardless of R.

**Spine order, from red team §6.18a.** Engineering total **~2.0–2.9 eng-weeks**.

| # | ID | Action | Eng-wk | Person-wk | Basis / sized impact | Why it sits here |
|---:|---|---|---:|---:|---|---|
| **0** | **Q6** | **Count the bookings.** `{{SCALE}}` — monthly orders, GMV, passes sold, Pass utilisation | 0 | ~0.1 | — | Nothing below can be ranked without it. §6.11, §6.19. |
| **0** | **GATE 0** | Pool B exclusivity cross-check (Q29) | 0 | 0.2 | — | Gates 17 of 24 rows. **2026-08-07.** |
| **0** | **P2 + P3** | One counsel brief — PDP law + liability/representation | 0 | counsel | — | Zero eng-weeks; gates the highest-value D0 area. **Cheapest unblocking action in the file.** |
| **1** | 🥇 **OPP-D1-4** | **Contract feed #2 for zero overlap** *(or accept one feed)* | **0** | ~0.5 | **8 / 15 / 29 eng-weeks avoided** = $5,432 / $10,185 / $19,691 · **R-independent · GATE-0-independent** | **See callout below.** |
| **2** | **ZE-01** | Split `supplier_sold_count` / `satusatu_bookings`; audit every surface. *(Now includes ZE-02's margin-weighted ranking rule — same source recommendation list, config value not a build.)* | **0.3** | ~0.5 | **break-even: 41 redirected bookings, ever.** $39,000 **withdrawn** | Hours of work, and it is a **live trust and advertising-accuracy exposure** independent of any margin argument: displaying another platform's transaction count as your own. **Do it because it is wrong, not because it is worth $39,000** (§6.3). |
| **3** | 🆕 **M-1** | **Nightly rate-integrity rule-check** — four deterministic assertions: every live net rate ≥ cost × margin floor; no expired contract serving live rates; every partner's tier matches trailing-90-day volume; a parity crawl of partner storefronts against the contracted floor | **<1.0** | ~0.1 | unsized | `03-ops-scan.md` §4c.5.2, verbatim: *"plausibly under 1 eng-week… **highest return per eng-week of anything in 4c**."* Defends the **highest-severity item in the whole 4c failure table** — net-rate confidentiality or parity breach, *"loss of the contract, i.e. loss of the exclusivity that is the entire D2/D3 thesis."* **Omitted from the original register** (§6.15). |
| **4** | **ZE-06** | Sublicensable, perpetual image-and-content grant in the Pool B contract template | **0** | legal | **one-off $1,800–3,000** — *must never enter an annualised total* | 🔴 **Most time-sensitive row in the file.** Irreversible: retrofit cost rises with every contract signed, and a refused retrofit on an irreplaceable SKU is unpriceable. |
| **5** | **ZE-03** | Render refund policy from supplier `percentReturn`; Layer-1 gate | **0.2** | ~0.1 | **$975** | Survives on **ratio, not magnitude** — below the floor, but so is 0.2 eng-weeks, and a one-hour audit may close the row for free. One 50-point refund mismatch wipes the margin on five clean Pool A bookings. |
| **6** | **ZE-12** | Query logging + synonym dictionary + weekly zero-result review | **0.2** | ~0.3/qtr | 🔄 **RECLASSIFIED: instrumentation, not GMV lift** | It is the only row that **manufactures data the rest of the file lacks.** Query logs close Q10, which gates every ranking, relevance and personalisation question. Fund it as data infrastructure (§2b). |
| **7** | 🆕 **M-2** | **Chargeback / dispute leakage** — measure Q33, then 3DS/AVS configuration + a dispute-response template | **~0.2** | ~0.1 | unsized; H5 band **8–18% of Pool A gross profit** | One chargeback destroys the gross profit of **~9 clean Pool A bookings** (~13 on net). Travel chargeback rate **0.89% base, 2.0% high**; travel disputes **+30% y/y**, friendly fraud named as the driver. **This is the same order of magnitude as ZE-05's entire claim, on better evidence, and the register had no row for it** (§6.15). |
| **8** | **ZE-08** | AI listing extraction as an ops habit — **buy, never build** | **0** | ops | **$1,920, SKU-contingent and R-independent** | Best-evidenced AI finding in the corpus (GYG, Tier A, 100% rollout). **Copy GYG's boundary exactly — the 8 steps they automated, not the 8 they declined to.** ⚠️ 240 SKUs/yr implies ~100% Pool B growth, inherited from nowhere; at 60 SKUs/yr it is **$480**. |
| — | **ZE-05** | Ask GlobalTix about SGD settlement and `directContractPrice` **and** get a bank IDR→SGD / USD→SGD corporate quote — **same week, both halves or neither** | **0** | ~0.1 | **~$7,900 EV** *(was $29,250)* | Carried at expected value, **not $29,250**: `P(GlobalTix accepts SGD settlement) ≈ 0.6` × `P(own all-in IDR→SGD spread materially below 150 bps) ≈ 0.45` → **0.27 × $29,250 ≈ $7,900 at R; ≈$2,370 at 300 bookings/mo.** 🔴 **Do not report the gross number to anyone until the bank quote exists** — the mechanism is "settle in SGD where markup is zero," which *creates* the FX exposure ZE-04 exists to remove, on ~$1.76M of Pool A payables (§6.2). |
| — | 🆕 **M-3** | **Pass float / breakage governance** vs the Sightseeing Pass precedent | 0 | finance | unsized | `00-scope.md` §3 **Amendment C** was approved at GATE 1 specifically to make deferred-liability/float its own risk surface, **and the register contains zero rows on it.** Precedent: Sightseeing Pass suspended operations ~June 2025 and stranded prepaid customers; Go City published a poaching page within days and then tightened **both** float levers (redemption 60→30 days; shelf life 24→12 months). SatuSatu's Pass carries a **90-day activation window**. *"Breakage % **is** the Pass margin"* — and it is UNKNOWN. |
| — | **OPP-01** | **Re-open as a capacity question — measure only.** Q7 + Q8 + Pass utilisation, then re-score | 0 *(measure)* | ~0.2 | **$1,422 or ~$7,760 — undecided** | Ruling 2. **Do not fund and do not dismiss.** See V-3. |

**Unconditional totals: ~2.0–2.9 eng-weeks · ~2.2 person-weeks core, ~3.9–4.9 person-weeks once Q39 and ZE-12's recurring review are counted (§6) · plus one counsel brief.**

> ### 🥇 OPP-D1-4 is rank 1 of the entire file, and the reason is structural
>
> **It is the only row that *returns* engineering capacity rather than consuming it.** With `{{CAPACITY}}` answered *"none dedicated — the D2/D3 platform build consumes the team,"* **effort is the binding constraint, not impact** (`00-internal-context.md`). Every other row in this document spends the constrained resource. OPP-D1-4 pays **8 / 15 / 29 eng-weeks** back into it, for **zero engineering** and a contracting conversation.
>
> The arithmetic is `avoided = second_feed_proper − second_feed_MVP`, where proper (auth + delta + canonical model + option-level mapping + dedup + review-queue UI + taxonomy crosswalk + dual settlement) = **11 / 20 / 37 eng-weeks** `[INFERENCE, 03-ops-scan S2c]` and a bounded MVP with single-source-of-truth per attraction = **3 / 5 / 8 eng-weeks**. It is **R-independent** and **survives GATE 0 in both directions.**
>
> **Its weakness is stated honestly and does not change the rank.** The overlap concentrates precisely on the SKUs SatuSatu most wants — USS, Singapore Oceanarium, River Wonders, Waterbom Bali, GWK, Taman Safari — and *"a second aggregator that did not overlap on those would have no commercial value."* **So the executable form is non-overlapping *territory* (non-Bali Indonesia, or Singapore where GlobalTix is strongest and a second feed adds least), not non-overlapping product.**
>
> **Three cheap actions inside this row, in order:** (1) ask whether the two feeds share **any** venue identifier — *"one afternoon to check" (Q34)*; if yes, an exact-identifier join at ~0.99 precision solves the head of the catalog outright. (2) Establish the second aggregator's **take rate in writing (Q38)** — *a second margin taker on ~10% gross may be fatal.* (3) Declare single-source-of-truth per attraction **in a spreadsheet** for the ~20–50 genuinely overlapping attractions — *"it costs approximately nothing and makes duplicates structurally impossible rather than probabilistically rare."*
> 🔴 **Do not do live cheapest-of-two price selection.** It is the most expensive line in the table, it sits in the render path, and it buys a few points of margin on inventory carrying ~10% gross.
> 🔴 **And the correct outcome of a failed negotiation is ONE FEED, not a 20-eng-week integration project** (U-03, 11/20/37 eng-weeks, *"it should never become fundable in this form"*).

### 3b. 🟨 NEXT (2–3 quarters) — conditional on GATE 0 passing. **Nothing here starts before 2026-08-07.**

**Order from red team §6.18b.** Engineering total **~6.0 eng-weeks**; person-weeks **~12.6–13.3, of which ~11 is BD alone** — see §6.

| # | ID | Action | Eng-wk | Person-wk | Sized | Gate |
|---:|---|---|---:|---:|---|---|
| **1** | **ZE-09** *(= P1)* | Declared `availability_model` per Pool B SKU + booking state machine | 1.0 | 0.8–1.5 | $1,365 direct; **P1 for four survivors** | Start it either way — **the *urgency* is GATE-0-dependent, the *need* is not.** It survives a GATE 0 failure on OPP-02 + OPP-03a + OPP-03b alone (~$7,755 combined). |
| **2** | **OPP-03a** | No Pool B booking sits silently unconfirmed | 1.0 | 0.1 | **$5,040** · break-even **1.13 strandings avoided/yr** | ZE-09. **No model.** Attacks F2 — the highest-severity, *unrecoverable* Pool B failure on fixed-departure products. Robust to a 3× error in the unverified $600/stranding. ⚠️ Operator fatigue is a real behavioural risk on scheduled outbound, the same risk §4b.4.5 #5 flags for AI outbound. |
| **3** | **OPP-02** *(= P7)* | Day-of messages **rendered from a confirmed record, never generated** | 2.0 | 0.2 | $1,896 — 🔄 **fund as a control, not a saving** | ZE-09, P5, P7. Below the materiality floor as a saving; **above it as risk architecture.** Converts F1 from mandatory-HITL to gate-able and forecloses U-06 by construction. |
| **4** | **OPP-D1-2 (Layer 1 only)** | Bad SKUs stopped at ingest — deterministic checks | **1.0** *(scoped down from 1.5)* | 0.2 | $790 sized + an **unsized mispricing leg, likely dominant** | 🔴 **Layers 2 and 3 unfunded — no source in this research measures LLM-as-judge accuracy on travel listing copy.** Anchor on the one verified fact: the displayed sold-count is a **100% defect rate on one live customer-visible field across the entire Pool A catalog.** |
| **5** | **ZE-07** | Rate sheet + WhatsApp outreach to 20–40 named agents | 0 | 🔴 **~11** | **unsizeable — $16,160 withdrawn** *(it is the same $16,160 as OPP-D2-3, same 10 partners, booked in both lanes)* | 🔴 **Q31 FIRST — no rate card, no rate sheet.** Its own Data-required field: *"Pool B rate card at agent net rates — N, an internal pricing decision."* Plus GATE 0. **This row is the org gap, not a task — see §6.** |
| **6** | **ZE-04 · ZE-10** | IDR denomination + FX-reset clause; prepay-only launch (no credit function) | 0 / 0.5 | 0.2 | 🔄 **unsized policies, $3,000 and $7,440 withdrawn** | Before the first B2B contract. ZE-10's "$7,440" was the avoided cost of a credit function the register recommends **never building** — *avoiding a cost you were never going to incur is not impact.* ZE-04's episode frequency is **unquantified (4c-G9)** and PBI 17/3/PBI/2015 reaches SatuSatu only per a Tier B summary the register routes to counsel. **Right actions, fictional numbers.** |
| **7** | **OPP-D3-3** | Indonesian wholesalers carry Pool B without SatuSatu building an API | 0.5 | 0.3 | **$4,420** at 2,000 bookings, **40% confidence** | GATE 0 **+** the **Golden Rama post-login check** — `02-competitor-matrix.md` §8b calls it *"the single most valuable remaining Indonesian check."* The only D3-specific staffable row, and the one place Pool B's on-request nature is an **advantage** (their workflow is already quote-and-confirm). It survived where OPP-D2-4 died for one reason: **these counterparties do not compete for the Bali traveller.** |
| — | **OPP-D2-3** | Agent seats + prepaid wallet | **5.0** | — | $16,160 at 10 partners *(N\* = 5 base partners)* | 🔴 **Its own budget conversation, not a rounding of this one.** Do not start before **ZE-07 clears its 3-repeat-agent test on 2026-11-15.** Its own §9 label is **table stakes** — a portal confers nothing. |
| — | **OPP-03b** | Operator replies become a booking state | 2.0 | — | $819 | **→ Later.** Q9 (transcript retention) first, or it starts as a data-collection project. **60/75/88%** extraction accuracy in real Bali conditions against a **≥99% precision** bar, with a 40% automated-share floor that may be unreachable at that precision. |
| — | **OPP-D1-3** | Raw-MT catalog breadth | 1.0 | — | not sizeable — **traffic claim withdrawn** | The cost finding (**four to five orders of magnitude** between raw MT and post-edited MT) is the strongest arithmetic in the file and stands. But **India (8.19%) and China (7.73%) are addressed by neither the language nor the USD currency.** **Translation without a payment-and-currency answer moves nothing.** |

### 3c. 🟦 LATER — bets. Unfunded, documented for sequencing, **not proposed.**

**These are bets. Everything in §2 is not.** Keeping the two lists apart is the point.

| ID | Bet | Effort | What would have to be true first |
|---|---|---:|---|
| **U-02** | **OCTO-conformant connectivity client** | **8 / 14 / 24 eng-wk** | 🔴 **The only structural answer to single-feed concentration.** One conformant client reaches Prioticket/ETG, Ventrata, Bókun and any future OCTO supplier, and makes each vendor swappable. `02-competitor-matrix.md` §4d: *"a named decision in the D3 architecture, not an implementation detail."* **Fundable at a ≥14-eng-week budget, and it should be the first thing funded when one exists.** |
| **U-05** | **AI quoting assistant for agents** — multi-day, multi-pax with age bands, geographically coherent, target agent margin, branded output | **3 / 6 / 12 eng-wk** on top of OPP-D2-3's 5 | 🔴 **Analytically the best-positioned AI application in the whole B2B bracket** — generative *plus* constraint-satisfying, and **pre-booking, so an error costs a re-quote, not a wrong booking.** Break-even **1,843 incremental Pool B bookings/yr ≈ 1 extra booking per agent per week at 20–40 agents.** Hard design constraint if ever built: **every Pool B line must carry an explicit subject-to-confirmation state in the client-facing output, and quotes must expire in 24–72h** — otherwise it manufactures unhonourable quotes at machine speed. Needs ≥12 eng-weeks **and** live partners on OPP-D2-3. |
| **U-01** | **D3 reseller API** | **24–46 eng-wk build + 8.7 / 21.3 / 50 eng-wk/yr to run** | **All four conditions of §11a, not any:** GATE 0 passes · a material share of Pool B is instant-confirmable · **2–5 named partners already transacting ≥480 Pool B bookings/yr** · a 33–96 eng-week year-one budget. Pool B **cannot pass an industry-standard API certification** — Viator gates production on real-time availability, booking hold, `modified-since` ingestion and a calendar view `[VERIFIED, Tier A]`. **D3 could therefore only be request-to-book — an API that adds latency to a workflow whose only defect is latency.** |
| **U-04** | **White-label agent storefront** | 8 / 14 / 20 eng-wk | Only after Pool B is majority instant-confirmable. **A consumer-facing storefront that cannot confirm degrades on exactly the inventory it was built to sell.** Precedent is unhelpful: Holibob gives its white-label away as channel enablement, not as a product. |
| **U-07** | **Partners answer their own routine questions** (ex-OPP-D2-5) | 2 eng-wk | 🔴 **The cost it deflects does not exist.** True deflection on the availability loop is **~0%**; a B2B exception costs $1.04–8.18 here, **7–58× below the US benchmarks every vendor case rests on.** Do not rank until a B2B exception queue exceeds **40 contacts/month sustained for two months** — which needs ~20 transacting partners who do not exist. |
| **OPP-04** | Pre-purchase AI enquiry handling | — | 🔴 **KILLED at any per-resolution price and it does not return as a metered product.** The meter cannot be pointed at Pool B: **you do not know a traveller's pool until the enquiry has been answered, and by then it has been metered.** On the blended queue the requirement is **~42% incremental enquiry→booking conversion**; the register's own word for 57% is *"implausible."* Returns only as a **fixed-cost arrangement (subscription or in-region hosted inference) whose price is UNVERIFIED and must be obtained before, not after, a decision. As an unpriced option it is not a candidate; it is a procurement question.** The coverage, latency and language benefits are real and remain the *only* correct justification. |
| **OPP-D2-4** | List Pool B on a third-party rail | — | 🔴 **KILLED. Re-open only as salvage**, and only when **all three** hold: (a) GATE 0 has **failed** or ZE-07 has **failed** — i.e. the exclusivity thesis is already disproven; (b) ETG/Holibob Indonesian depth is verified; (c) the listed set is explicitly the SKUs GATE 0 found **already self-listed.** *Distribution reach is worth buying when you have nothing to lose, not while you still do.* |
| **ZE-11** | Assistant-callable catalog / AEO | — | 🔴 **KILLED as a funded row.** *"No assistant publishes its retrieval criteria, so every AEO tactic list is inference dressed as method"* — the card's own words, 30% confidence. The channel the incumbents actually won is **distribution *into* the assistant** — a commercial deal, not a schema attribute. **Retain P8 + Pool-B-only schema.org markup at ≤0.1 eng-wk, with no traffic claim.** Do nothing about Pool A prose (C-08). |
| **U-06** | In-destination generative concierge | 6+ eng-wk | 🔴 **Probably never in this form.** Blocked on governance, not effort. Failure class **F5 (water and surf conditions, volcano status, scooter advice, medical/allergen guidance) must not be AI-issued at all, reviewed or otherwise.** **OPP-02 renders instead of generating and is the correct substitute.** Documented so "AI concierge" is not re-proposed as one undifferentiated idea when only half of it is safe. |
| **U-03** | Second aggregator integrated properly | 11 / 20 / 37 eng-wk | **It should never become fundable in this form.** OPP-D1-4 deletes it. Documented only so nobody rediscovers it as *"the obvious way to add a second feed."* |

---

## 4. CROSS-DIRECTION SEQUENCING — the chain that dictates order more than any score

🔴 **`00-scope.md` §6(b) states the rule and Step 6 is where it must be obeyed: the prerequisites lane is ordered `stage 5 → stage 3 quality gate → D2/D3 surfaces`, and this chain should be presented as dictating sequence more than RICE does.** The register's own §6c conceded the same in one narrower place — *"the ranking and the dependency chain disagree and the chain must win."* Below is the full chain drawn out.

### 4a. The chain

```
                  ┌──────────────────────────────────────────────────┐
   MEASURE FIRST  │  Q6 — count the bookings        (2026-08-03)     │
                  │  GATE 0 — Pool B exclusivity    (2026-08-07)     │
                  │  P2 + P3 — one counsel brief    (2026-09-15)     │
                  └───────────────────────┬──────────────────────────┘
                                          │  17 of 24 rows sit below this line
      ┌───────────────────────────────────┼───────────────────────────────────┐
      │                                   │                                   │
 OFF THE CRITICAL PATH            SPINE STAGE 5                        SPINE STAGE 3
 (fund immediately)          real-time availability                 feed ingestion
      │                     ── NOT SOLVED BY ANY ROW ──                       │
 OPP-D1-4  ──► deletes U-03            │                                      │
 M-1 · M-2 · M-3                       │                                      │
 ZE-01 · ZE-03 · ZE-12 · ZE-08   ZE-09 (P1) declares which                    │
 ZE-05 (EV) · ZE-06              SKUs escape the gap:                         │
                                 30% / 50% / 70%                              │
                                       │                          OPP-D1-2 (Layer 1)
                                       │                          = the stage-3
                                       ├──────────────┐             QUALITY GATE
                                       │              │                       │
                                  OPP-03a         OPP-02  ◄── P7              │
                                  OPP-03b          (D0)                       │
                                    (D0)                                      ▼
                                       │                            ┌──────────────────┐
                                       └───────────────┬───────────►│  D1 CATALOG      │
                                                       │            │  BREADTH         │
                                                       │            └────────┬─────────┘
                                                       │                     │
                                   ┌───────────────────┴─────────────────────┘
                                   ▼
                        ZE-07 (needs Q31 rate card)  ── the D2 demand test ──
                                   │
                        ┌──────────┴──────────┐
                        ▼                     ▼
                   OPP-D2-3 (D2)        OPP-D3-3 (D3)
                   [own budget]         [+ Golden Rama check]
                        │
                        ▼
                   U-05 · U-04 · U-07  ────►  U-01 (D3 API)

   U-02 (OCTO client) sits OFF the critical path as the single-feed concentration hedge.
```

### 4b. The four edges that actually control the order

| Edge | Statement | Source | Consequence for this roadmap |
|---|---|---|---|
| **1. D2 and D3 both depend on spine stage 5** | *"D2/D3's entire commercial rationale rests on Pool B — and Pool B is precisely the inventory with **no real-time availability**, because those operators sit on no booking system. **Stage 5 is no longer one prerequisite among several; it is the gating dependency for the whole B2B strategy.** A partner dashboard that cannot quote live Pool B availability is a quote form; an API that cannot confirm is a catalogue feed."* | `00-internal-context.md` `{{B2B_PRICING}}` note 2; `00-scope.md` §8 | 🔴 **And stage 5 is not solved by anything in this roadmap.** `01-landscape.md` §9 Force 1 concludes **real-time availability for Bali's long tail will not exist by 2028**, and *"Klook and Viator will not do manual fulfilment for a 30-guest-a-month waterfall operator either."* **ZE-09 does not solve stage 5 — it makes stage 5's absence legible and gate-able**, declaring which 30 / 50 / 70% of Pool B escapes `request_to_book`. **D2 and D3 are therefore structurally capped at request-to-book for the whole horizon of this document, and every D2/D3 row must be designed for that, not around it.** |
| **2. D2 and D3 both depend on D1 catalog breadth** | *"An agent's platform choice is a **workflow decision**, not a product decision"* — one login, one rate logic, one invoice, one AR relationship. *"A Bali-only 253-SKU supplier is, **by construction, an additional login.**"* | register §11a reason 2 | **Breadth is a precondition for a partner conversation, not a growth bet.** But 🔴 **D1 scales the lowest-margin pool** — Pool A at ~7% net, with catalog, content and support cost rising linearly. **Every D1 row in this roadmap is therefore a leak-stopper (OPP-D1-2, ZE-03) or an instrumentation/retrievability play (ZE-12), and none is a growth bet.** Sequencing D2 ahead of breadth produces a partner pitch with nothing to pitch; sequencing breadth as *revenue* multiplies a 7% pool. |
| **3. D1 depends on the stage-3 quality gate** | Distribution-in is **already live** (`{{FILL_STRATEGY}}` ANSWERED). *"With two feeds, the same attraction will arrive twice with different names, images, pricing and cancellation terms — and the first duplicate pair reaching the storefront is a visible quality failure. Step 4b should treat dedup as a prerequisite to onboarding aggregator #2, and Step 6 should sequence it that way."* | `00-internal-context.md` `{{FILL_STRATEGY}}` consequence 3 | **OPP-D1-2 Layer 1 IS the stage-3 quality gate, and it must land before feed #2, not after.** 🔴 **On a 253-SKU catalog where a category page shows the whole inventory, duplicates are on page 1.** And the asymmetry decides the design: **a false merge sells the wrong ticket (F2/F7); a false split is a cosmetic defect. They must never be traded against each other with a single threshold.** **OPP-D1-4 is the cheap way to satisfy this edge — it removes the overlap rather than resolving it.** |
| **4. Everything B2B depends on GATE 0, and GATE 0 reaches back into D0/D1** | Exclusivity is a term **inside** the Pool B margin band, not merely in the pitch | §6.10 | The naive reading — *"the zero-engineering lane is the GATE-0-independent safe harbour"* — **is false.** ~76% of that lane's headline is GATE-0-exposed through the G12 margin delta. **There is no lane in this roadmap that is fully insulated from GATE 0 except OPP-D1-4, M-1, M-2, M-3 and ZE-08.** |

> **What the chain implies that no score does.** ZE-09 ranks 5th in its own lane on direct return ($1,365, a 15-month payback) and **is prerequisite P1 to eight rows, four of which rank above it.** OPP-D1-2 sizes at $790 and **is the gate through which all D1 breadth must pass.** OPP-D1-4 sizes at zero dollars of revenue and **is rank 1 of the file.** 🔴 **Three of the four most order-determining rows in this document would be at or near the bottom of any impact-ranked table. That is why the chain is drawn before the scores.**

---

## 5. MULTI-DIRECTION BUILDS — flagged, and why they beat higher-scoring rows

**Rule applied: a row serving D1+D2+D3 with one build beats a higher-scoring single-direction row, because the constrained resource is spent once and amortised across directions.** With `{{CAPACITY}}` = *"none dedicated,"* this is not a preference; it is the only arbitrage available.

| ID | Directions served | One build, because… | Beats |
|---|---|---|---|
| 🔴 **ZE-09** (P1) | **D0 · D1 · D2 · D3** | One schema field with four values plus a booking record serves instant-confirm on D0, sellability on D1, quotability on D2 and confirmability on D3. **It is P1 for eight rows.** It also asks the operator to **adopt nothing** — the only requirement this supply base demonstrably can meet. | Every row above it on impact/eng-week. Its own direct $1,365 is *"not a case"* — **the case is that eight rows are unshippable without it.** |
| 🥇 **OPP-D1-4** | **D1 primary; returns capacity to all four** | An eng-week returned is an eng-week available to any direction. **8–29 eng-weeks avoided is larger than the entire assumed two-quarter displacement budget of 6.** | Everything. It is rank 1. |
| **M-1** | **D2 · D3 · (protects D0/D1)** | Four deterministic assertions in one nightly job defend the **net-rate confidentiality and parity terms that ARE the D2/D3 contract**, and simultaneously protect the Pool B margin floor that the D0/D1 mix-shift argument (ZE-01) depends on. | Its own bracket, per `03-ops-scan.md` §4c.5.2: *"highest return per eng-week of anything in 4c."* |
| **OPP-02 / P7** | **D0 primary; standard for all outbound** | The rendered-not-generated template library is not a D0 feature — it is **the outbound-messaging standard for every direction**, including any future partner-facing message. It converts F1 from mandatory-HITL to gate-able **once**, for all of them. | Its own $1,896, which is below the materiality floor. **Fund it as the standard, not as the saving.** |
| **ZE-06** | **D2 · D3** | One clause in one contract template unblocks **all** partner-facing content for both directions, and its cost rises with every contract signed. | Any row that assumes it can show a partner an operator's images. Blocked upstream of C-07 (AI-derived imagery) as well. |
| **ZE-12** | **D0 · D1 (and gates cross-direction ranking work)** | Query logs close **Q10**, which gates every ranking, relevance and personalisation question in *any* direction. One instrumentation change, four directions of optionality. | Its own unrankable GMV break-even. **Reclassified to instrumentation for this reason.** |
| **ZE-01** | **D0 · D1 · (D2 via the folded-in ranking rule)** | One field split plus a surface audit; ZE-02's margin-weighted ranking rule folds in as a config value, not a build. | The now-killed ZE-02, which was the same money counted twice. |

⚠️ **Counter-example, stated so the rule is not applied blindly.** **OPP-D2-4 served D2+D3 with one build and was killed anyway** (§6.7) — multi-direction reach does not survive a trade of the only High-defensibility asset in the file for **$3.00 a booking**, executed with a counterparty holding an Indonesian SOE channel-manager mandate, a Travel Agent Licence (TA03367) and a `/resellers/` page shipping D3's pitch since 2022-12-29, **before** the exercise that would identify which SKUs are safe to trade. **Multi-direction is a tie-breaker among sound rows, not a rescue for unsound ones.**

---

## 6. 🔴 ORG & CAPABILITY GAP — the true cost, in person-weeks by function

### 6a. The concealment mechanism, stated plainly

**The register ranked on `impact / eng-week`. That metric awards `∞` to any row whose cost is human rather than engineering.** Five of the twelve zero-engineering rows and two engineering-lane rows carried `∞`. **That is not a ranking; it is a divide-by-zero dressed as a result, and it systematically promoted exactly the rows whose real cost is invisible** (§6.5).

**The clean case is ZE-07.** Costed at **0 eng-weeks** and ranked accordingly. Its actual bill, from its own card: **30 agents × 14.5 BD-hours = 435 hours ≈ 11 working weeks of one person's undivided time** — roughly one full-time FTE for the entire 90-day test window. Against `{{CAPACITY}}` = *"none dedicated"* and `{{COST_BASE}}` = **UNKNOWN**, at a **$8/hour loaded BD rate that `03-ops-scan.md` §4c.0 itself flags as *"Unverified — no Indonesian BD salary source was collected."***

> 🔴 **There is no evidence in any file that SatuSatu has a BD or partnerships function.** The register imported a price for a role whose existence it never established, then ranked the row at infinity. **The Now slate as originally drafted committed ~14–16 person-weeks of BD, ops, legal and content time in a single quarter and priced none of it.**

### 6b. True resourcing requirement, by function

**Two columns, always. Eng-weeks AND person-weeks.** Unconditional = proceeds regardless of GATE 0. Conditional = only if GATE 0 passes on 2026-08-07.

| Function | Unconditional (Now) | Conditional (Next, post-GATE 0) | Total if everything runs | What it is |
|---|---:|---:|---:|---|
| **Engineering** | **2.0–2.9 eng-wk** | **~6.0 eng-wk** | **~8.0–8.9 eng-wk** | ZE-01 0.3 · M-1 <1.0 · ZE-03 0.2 · ZE-12 0.2 · M-2 ~0.2 · P8+markup ≤0.1 ‖ ZE-09 1.0 · OPP-03a 1.0 · OPP-02 2.0 · OPP-D1-2 L1 1.0 · ZE-10 0.5 · OPP-D3-3 0.5 |
| **Ops / content ops** | **~1.6–1.9 pw** | **~1.4–2.1 pw** | **~3.0–4.0 pw** | GATE 0 cross-check 0.2 · ZE-01 surface audit 0.4–0.6 (16–24 h) · ZE-03 audit 0.1 · ZE-12 weekly zero-result review ~0.65/qtr (26 h) · OPP-01 measurement 0.2 · P4 eval harness 8–16 h ‖ **ZE-09 Pool B classification across 150–250 SKUs: 30–60 h** · OPP-03a/02/D1-2 ~0.5 |
| 🔴 **BD / partnerships** | **~1.5–2.2 pw** | 🔴 **~11.3 pw** | 🔴 **~12.8–13.5 pw** | OPP-D1-4 feed-2 negotiation 0.5 · ZE-06 template 0.1 · ZE-05 supplier ask 0.05 · **Q39 — 10–15 agent interviews, 30–60 h** ‖ **ZE-07 outreach to 20–40 named agents: 435 h** · OPP-D3-3 wholesaler contact 0.3 |
| **Finance / treasury** | **~0.5 pw** | ~0.2 pw | **~0.7 pw** | Q6 count 0.1 · Q33 chargeback measurement 0.1 · M-3 float governance 0.2 · ZE-05 bank quote 0.1 ‖ ZE-04/ZE-10 policy |
| **Legal / counsel** | **1 brief + ~0.3 pw** internal | ~0.2 pw | **1 brief + ~0.5 pw** | **P2 + P3 in one brief** · ZE-06 sublicensable grant · ZE-04 PBI 17/3/PBI/2015 opinion. **Unpriced — no source in this research prices Indonesian counsel.** |
| **Product / leadership** | **~0.4 pw** | ~0.3 pw | **~0.7 pw** | Displacement-budget decision · **Q31 B2B spread decision** *(a decision, not research — and ZE-07 is blocked on it)* · GATE 3 review |
| **TOTAL non-engineering** | **~4.3–5.3 person-weeks** *(of which §6.18a's headline "~2.2" excludes Q39 and ZE-12's recurring review)* | 🔴 **~13.4–14.1 person-weeks** | 🔴 **~17.7–19.4 person-weeks + counsel** | |

**Read the bottom row against the top row.** The engineering ask is **~8–9 eng-weeks against an assumed 6-eng-week two-quarter budget** `[ASSUMPTION §1c — "the single most consequential input," and nobody has confirmed it]`. **The human ask is more than double that, in functions that may not exist.**

### 6c. What must be hired, borrowed, or dropped

| # | Requirement | Status | **Hire / borrow / drop** |
|---|---|---|---|
| **1** | 🔴 **One BD/partnerships FTE, full-time for one quarter, to run ZE-07** (435 hours) | **Existence unverified.** No file records a BD function. `{{COST_BASE}}` UNKNOWN. | **HIRE or BORROW — or DROP the D2 chain.** And be explicit about the consequence: **if ZE-07 does not run, D2 is untested, and OPP-D2-3 (5.0 eng-wk) and OPP-D3-3 must not start** — *"If Pool B does not sell by rate sheet, it will not sell by API — and that answer arrives before any engineering is spent."* **There is no cheaper substitute for this person. There is only the decision to run the test or not run it.** |
| **2** | **A named content-ops owner at ~0.5 FTE for the quarter** — ZE-09 classification (150–250 SKUs), ZE-08 listing habit, ZE-12 weekly zero-result review, ZE-01 surface audit | Content-ops headcount **UNKNOWN** (`{{COST_BASE}}`) | **BORROW.** This is the second-largest human line and it is recurring, not one-off. ZE-12's review is **~26 hours per quarter forever**, not a project. |
| **3** | **External or group counsel for one brief** covering P2, P3, ZE-06 and ZE-04 | Not commissioned | **BORROW (group legal) or BUY.** **Cheapest unblocking action in the file: zero eng-weeks, gates the highest-value D0 area.** Commission it in week 1 — counsel turnaround, not analysis, is the long pole (**P2/P3 answer targeted 2026-09-15**). |
| **4** | 🔴 **Partner-facing commercial + integration-support roles for D2/D3 — not engineers** | Not identified anywhere | **HIRE LATER, and budget them before the build, not after.** U-01's run cost alone is **8.7 / 21.3 / 50 eng-weeks per year** and much of that is support, not code. §11a reason 2 is the governing fact: *"an agent's platform choice is a workflow decision"* — **what wins a partner is one login, one rate logic, one invoice and one AR relationship, none of which an engineer delivers.** Viator ships docs, a sandbox and a published checklist **and still mandates human certification**, because the checks are semantic, not syntactic (C-06). **Any D2/D3 plan staffed only with engineers is mis-specified.** |
| **5** | **Q31 — the conceded B2B spread on Pool B** | An internal pricing decision nobody has made | **DECIDE.** It is not a hire and not research. **Every D2/D3 contribution figure scales linearly off it**; at 8% retained rather than 12%, OPP-D2-3's break-even rises from ~5 to ~8 base partners. **ZE-07 cannot start without it.** |
| **6** | ✅ **The one genuinely reusable group asset: people and process from TipTip's forecasting team — NOT the model** | Available in principle, same legal entity | **BORROW THE PEOPLE.** `{{AI_INVENTORY}}` and `{{CAPACITY}}`, verbatim: *"What is genuinely reusable is **organisational**, not technical: someone who has already shipped production evals, monitoring and a retraining loop, inside the same legal entity."* 🔴 **The model does not port** (C-10): concert ticketing is *"a small number of high-value, date-fixed, single-shot events with a pre-sale demand curve"*; TAA is *"253 evergreen, daily-departure, low-ASP SKUs with no comparable pre-sale signal. **It is a different forecasting problem, not a port.**"* And the associated **+50% contribution-margin claim is correlational and single-source** — every Tier A/B account says "after"/"following"; the only causal phrasing is a Tier C rewrite off one release dated 2026-05-04, with two competing non-AI explanations in the same release. **Borrow the people who built P4 and P5 elsewhere. Do not put the forecasting model on this roadmap.** |

### 6d. The two hires the roadmap is currently pretending it does not need

1. **BD.** 435 hours is not a task assigned to whoever is free. **If nobody owns it, ZE-07 will be reported as "in progress" for a quarter and then expire** — which is the same failure mode §7 corrects for the kill criteria.
2. **Content ops.** ZE-09's classification is the *only* work standing between the register and eight dependent rows, and it is 30–60 hours of judgement about supply, not data entry.

> 🔴 **If neither can be resourced, the honest roadmap is smaller and should be stated as such: OPP-D1-4, M-1, M-2, M-3, ZE-01, ZE-03, ZE-05's two-hour question, ZE-06's clause, and the two measurements. That is a defensible quarter. A quarter that commits 13 BD person-weeks it does not have is not.**

---

## 7. THE 90-DAY PLAN

### 7a. 🔴 First, the correction: several kill criteria cannot decide anything

**The red team found a failure mode worse than a wrong criterion — a criterion that cannot fire.** §6.11, verbatim: *"Several kill criteria cannot reach their own sample sizes inside their own deadlines at any plausible low volume. **They will neither kill nor confirm — they will expire, and the rows will survive by default.** That is the worst possible failure mode for a register built on kill criteria."*

**Two compounding facts make it worse than a volume problem:**
1. **Seasonality.** Every 60/90-day window runs from **T₀ ≈ 2026-08-16 into the Sep–Nov shoulder** — measured across a **falling** seasonal limb. Bali's peak-to-trough is **1.55×** and Jun–Sep is **38.2% of the year**. **Absolute-volume criteria will under-read; share- and rate-based criteria are partly protected. Nobody had written down which is which.** (§6.12)
2. **Statistical impossibility at the stated n.** Several thresholds are unmeasurable *even if the sample arrives*: **0.5% at n=400 expects 2 events**; **0.2% at n=400 expects 0.8**; **99% precision at n=300 cannot be distinguished from 97%.** A threshold you cannot resolve at your own sample size is not a criterion.

**Four re-specification devices are used below.**

| Device | When it applies | Why it works at low volume |
|---|---|---|
| **A — Invert the default.** If the sample is not reached by the date, the outcome is **KILL or HOLD, never survive.** | Every criterion with an absolute-n clause | **Insufficient volume is itself evidence the row sits below the materiality floor.** A row that cannot generate enough events to be measured cannot generate enough value to be funded. This single change fixes the expire-by-default failure across the whole slate. |
| **B — Replace a prospective sample with a retrospective census.** | Where 12 months of internal history already exists | Decidable **today**, at n = the whole population, with no waiting and no seasonal distortion. Applies to M-2 (chargebacks), M-3 (Pass ledger), OPP-03a (stranding history), ZE-03 and ZE-01 (253-SKU catalog audits), GATE 0 itself. |
| **C — Replace a rate-on-rare-events with an absolute stop rule at n=1.** | Where the failure is **unrecoverable** and the break-even is ~1 event/yr | Matches the actual asymmetry. OPP-03a's break-even is **1.13 strandings avoided per year**; ZE-09's freesale risk is an **oversell — the unrecoverable failure on fixed-departure products** (C-03). **You do not need 200 observations to act on the first one.** |
| **D — Replace an unreachable statistical gate with a qualitative gate.** | Where no achievable n resolves the threshold | Stated explicitly as qualitative, with a fixed rubric, a named reviewer role and a pre-declared pass/fail — **not** a number that looks rigorous and cannot resolve. |

### 7b. Kill criteria — original vs re-specified

**Volume basis used for the decidability column:** at R = 1,000 bookings/mo → Pool B ≈ 350/mo, passes 200/mo. At the plausible low case of 300 bookings/mo → Pool B ≈ 105/mo, passes 60/mo `[both derived from register §1b's 65/35 split; R is an ASSUMPTION and 300/mo is the red team's plausible mid]`.

| ID | Original criterion | Decidable at 300 bookings/mo? | **Re-specified criterion (device)** |
|---|---|---|---|
| **GATE 0** | >30% of Pool B SKUs self-listed on GlobalTix/Klook, by 2026-08-07 | ✅ **Yes** — census over 150–250 SKUs, one day | **UNCHANGED.** *(The 30% threshold is `[ASSUMPTION — the threshold is a judgement, the test is not]`. Record the per-SKU result, not just the percentage — OPP-D2-4 salvage and OPP-D3-3 both need the list, not the ratio.)* |
| **ZE-01** | Close if the surface audit finds the inherited field read by **zero** surfaces, by 2026-08-24 | ✅ **Yes** — binary, by inspection | **UNCHANGED.** Retain the field split regardless of the audit result — *displaying another platform's transaction count as your own is a live trust and advertising-accuracy exposure.* |
| **ZE-03** | Close if published policies already derive from `percentReturn` on ≥95% of Pool A SKUs, by 2026-08-14 | ✅ **Yes** — census over 253 SKUs | **UNCHANGED (device B).** |
| **ZE-05** | Kill if GlobalTix declines SGD settlement **or** own IDR→SGD spread >100 bps, by 2026-09-30 | ✅ **Yes** — two binary answers from two counterparties | **UNCHANGED — and both halves are mandatory.** Add: **do not report the gross $29,250 to anyone until the bank quote exists.** Carry the row at **~$7,900 EV**, never at gross. |
| **ZE-06** | Gate: if GlobalTix confirms **no** sublicensing right on Pool A by 2026-09-30, re-scope all D2/D3 to Pool B content | ✅ **Yes** — one written answer | **UNCHANGED.** Not killable; it is a precondition. |
| **ZE-04** | Not killable — compliance control. Counsel answer by 2026-09-15 | ✅ Yes | **UNCHANGED**, and **unsized**. |
| **ZE-07** | Kill D2 entirely if fewer than **3 agents place ≥2 Pool B bookings each** by 2026-11-15 | ✅ **Yes — n = 6 bookings.** The best-designed criterion in the file | **UNCHANGED.** 🔴 Note the asymmetry the red team surfaced: the row was **sized at 8,000 bookings and its criterion tests 6.** **The sizing is withdrawn; the test stands.** Add prior gate: **Q31 decided before outreach begins**, and add device A — **if fewer than 20 named agents have actually been contacted by 2026-11-15, the result is KILL, not "inconclusive."** |
| **OPP-D1-4** | Kill the second-feed programme if take rate cannot be established in writing, **or** overlap >50 head SKUs, by 2026-10-31 | ✅ **Yes** — contractual | **UNCHANGED.** 🔴 **The correct outcome of that kill is ONE FEED, not a 20-eng-week project.** |
| **ZE-12** | Kill if zero-result rate on non-junk queries is already **<5%** after 60 days of weekly review, by 2026-10-16 | ⚠️ **Probably** — queries run 1–2 orders of magnitude above bookings | **ADD A FLOOR (device A):** decidable only at **n ≥ 1,000 non-junk queries logged in the window.** Below that, **HOLD** — and record the low query count as a finding about traffic, which is itself an input to Q6. |
| 🆕 **M-1** | *(new row — no criterion existed)* | ✅ **Yes** — census | **NEW (device B):** run the four assertions **once, retrospectively, over 100% of live rates and all live contracts.** **Kill the nightly job only if zero violations are found across the full census by 2026-10-16** — then ship the assertions as a pre-publish check instead of a nightly one. **Any single violation confirms the row**, because the failure it defends against is *loss of the contract, i.e. loss of the exclusivity that is the entire D2/D3 thesis.* |
| 🆕 **M-2** | *(new row)* | ✅ **Yes** — retrospective census | **NEW (device B):** measure **Q33** — trailing-12-month chargeback count, rate, and total disputed value — from internal payment records, by **2026-08-21**. **Kill if the measured rate is below 0.3%** `[ASSUMPTION — approximately one third of the 0.89% travel base in H1; the threshold is a judgement, the measurement is not]` **and** trailing-12-month dispute cost is immaterial against Pool A gross profit. Otherwise ship 3DS/AVS configuration + a dispute-response template. **No sample. No waiting.** |
| 🆕 **M-3** | *(new row)* | ✅ **Yes** — ledger census | **NEW (device B):** from the Pass ledger by **2026-08-21** — units sold, units activated, units expired unredeemed, outstanding deferred liability, mean days of float against the **90-day activation window.** **This is not killable; it is governance** (`00-scope.md` §3 Amendment C, approved at GATE 1). **Gate:** if outstanding deferred liability exceeds one month of company gross profit, a written float policy is required before the Pass is scaled. ⚠️ *"Breakage % **is** the Pass margin"* and it is currently **UNKNOWN**. |
| 🔴 **OPP-03a** | Kill if silent-unconfirmed rate is **<0.2% at n ≥ 500 Pool B bookings** by 2026-10-16 | ❌ **NO.** 500 Pool B bookings takes **4.8 months** at 105/mo — the criterion outlives its own deadline (§6.11) | **RE-SPECIFIED (devices B + C).** **(i) Retrospective census, decidable now:** count actual stranding/no-show-by-operator incidents in the trailing 12 months from refund, incident and goodwill records — **break-even is 1.13 strandings avoided per year**, so the history alone decides it. **(ii) Prospective, at n=1:** run 100% monitoring on **every** Pool B booking in the window, whatever n; **a single silent-unconfirmed booking that reaches T-minus-24h confirms the row.** **(iii) Device A:** if the trailing-12-month census shows **zero** strandings and zero silent-unconfirmed events across the full prospective census by 2026-11-15, **KILL** — the problem does not exist at this scale and the eng-week goes elsewhere. ⚠️ The **$600/stranding is unverified** (4a.8 #8); the census in (i) also closes it. |
| 🔴 **OPP-01** | Kill if **IDIER > 0.5% at n ≥ 400** audited instructions, or compression **<15%**, by 2026-11-15 | ❌ **NO** on two counts — 400 audited instructions is out of reach at 60 passes/mo, **and 0.5% at n=400 expects 2 events**, which cannot be distinguished from 1.5% | **RE-SPECIFIED (devices A + D), and it now runs *after* V-3.** **Gate 1 — V-3 (see 7c): is the Pass concierge-capped? Census of the roster + one week of queue data, decidable at any volume, by 2026-08-28. If NO → the row reverts to KILLED and nothing below runs.** **Gate 2 — qualitative, if V-3 says yes:** a pilot of **20–40 pre-trip itineraries, 100% manually QA'd** by the concierge lead against a fixed rubric. **Pass requires all three: zero F5 safety-adjacent content (water/surf, volcano, scooter, medical/allergen) — automatic fail at n=1; zero mis-slotted dawn products — automatic fail at n=1; and a paired within-concierge before/after showing ≥15% compression of itinerary-build minutes on the same 20–40 passes.** The compression measure is decidable at n≈20 because it is a paired time measurement, not a rate on rare events. **Device A: if 20 pilot passes cannot be assembled by 2026-11-15, KILL.** |
| 🔴 **OPP-02** | Kill if slot-selection error **>0.2% at n ≥ 400** rendered messages, **or any dawn-product message mis-slotted at all**, by 2026-10-16 | ⚠️ **Half.** The second clause is already an n=1 rule and is sound. The first expects **0.8 events at n=400** and is unmeasurable | **RE-SPECIFIED (devices C + D).** **Keep the n=1 dawn-product clause verbatim — it is the operative gate.** Replace the rate clause with: **100% QA census on every rendered message in the window; any slot-selection error in the first 100 messages halts rollout pending a fix; two errors in the first 100 kills the automated path and reverts to human send.** **Device A: fewer than 100 rendered messages by 2026-11-15 → HOLD, do not scale.** 🔴 **Fund this row as a control, not as its $1,896 saving** — and write *"generated in-destination prose is prohibited"* into the design doc first. |
| 🔴 **ZE-09 (freesale path)** | Kill the freesale path if oversell incidents **>0.5% of `freesale_capped` bookings at n ≥ 200** by 2026-11-15 | ❌ **NO.** ~110–150 freesale bookings in 90 days at 105 Pool B/mo, and **0.5% at n=200 expects 1 event** | **RE-SPECIFIED (device C).** **The schema field itself is not killable — without it there is no B2B strategy.** For the freesale path only: **zero-tolerance stop rule — any single oversell on a `freesale_capped` SKU reclassifies that SKU to `request_to_book` immediately; three oversells across the pilot close the freesale path entirely.** Decidable on the first incident, and it matches the asymmetry: **the cost of a wrong availability assumption is an oversell — the unrecoverable failure on fixed-departure products** (C-03). Additionally apply C-03's one-line safeguard: **cap freesale at `max(observed)` minus a safety margin**, which gets most of the benefit at zero risk of model error. |
| 🔴 **OPP-D1-2 (L1)** | Kill if escaped-defect rate on gated SKUs is not **≥50% below** the ungated baseline at **n ≥ 300 published SKUs** by 2026-11-15 | ❌ **NO — and it is unrepairable by lowering n.** Total Pool B base is **150–250 SKUs**; ZE-08 assumes **240 SKUs/yr** → **~60 published in 90 days.** 300 published SKUs in 90 days is impossible against the register's own SKU numbers | **RE-SPECIFIED (devices B + D).** **(i) Retrospective census, decidable today:** run the Layer-1 deterministic rules over the **entire existing 253-SKU catalog** and compare against a hand-labelled defect list drawn from a 50-SKU sample. **Pass requires Layer 1 to catch ≥90% of the hand-labelled defects.** Anchor on the one verified fact — **the displayed sold-count is a 100% defect rate on one live customer-visible field across the whole Pool A catalog.** **(ii) Prospective, qualitative:** at 2026-11-15, a hand review of 30 gated SKUs by the content-ops owner — did the gate catch defects a human reviewer would have missed? **Device A: if fewer than 30 SKUs publish in the window, KILL the prospective leg and keep only the retrospective census result.** 🔴 **Layers 2 and 3 remain unfunded — no source in this research measures LLM-as-judge accuracy on travel listing copy.** |
| 🔴 **ZE-08** | Kill if escaped-defect rate on AI-assisted listings exceeds **2× manual**, on a **100-listing sample**, by 2026-10-16 | ❌ **NO.** 240 SKUs/yr → **40 listings in 60 days**; at 60 SKUs/yr → **10** | **RE-SPECIFIED (device D).** **Paired alternation:** for the next **30** Pool B listings, alternate AI-assisted and manual authoring **15/15**, and compare escaped defects against a fixed checklist with the same reviewer. Decidable at n=30 because it is a within-window paired comparison, not an absolute rate. **Device A: if 30 listings are not produced within two quarters, that is itself the answer to ZE-08's sizing** — the 240 SKUs/yr was inherited from nowhere, and the row falls to **$480**. 🔴 **Manage escaped-defect rate, never auto-pass rate** — auto-pass rises as the gate weakens (Q43). |
| 🔴 **OPP-03b** | Kill if auto-confirm precision **<99% at n ≥ 300** labelled real Bali replies, or automated share **<40%**, by 2026-11-15 | ❌ **NO twice over.** (a) If **Q9 = No**, the corpus starts empty and no n is reachable. (b) Even with the corpus, **n=300 cannot distinguish 99% precision from 97%** | **RE-SPECIFIED (devices A + D), and the row moves to LATER.** **Gate 0: answer Q9 (transcript retention) first — if No, do not start; it is a 9-month data-pipeline project wearing a 90-day label.** If Yes, the n≥300 becomes a **retrospective labelling exercise on existing transcripts, decidable immediately and without waiting for live volume.** But state the limit honestly: **a genuine ≥99% precision claim needs n ≥ 1,000.** Below that, the only defensible operating mode is **mandatory human-in-the-loop on every auto-extracted confirmation**, which removes most of the $819. |
| **ZE-10** | Revisit if **≥5 qualified partners** cite credit as the sole blocker, by 2026-12-15 | ⚠️ **Only if ZE-07 runs** — 5 qualified partners requires the outreach that requires a BD function | **ADD THE DEPENDENCY (device A):** decidable only if ZE-07 contacted ≥20 named agents. **If ZE-07 did not run, this criterion is void and prepay-only stands as policy by default** — which is the correct outcome anyway. |
| **OPP-D3-3** | Kill if no named wholesaler has a signed rate agreement **and** first booking within 180 days, by 2027-02-13 | ✅ **Yes — n=1** | **UNCHANGED.** Add the prior gate: **GATE 0 + the Golden Rama post-login check** — *"the single most valuable remaining Indonesian check."* 40% confidence; do not raise it without new evidence. |
| **OPP-D2-3** | Kill if fewer than **5 base-size-equivalent partners** are actively transacting 180 days after launch, by 2027-05-14 | ✅ Yes | **UNCHANGED.** Prior gate stands: **do not start unless ZE-07 clears its 3-repeat-agent test on 2026-11-15.** 🔴 **Driver metric is Pool B GMV per active partner per month — never partner count, seats, or subscription revenue** (C-12: *"D2 has no revenue line of its own and should never be given one"*). |

> ### 🔴 The one criterion that could not be made decidable, stated as required
>
> **OPP-D1-2's original prospective form cannot be repaired.** No re-specification produces 300 published SKUs inside 90 days against a 150–250-SKU Pool B base growing at 60–240 SKUs/yr. **It has been replaced with a retrospective census plus a qualitative 30-SKU review, and the substitution is declared rather than disguised.** The consequence is honest and should be stated to the CEO: **the prospective escaped-defect comparison this row was designed around will not exist inside this roadmap's horizon. What will exist is proof that the Layer-1 rules catch known defects in the catalog that is already there.** That is a weaker claim and it is the claim the volume supports.

### 7c. The 90-day schedule — metric, target, owner-by-role, dated kill

**Owners are by role.** `00-internal-context.md` records no names and this document does not invent any. 🔴 **Where the owning function's existence is unverified, the row says so — that is the finding, not an omission.**

#### Phase 1 · MEASURE — 2026-07-27 → 2026-08-14. **No engineering is committed in this phase.**

| ID | Deliverable | Named metric | Target | Owner (by role) | **Dated kill / decision** |
|---|---|---|---|---|---|
| **V-1** | 🔴 **Q6 — count the bookings** | `{{SCALE}}`: monthly orders, GMV, passes sold, **Pass utilisation** (passes sold ÷ passes the current concierge roster can service) | A number with an observation window attached, not a band | **Finance** (with Product) | **2026-08-03.** Not killable — it is the precondition. **If it cannot be produced in one week, that is itself a reportable finding about instrumentation.** |
| **V-2** | 🔴 **GATE 0 — Pool B exclusivity cross-check (Q29)** | **% of Pool B SKUs found self-listed on GlobalTix or Klook by their own operators**, recorded **per SKU** | Below the 30% threshold `[ASSUMPTION — the threshold is a judgement, the test is not]` | **Ops / Category** (with Supply) | **2026-08-07.** **>30% → the B2B thesis fails and this roadmap collapses to D0/D1 only.** Nothing — not one eng-week, not one BD hour, not the rate sheet — is committed before this lands. |
| **V-3** | 🔴 **OPP-01 capacity check (Ruling 2)** — *is the Pass concierge-capped?* | **(a)** concierge headcount (**Q7**); **(b)** concierge minutes per pass (**Q8**) from one week of queue data; **(c)** Pass utilisation; **(d)** the direct question: **has any Pass sale ever been declined, delayed, waitlisted, or throttled for concierge-capacity reasons, and has the roster ever run at capacity?** | A yes/no on capping, plus (a)–(c) as numbers | **Head of Operations / concierge lead** (with Finance for the Pass contribution) | **2026-08-28.** 🔴 **If the Pass is NOT concierge-capped, OPP-01 reverts to KILLED** — 9th of nine, $1,422/yr against a $3,000 floor, 4.0 eng-weeks. **If it IS capped, OPP-01 re-scores to ~$7,760 and enters the NEXT lane as a budget conversation, still gated on P2+P3 — it does not enter Now.** Decidable at any volume: it is a census of the roster plus one week of data. |
| **V-4** | **Commission the P2 + P3 counsel brief** | Brief commissioned; scope covers PDP-law egress, liability for a concierge instruction, ZE-06 sublicensing, ZE-04 PBI 17/3/PBI/2015 | Commissioned in week 1 | **Product** (instructing group or external counsel) | Commission by **2026-08-07**; **answer by 2026-09-15.** Counsel turnaround, not analysis, is the long pole. |
| **V-5** | **M-2 · Q33 chargeback census** | Trailing-12-month chargeback **count, rate, and total disputed value** | A measured rate | **Finance / payments** | **2026-08-21.** Kill if <0.3% `[ASSUMPTION]` and trailing dispute cost immaterial vs Pool A gross profit. |
| **V-6** | **M-3 · Pass float census** | Units sold · activated · expired unredeemed · **outstanding deferred liability** · mean days of float vs the **90-day activation window** | The numbers; **breakage % is currently UNKNOWN and *is* the Pass margin** | **Finance** | **2026-08-21.** Not killable — governance (GATE 1 Amendment C). Gate: liability > one month of gross profit → written float policy required before scaling the Pass. |
| **V-7** | **OPP-03a · stranding history census** | Actual stranding / operator-no-show incidents in the trailing 12 months, from refund, incident and goodwill records | A count, and a **real cost per incident** to replace the unverified **$600** | **Head of Operations** | **2026-08-21.** Break-even is **1.13 strandings/yr** — the history alone decides the row and simultaneously closes open item 4a.8 #8. |
| **V-8** | **Q39 — 10–15 agent interviews** *(run alongside GATE 0, per §11a)* | What actually drives Indonesian agent platform selection | A ranked answer with n≥10 | 🔴 **BD / partnerships — function unverified.** If unresourced, **Product runs it or it does not run.** | **2026-09-30.** **Cheapest experiment in the study by impact.** `03-ops-scan.md` §4c.7.2 ranks *inventory uniqueness* — the stated basis of the entire D2/D3 thesis — **fourth of five**, behind incumbent/workflow consolidation, credit terms and rate. **If the interviews confirm that ranking, D2's pitch is wrong, not just unproven.** |

> ### 🔴 GATE 3 — 2026-08-14. The decision this roadmap exists to enable.
> **The Head of Product and CEO review V-1 and V-2 together and make one of three calls:**
> - **(a) GATE 0 passes AND Q6 ≥ ~600 bookings/mo** → fund the conditional lane in §3b, including a decision on the BD resource for ZE-07.
> - **(b) GATE 0 passes AND Q6 < ~600 bookings/mo** → fund the unconditional lane only; **ZE-09 proceeds on dependency grounds, everything else in §3b waits for volume.** *(~600/mo is where OPP-03a crosses the $3,000 materiality floor at 595/mo, the second-highest CURRENT row after ZE-01.)*
> - **(c) GATE 0 fails** → **this roadmap is rebuilt around D0 and D1 only.** Re-open Q15 (`{{B2B_PRICING}}`), whose GATE 1 answer — *"channel conflict is structurally avoided… **because the pools are disjoint on exclusivity**"* — no longer holds. Re-price the §1a feasibility screen with Pool B contribution at **~$3.00–4.25**, at which a **$0.99 metered AI touch consumes 23–33% of contribution and breaches the register's own ≤25% rejection rule.**

#### Phase 2 · UNCONDITIONAL WORK — 2026-08-16 (T₀) → 2026-10-25. **~2.0–2.9 eng-weeks.**

| ID | Deliverable | Named metric | Target | Owner (by role) | **Dated kill** |
|---|---|---|---|---|---|
| **W-1** 🥇 | **OPP-D1-4** — contract feed #2 for zero overlap, on **territory** not product; establish take rate in writing (Q38); check shared venue identifier (Q34) | **Overlapping SKUs between feed 1 and feed 2** | **Zero.** Secondary: 8–29 eng-weeks avoided | **Commercial / Supply lead** (with Product) | **2026-10-31.** Kill the second-feed programme if take rate is not in writing **or** overlap >50 head SKUs. 🔴 **The correct outcome of that kill is one feed.** |
| **W-2** | **ZE-01** — split `supplier_sold_count` / `satusatu_bookings`; audit every surface; fold in the margin-weighted ranking rule as config | **Pool B share of GBV**; secondary: **share of first-screen impressions held by Pool B** | Break-even is **41 redirected bookings, ever** | **Engineering lead** (with Product for the surface audit) | **2026-08-24.** Close the ranking half if zero surfaces read the inherited field; **retain the field split regardless.** ⚠️ Any margin-weighted ranking must be **gated on confirmation latency**: an instant-confirm-required query must return only `allotment` / `freesale_capped` / `static_schedule` SKUs — which is why it cannot fully land before ZE-09. |
| **W-3** | **M-1** — nightly rate-integrity rule-check: margin floor · contract expiry · tier-vs-volume · parity crawl | **Violations detected per night**; retrospectively, **violations found in the opening census** | Zero violations sustained | **Engineering lead** (with Commercial) | **2026-10-16.** Kill the nightly job only if the opening census over 100% of live rates and contracts finds **zero** violations — then ship as a pre-publish check. |
| **W-4** | **ZE-06** — sublicensable, perpetual image-and-content grant in the Pool B contract template | **% of Pool B operator contracts carrying the grant** | 100% of **new** contracts from day one | **Commercial / Supply lead** (with counsel) | **2026-09-30** gate on the GlobalTix Pool A answer. 🔴 **Most time-sensitive row in the file — retrofit cost rises with every contract signed.** |
| **W-5** | **ZE-03** — render refund policy from supplier `percentReturn`; Layer-1 gate | **Refund-mismatch rate** = cancellations refunded above supplier `percentReturn` ÷ total cancellations | Zero mismatches | **Engineering lead** (with Ops for the audit) | **2026-08-14.** Close if ≥95% of Pool A SKUs already derive from `percentReturn`. |
| **W-6** | **ZE-12** — query logging + synonym dictionary + weekly zero-result review | **Zero-result rate on non-junk queries** (act >10%); secondary **null-click rate** (act >40%) | Zero-result rate below 10% | **Engineering lead** (logging) + **content ops** (weekly review, ~26 h/qtr) | **2026-10-16**, with the new **n ≥ 1,000 queries** floor; below that, HOLD. 🔄 **Funded as instrumentation — it closes Q10.** |
| **W-7** | **M-2** — 3DS/AVS configuration + dispute-response template, *if* V-5 clears the threshold | **Chargeback rate** and **disputed value as % of Pool A gross profit** | Below the measured trailing baseline | **Finance / payments** (with Engineering for gateway config) | **2026-10-16.** Killed at V-5 if the leak is immaterial. |
| **W-8** | **ZE-08** — AI listing extraction as an ops habit; **buy, never build**; copy GYG's boundary exactly | **Pool B SKUs published per content-ops FTE per week**; gate on **escaped-defect rate** | Faster publishing at no worse escaped-defect rate | **Content ops** | **2026-10-16** on the re-specified 15/15 paired alternation at n=30. 🔴 **Never claim it — table stakes** (§9). |
| **W-9** | **ZE-05** — the two-hour question: SGD settlement + `directContractPrice` ask, **and** a bank IDR→SGD / USD→SGD corporate quote, same week | **Realised FX markup on Pool A settlement (bps)** | Below 150 bps all-in | **Finance / treasury** (bank) + **Commercial** (supplier) | **2026-09-30.** Kill if GlobalTix declines SGD **or** own spread >100 bps. Carry at **~$7,900 EV**. ⚠️ **This row would create the exposure ZE-04 exists to remove** — on ~$1.76M of Pool A payables. Both halves or neither. |
| **W-10** | **P8 + schema.org markup on Pool B SKUs only** | **% of Pool B SKUs with valid product markup**; crawl access verified | 100% markup; robots verified | **Engineering lead** | Catalog hygiene at **≤0.1 eng-wk**. 🔴 **No traffic claim attached, no AEO thesis, no kill criterion — because there is nothing to test.** Do nothing about Pool A prose (C-08). |

#### Phase 3 · CONDITIONAL — starts only after GATE 3 (2026-08-14) clears

| ID | Deliverable | Named metric | Target | Owner (by role) | **Dated kill** |
|---|---|---|---|---|---|
| **N-1** | **ZE-09 (P1)** — declared `availability_model` per Pool B SKU + booking state machine | **% of Pool B SKUs with a declared `availability_model`**; secondary: **share of Pool B bookings requiring a human confirmation round** | 100% classified; **30 / 50 / 70%** escaping `request_to_book` | **Engineering lead** + **content ops** (classification, 30–60 h) | Schema field **not killable**. Freesale path: **zero-tolerance stop rule at n=1**, three oversells closes the path. Classification complete by **2026-11-15**. |
| **N-2** | **OPP-03a** — no Pool B booking sits silently unconfirmed | **Silent-unconfirmed rate** = Pool B bookings with no operator acknowledgement at T-24h ÷ Pool B bookings | Zero at T-24h | **Engineering lead** + **Ops** | **2026-11-15** on the re-specified census + n=1 rule. ⚠️ Watch **operator fatigue** — the same behavioural risk §4b.4.5 #5 flags for AI outbound applies to scheduled outbound. |
| **N-3** | **OPP-02 (P7)** — day-of messages rendered from a confirmed record | **Slot-selection error rate**; **IDIER**; **72h re-contact rate** | Zero mis-slotted dawn products | **Engineering lead** | **2026-11-15** on the re-specified n=1 + first-100 rules. 🔄 **Funded as a control.** |
| **N-4** | **OPP-D1-2 (Layer 1 only)** — bad SKUs stopped at ingest | 🔴 **Escaped-defect rate** — *explicitly NOT auto-pass rate* (Q43) | Layer 1 catches ≥90% of hand-labelled defects in the 253-SKU census | **Engineering lead** + **content ops** | **2026-11-15** on the re-specified census + 30-SKU review. **Layers 2–3 unfunded.** |
| **N-5** | 🔴 **ZE-07** — rate sheet + WhatsApp outreach to 20–40 named agents | **Repeat-buying agents** (agents placing ≥2 Pool B bookings in 60 days). 🔴 ***Not* agents contacted, and *not* rate sheets sent.** | **≥3 agents × ≥2 bookings** | 🔴 **BD / partnerships — DOES NOT DEMONSTRABLY EXIST.** ~11 person-weeks. **Unassigned until §6c item 1 is resolved.** | **2026-11-15.** **Kill D2 entirely** if <3 agents place ≥2 bookings each. **Prior gate: Q31 decided.** **Device A: <20 agents actually contacted → KILL, not "inconclusive."** |
| **N-6** | **ZE-04 · ZE-10** — IDR denomination + FX-reset clause; prepay-only launch | **% of B2B contracts denominated IDR**; **cost of the AR/credit function as % of B2B contribution** | 100% IDR; zero credit function | **Commercial** (with counsel) | ZE-04 counsel answer **2026-09-15**; ZE-10 revisit **2026-12-15**, void if ZE-07 did not run. **Both unsized policies.** |
| **N-7** | **OPP-D3-3** — Indonesian wholesalers carry Pool B | **Pool B bookings originated by named wholesalers** | ≥1 signed agreement + first booking | **Commercial / Supply lead** | **2027-02-13** (n=1). Prior gate: GATE 0 **+ the Golden Rama post-login check.** 40% confidence. |

---

## 8. ONE-PAGE BUSINESS CASE

> ⛔ **Two figures from the earlier draft are withdrawn and are not restated anywhere in this document.**
> **(1) The $140,500 zero-engineering headline** — it summed CURRENT recurring cash, TARGET contingent revenue, per-episode avoided losses, one-off labour savings, and **one number entered twice** (§6.4).
> **(2) The "≈103% of Pool A's entire net gross profit" cross-check** — it is **circular**, not corroboration: H12 *is* `1.50% × Pool A GMV ÷ Pool A net GP`, so reproducing it is the same division performed twice (§6.2 Failure 3).
> **Also withdrawn: the "$150,000 slate."**

### 8a. The model, in the form a CFO can re-run

**Four inputs. Everything else is arithmetic.**

```
INPUT 1   B   = actual bookings per month                     ← Q6.  UNKNOWN today.
INPUT 2   G0  = GATE 0 result: exclusive (pass) / not (fail)  ← 2026-08-07. UNKNOWN today.
INPUT 3   Ew  = loaded cost of one engineering-week           = US$679 base
                [INFERENCE, 03-ops-scan §4c.0, flag 4c-G1 — no Indonesian
                 engineering salary source was ever collected. Band $390 / $1,109.
                 Every figure below scales 0.57× / 1.63× across that band.]
INPUT 4   Pw  = loaded cost of one non-engineering person-week = US$320 (40 h × $8/h)
                [$8/hr flagged "Unverified — no Indonesian BD salary source
                 was collected" (03-ops-scan §4c.0). Treat as a placeholder.]

VOLUME-LINKED RETURN(B)   = (B / 1000) x $10,240
                            [ZE-03 $975 + ZE-09 $1,365 + ZE-05 EV $7,900]
SKU-LINKED RETURN         = $1,920          [ZE-08 — R-INDEPENDENT, does not scale with B]
MIX-SHIFT RETURN(B)       = (B / 1000) x $39,000    [ZE-01 base case — CONTESTED, see note]

FLOOR(B)    = VOLUME-LINKED(B) + SKU-LINKED
CEILING(B)  = FLOOR(B) + MIX-SHIFT(B)
```

**Why ZE-01's $39,000 is the whole gap between floor and ceiling, and why it is shown separately.** Three defects, none fatal, all unresolved: the shift parameter is **unbounded**; substitution is **admitted false for branded parks**, which are the **only VERIFIED instance** of the defect (Universal Studios Singapore's "99k+ sold"); and a 0.20 shift means **$390,000 of Pool A GMV — 1,560 bookings — redirected into a Pool B that carries 4,200 bookings/yr in total, a 37% volume increase produced by removing a badge and adding a ranking weight.** 🔴 **The register's own recommendation stands: size ZE-01 at its break-even — 41 redirected bookings, ever — and do it because displaying another platform's transaction count as your own is wrong, not because it is worth $39,000.**

### 8b. 🟦 CURRENT-BASIS — money that exists today, on a business that exists today

**These are the only figures in this document that describe a real, present cash flow.**

| Line | Basis | Driver | at 200/mo | at 300/mo | at 400/mo | **at R = 1,000/mo** |
|---|---|---|---:|---:|---:|---:|
| ZE-03 · refund-term mismatch | CURRENT, recurring | volume | $195 | $293 | $390 | $975 |
| ZE-09 · declared availability model *(direct return only)* | CURRENT, recurring | volume | $273 | $410 | $546 | $1,365 |
| ZE-05 · FX, **probability-weighted EV** *(0.27 × $29,250)* | CURRENT, recurring | volume | $1,580 | $2,370 | $3,160 | $7,900 |
| ZE-08 · AI listing extraction | CURRENT, recurring | **SKUs — R-independent** | $1,920 | $1,920 | $1,920 | $1,920 |
| **➊ FLOOR — verified, CURRENT, recurring, non-double-counted, probability-weighted** | | | **$3,968** | **$4,992** | **$6,016** | **$12,160** |
| ZE-01 · mix shift, credited **once**, at the register's own base case | CURRENT, **contested** | volume | $7,800 | $11,700 | $15,600 | $39,000 |
| **➋ CEILING — floor + the single mix-shift assumption** | | | **$11,768** | **$16,692** | **$21,616** | **$51,160** |

*Reconciliation to source: the red team's shorthand of **"roughly $5,000–17,000"** at 200–400 bookings/mo (§6.19) and **"$4,900–$16,700 at 300/mo"** (§6c) reproduce the 300/mo column exactly.*

**Engineering-bearing CURRENT rows — shown separately and deliberately not added into ➊ or ➋**, because their basis differs and all four are GATE-0-exposed through the Pool B margin band (§6.10):

| Line | at R | Dies below | Note |
|---|---:|---:|---|
| OPP-03a · no silent unconfirmed booking | $5,040 | **595/mo** | Break-even **1.13 strandings/yr**; the $600/stranding is **unverified** and V-7 replaces it |
| OPP-02 · rendered day-of messages | $1,896 | **1,582/mo** | 🔄 **Below the materiality floor as a saving; funded as a control** |
| OPP-D1-2 (L1) · bad SKUs stopped at ingest | $790 + unsized | SKU-driven | The **unsized mispricing leg is likely dominant** and cannot be sized from any collected source |
| OPP-01 · concierge | **$1,422 *or* ~$7,760** | 2,110/mo *(cost basis)* | 🔴 **Undecided until V-3, 2026-08-28.** Not counted in either total. |

### 8c. 🟧 TARGET-BASIS — contingent revenue, on a B2B business with **zero partners today**

> 🔴 **THESE FIGURES ARE NOT ADDED TO §8b, AND THE SEPARATION IS THE POINT.** §6.17: *"D0/D1 rows carry CURRENT-basis dollar figures; D2/D3 rows carry TARGET-basis contingent figures; **the register adds them into one total and one slate. The result reads as a balanced four-direction register and spends like a D0/D1 one.**"* **Of the impact that survives the red-team pass, 100% is D0/D1**; of the original lane headline, **D0/D1 carried 77%.** Summing across the two bases is precisely the mechanism that concealed it.

| Line | at stated volume | Status |
|---|---:|---|
| ZE-07 · rate-sheet demand test | ~~$16,160 at 10 partners~~ | 🔴 **WITHDRAWN — unsizeable.** It is the **same $16,160 as OPP-D2-3, from the same 10 partners**, booked in both lanes. Sized at 8,000 bookings while its own criterion tests **6**. The **experiment is retained; the number is not.** |
| OPP-D2-3 · agent seats + prepay wallet | $16,160 at 10 partners | Own budget conversation (5.0 eng-wk). Not before ZE-07 clears **2026-11-15**. Own §9 label: **table stakes.** |
| OPP-D3-3 · Indonesian wholesalers | $4,420 at 2,000 bookings | **40% confidence.** GATE 0 + Golden Rama check. |
| ZE-10 · prepay-only launch | ~~$7,440~~ → **$0** | Avoided cost of a credit function the register recommends **never building**. *Avoiding a cost you were never going to incur is not impact.* **A policy.** |
| ZE-04 · IDR denomination | ~~$3,000/episode~~ → **$0** | Episode frequency **unquantified (4c-G9)**. **A compliance control.** |
| ZE-06 · sublicensable grant | **$1,800–3,000 ONE-OFF** | 🔴 **Must never enter an annualised total.** Survives on irreversibility. |

**Every line in this block is GATE-0-gated. If GATE 0 fails on 2026-08-07, this entire block is $0 and the roadmap collapses to §8b.**

### 8d. 🟩 CAPACITY RETURN — a third basis, denominated in the constrained resource

**With `{{CAPACITY}}` = *"none dedicated,"* engineering-weeks are the binding currency and this line is the largest in the document at every volume.**

| Line | Low | Base | High | Basis |
|---|---:|---:|---:|---|
| **OPP-D1-4 · eng-weeks avoided** | **8 ew** | **15 ew** | **29 ew** | `proper (11/20/37) − MVP (3/5/8)` `[INFERENCE, 03-ops-scan S2c]` |
| *Same, at $679/eng-week* | *$5,432* | *$10,185* | *$19,691* | **R-independent · GATE-0-independent** |

> 🔴 **Read this against §8b: at 200 bookings/month, OPP-D1-4's low case ($5,432) exceeds the entire CURRENT floor of the zero-engineering lane ($3,968).** The single most valuable action available to SatuSatu, at the volume the business plausibly has, is **a contracting conversation that prevents work** — not any product built with a model.

### 8e. Cost side

| Cost | Unconditional (Now) | Conditional (Next) |
|---|---:|---:|
| Engineering | 2.0–2.9 ew × $679 = **$1,358–$1,969** *(band: $780–$3,216)* | 6.0 ew × $679 = **$4,074** *(band: $2,340–$6,654)* |
| Non-engineering | 4.3–5.3 pw × $320 = **$1,376–$1,696** | 13.4–14.1 pw × $320 = **$4,288–$4,512** |
| Counsel | **UNPRICED** — no source in this research prices Indonesian counsel | — |
| **Total cash-equivalent** | **~$2,700–$3,700 + counsel** | **~$8,400** |

> 🔴 **Two warnings a CFO must apply to the cost side, both from the register's own method.**
> **(1) Payroll is the wrong price for an eng-week.** With zero dedicated capacity, *"the true cost of an eng-week is the D2/D3 roadmap slip it causes"* — **so every return figure above is optimistic by construction, and the direction of the error is known.**
> **(2) The $4,288–$4,512 conditional non-engineering line is not a reallocation — it is a hire.** ~11 of those 14 person-weeks are **ZE-07's 435 BD hours against a BD function whose existence is unverified.** Priced at $320/week it looks trivial. Priced as *one FTE for a quarter that does not currently exist*, it is the largest commitment in the plan.

### 8f. The answer the CEO must be able to see

| | **Low case — 200–400 bookings/mo** *(red team's plausible range)* | **Reference case — R = 1,000/mo** *(`[ASSUMPTION]`, comparability device only)* |
|---|---|---|
| **CURRENT floor** | **$3,968 – $6,016** | **$12,160** |
| **CURRENT ceiling** | **$11,768 – $21,616** | **$51,160** |
| **Unconditional cost** | ~$2,700–$3,700 + counsel | ~$2,700–$3,700 + counsel |
| **Plus capacity return (R-independent)** | **8–29 eng-weeks** *(≈$5,432–$19,691)* | **8–29 eng-weeks** |
| **TARGET / D2 / D3** | **$0 until GATE 0 passes and a first partner transacts** | **$0 until GATE 0 passes and a first partner transacts** |
| **How many rows clear a $3,000/yr materiality floor?** | 🔴 **At 300/mo: exactly one CURRENT row (ZE-01). At 150/mo: none.** | **Three** (ZE-01, ZE-05 gross, OPP-03a) — **and 13 of 24 rows still sit below the floor** |
| **What that means in one sentence** | **The unconditional slate roughly pays for itself and the capacity return is the real prize.** A ten-row slate would be indefensible. | The unconditional slate returns roughly **3–15×** its cash-equivalent cost, and the conditional lane becomes worth the argument. |

**Three adjustments a CFO should apply before believing any column.**
1. 🔴 **Bali is contracting.** BPS Bali `[VERIFIED, Tier A]`: **Jan–May 2026 −1.77% y/y** while Indonesia is **+7.7%**; April **−6.41%**, May **−3.98%**. `01-landscape.md`'s FY2026 base case is **−1.7%, low case −3.7%.** **Every volume-linked line above must be sized on a flat-to-−4% base, not an implicitly flat one.**
2. 🔴 **The contracting segment is SatuSatu's segment.** **Europe −5.9% y/y into Indonesia in May 2026** — the *"high-spending, long-staying"* cohort. UK + France + US are the English-first, USD-comfortable, high-ATV buyers an English-first USD storefront addresses. **The growing cohort is Australia — six hours away, repeat, price-sensitive.** A mix drift toward Australian short-haul pulls ATV toward the $20 end of the $20/25/30 band, **which is a further −20% on every volume-linked line.** Both terms of `GMV = volume × ATV` are under pressure at once.
3. **Every break-even scales 0.57× / 1.63×** across the unverified eng-week cost band.

---

## 9. WHAT WE CANNOT KNOW UNTIL Q6 AND GATE 0 LAND

**Written as gaps rather than estimated, per the evidence rule.**

| Question | Why no answer can be manufactured |
|---|---|
| **Is any row in this document worth doing?** | Every dollar is `R × parameter` and `{{SCALE}}` is UNKNOWN. **At 300 bookings/mo one CURRENT row clears $3,000/yr; at 150, none does.** No amount of further analysis changes this — only counting does. |
| **Is there a moat?** | The only High-defensibility claim in the file is *"exclusive direct-contracted Balinese long-tail supply."* Remove exclusivity and **there is no moat in this roadmap, only a well-argued operations improvement.** GATE 0 decides it in one day. |
| **What is the Pool B margin, really?** | The 27% band is `[INFERENCE]` anchored on Arival's 25–30% net-rate convention **plus exclusivity supporting the upper end.** **Q32 closes it in one hour** with credentials SatuSatu already holds: `product/list?countryCode=ID` → bucket by `cityId` 2 (Bali) and 112 (Ubud) → `product/options` on a matched sample → compare `nettPrice` vs `minimumSellingPrice` vs Klook/Viator live retail. **Highest value per hour on the whole open-question list — and it is not on this roadmap's critical path only because GATE 0 is cheaper still.** |
| **Is the Pass concierge-capped?** | Nobody has checked. It is the entire difference between OPP-01 at $1,422 and at ~$7,760, and between 9th place and 2nd. **V-3, 2026-08-28.** |
| **Does SatuSatu have a BD function?** | **No file records one.** The plan commits ~11 BD person-weeks to a role whose existence is unverified. |
| **What drives Indonesian agent platform selection?** | 🔴 **No Tier A or Tier B source exists anywhere.** Structural evidence puts *inventory uniqueness* — the stated basis of the whole D2/D3 thesis — **fourth of five.** **Q39, 10–15 interviews, and it may invalidate D2's pitch rather than merely fail to support it.** |
| **What does an in-region hosted inference arrangement cost?** | **UNVERIFIED**, and it is the only surviving route for OPP-04 and the only fallback if P2 returns "no." **It is a procurement question, not a research finding, and it must be priced before a decision, not after.** |
| **What is the Pass breakage rate?** | UNKNOWN, and *"breakage % **is** the Pass margin."* The register sized concierge minutes against a Pass whose margin it never established. **V-6.** |
| **Token and per-conversation costs** | `03-ops-scan.md` C10 records 2026 model $/Mtok as **NOT FOUND**; C11 records WhatsApp Business Platform per-conversation fees for Indonesia as **NOT FOUND.** **This document therefore states no token cost anywhere.** Every model-bearing row carries a break-even inference cost instead — a testable number the moment a real price list is opened. |

---

## 10. RISK POSITION CARRIED INTO THIS ROADMAP

Per §6.16, **of the eight risks in `00-scope.md` §1.3, none is genuinely retired.** The four that most shape this document:

| Risk | Status | How this roadmap responds |
|---|---|---|
| **(1) Two-clock problem** — TARGET sized against a hope | 🔴 **WORSE** — the register summed CURRENT, TARGET, one-off and per-episode into one headline | **§8b and §8c are separated and never summed.** One roadmap, two bases, stated as such. |
| **(4) D3 sells a non-exclusive catalog** | 🔴 **ELEVATED from risk to thesis** — 17 of 24 rows sit on it | **GATE 0 is item two of the plan and nothing material is funded before it.** |
| **(5) Pass economics unstable** | 🔴 **WORSE** — the Pass is ~3 months old and **all three months sit on the rising limb into Bali's July peak** (peak-to-trough 1.55×; Jun–Sep = 38.2% of the year). **Annualising 200 passes/mo → 2,400/yr overstates.** | **V-1 and V-6 measure it; M-3 governs the float; no Pass figure in §8 is annualised without this caveat attached.** |
| **(7) Inbound dependency; D2 is the hedge** | 🔴 **INVERTED — a new finding.** ZE-07 targets **353 Bali ASITA members** — domestic Indonesian agencies whose volume is a **derivative of the same falling Bali arrival number.** **D2 as specified concentrates the exposure it was supposed to diversify.** A genuine hedge would be domestic-outbound or non-Bali inbound partners, **neither of which is in scope anywhere.** | **Stated, not solved.** It should be an explicit input to the GATE 3 decision on whether to resource ZE-07 at all: **the D2 demand test is still worth running, but it must not be sold internally as a hedge.** |
| **(6) Single-destination concentration** | 🔴 **WORSE, and retired on the wrong evidence** — the non-Bali SKUs (~27 of 253) are **Pool A feed inventory: coverage without margin.** Every economic input in the study is Bali. | **U-02 (OCTO client) is named as the concentration hedge and sits off the critical path — the first thing to fund at a ≥14-eng-week budget.** OPP-D1-4's territory framing is the cheap partial answer available now. |

---

## 11. WHAT THIS ROADMAP ASKS FOR — five decisions, in order

| # | Decision | Owner | By | Cost of deciding | Cost of not deciding |
|---|---|---|---|---|---|
| **1** | **Authorise Q6 and GATE 0, and commit to acting on them.** | CEO / Head of Product | **2026-07-31** | One person-day + hours | Every subsequent number in this document remains `R × parameter`. |
| **2** | **Commission the P2 + P3 counsel brief.** | Head of Product | **2026-08-07** | One brief | The highest-value D0 area stays blocked, and OPP-01/OPP-03b/OPP-04 cannot be evaluated at all. |
| **3** | 🔴 **Resolve the BD question: hire, borrow, or drop ZE-07.** | CEO | **2026-08-14 (GATE 3)** | One FTE for one quarter | **ZE-07 will be reported as "in progress" and then expire — and D2 will remain untested while OPP-D2-3's 5.0 eng-weeks stay on the roadmap unjustified.** |
| **4** | **Set the displacement budget in eng-weeks.** §1c assumes 6; this roadmap needs **~2.0–2.9 unconditional and ~8–9 in total.** | Head of Product | **2026-08-14** | One conversation | *"The single most consequential assumption in the file"* stays an assumption. Below 4 eng-weeks, only the zero-engineering lane survives. |
| **5** | **Decide Q31 — the conceded B2B spread on Pool B.** | Head of Product | **2026-08-31** | One decision | **ZE-07 cannot start.** Every D2/D3 contribution figure scales linearly off it. |

---

## 12. THE FIVE LINES THIS ROADMAP COMMITS TO

1. **The plan is to measure, then decide.** Q6 by **2026-08-03**, GATE 0 by **2026-08-07**, GATE 3 by **2026-08-14**. **Nothing material is funded before those land, and that is a deliberate choice presented as one.**
2. 🥇 **The single highest-ranked action returns capacity rather than consuming it.** **OPP-D1-4 — contract the second feed for zero overlap on territory — is 0 engineering-weeks, R-independent, GATE-0-independent, and avoids 8–29 engineering-weeks.** At 200 bookings/month it is worth more than the entire recomposed CURRENT floor of the zero-engineering lane.
3. **The highest-return AI-adjacent actions available to SatuSatu are still not AI, and the reason is the cost structure, not a lack of ambition.** At **$0.079 per concierge-minute** and **~7% net on Pool A**, metered AI priced against a US/EU labour baseline is value-destroying on the larger pool and marginal on the smaller one. **Pool A cannot carry a metered AI touch at any published vendor price.** The centre of gravity is deterministic, unmetered work: rendered templates, rules, schema fields and contract clauses.
4. 🔴 **The true cost of this quarter is not 2–9 engineering-weeks. It is 2–9 engineering-weeks plus ~18 person-weeks of BD, ops, legal, finance and content time — in functions whose existence is partly unverified.** The metric that ranked this register awarded infinity to rows costing only human time. **This document prices both columns, and one of them requires a hire.**
5. **Everything downstream of GATE 0 is provisional, including the parts that look safe.** One day of catalogue cross-checking decides **17 of 24 rows, one pricing architecture already signed off at GATE 1, the §1a feasibility screen for Pool B, and the only defensibility claim in the file** — and **~76% of the "zero-engineering safe harbour" is exposed to it**, because exclusivity is a term inside the Pool B margin.

---

*End of Step 6. Every figure above traces to `04-opportunity-register.md` (including its §6 red-team amendments) or to a named research file, or carries an explicit `[ASSUMPTION ± band]`. The withdrawn $140,500 and the "103% of Pool A gross profit" cross-check appear nowhere except as explicit withdrawals. CURRENT-basis and TARGET-basis figures are never summed. Where the honest answer was "we cannot know until Q6 and GATE 0 land," this document says so.*
