# 02 — Competitor Matrix (Step 3 consolidated)

**Step:** 3 · **Persona:** Competitive Intelligence Analyst · **Date:** 2026-07-26
**Sources consolidated:** `raw/teardown-klook-gyg.md` · `raw/teardown-viator-kkday-headout.md` · `raw/teardown-connectivity-indonesia.md` · benchmark-set structure from `00-scope.md` §4.
**Subject:** SatuSatu (satusatu.com), 253 SKUs, Bali TAA platform, operated by PT Tiptip Network Indonesia. Directions: **D0** curated Pass + human concierge (live) · **D1** horizontal catalog (in progress, GlobalTix feed + manual onboarding) · **D2** B2B partner dashboard (planned) · **D3** reseller API (planned).
**Binding constraints (Step 0 / `00-scope.md` §8.1):** no dedicated engineering capacity — the D2/D3 platform build consumes the team · thin margin — Pool A aggregator-sourced ~10% gross / ~7% after payments+FX, Pool B direct-contracted Balinese ~27% · no disclosed funding since Nov 2022.

**Evidence tiers (preserved from source):** **A** = filings, IR, earnings transcripts, official docs/engineering blogs, live product · **B** = credible trade press · **C** = blogs, LinkedIn, vendor marketing, listicles.
**Status markers (preserved, rigorously separated):** `[SHIPPED]` = live product / public API docs / dated product-or-engineering blog · `[ANNOUNCED]` = press release or roadmap statement, not verified live · `[BETA]` = disclosed limited release · `[SPECULATION]` = labelled inference.

**Consolidation rule applied:** where a teardown found no public artefact, the cell reads **"no public artefact"** — not 0 — because absence of evidence is not evidence of absence. Where a teardown did not address a stage at all, the cell reads **"not covered in Step 3."** No claim appears here that is not in the three source teardowns (two exceptions are explicitly labelled as carried from Step 0/Step 2 and flagged as not re-evidenced in Step 3).

**Benchmark-set groups per `00-scope.md` §4:** Group 1 destination-state model `[D1 D2 D3]` (Klook, GetYourGuide, Viator/Tripadvisor, KKday, Headout, + promoted **Klook Pass**) · Group 2 curated/pass/concierge `[D0]` (not a Step 3 teardown target) · Group 3 connectivity & B2B infrastructure `[D2 D3]` (GlobalTix + the consolidation map) · Group 4 Indonesia & SEA `[D0 D1 D2]` (Golden Rama, Panorama, Traveloka, Tiket.com, TBO, Agoda Activities) · Group 5 disintermediation watch `[threat only]` (out of Step 3 scope).

---

## 0. Evidence-base asymmetry — read before any score is compared

The scores below are **not commensurable across companies**, because the evidence bases are not.

| Company | Public engineering artefact base | Consequence for its score |
|---|---|---|
| **GetYourGuide** | **Prolific.** `getyourguide.careers/category/tech-engineering` (formerly *Inside GetYourGuide*) — ~40 dated Engineering / Data Science / Data Analytics posts 2023-10 → 2026-04. Tier A, with failed-experiment detail. | Mostly `[SHIPPED]`. Score is **demonstrated**. |
| **Klook** | **None.** `klook.tech` returns `getaddrinfo ENOTFOUND` (2026-07-26). No Klook Engineering publication found on Medium. Primary AI evidence = Google Cloud co-marketing newsroom posts + Skift interviews. | Mostly `[ANNOUNCED]`. Score is **asserted**. |
| **Viator / Tripadvisor** | Q4 2025 earnings call (2026-02-12) and Q1 2026 call (2026-05-07/08), both Tier A; `docs.viator.com/partner-api/technical` live; certification pages at `partnerresources.viator.com` live. | Named, dated, metric-bearing — but every metric is consumer- or LLM-facing. |
| **KKday / rezio** | **Tier-A AI evidence close to nil.** Private, no earnings calls. rezio marketing site, pricing page and the full **752 KB** OpenAPI spec contain **zero AI features, zero AI endpoints, no AI SKU.** | Scored on absence of any observable artefact in inspectable products — *not* on absence of marketing copy. KKday's consumer app was not inspected. |
| **Headout** | One 2025-01-15 release of vendor prose. `github.com/headout/api-docs` **last pushed 2024-07-29 (~24 months stale)**. | Nothing dated, nothing named. Entire AI posture is unverifiable from outside. |
| **GlobalTix** | Partner API 3.0 spec fully public (`apiconnect.globaltix.com`, Postman collection `3866783`, published id `2s935rHMSf`); pricing page live; Series B releases. | One shipped trivial chatbot + one 21-month-old funding-narrative claim. |

> **Klook's AI story reads bigger than GYG's in press and smaller than GYG's in verifiable artefacts. Do not treat the two evidence bases as equivalent.** Where Klook has no Tier A artefact, the source teardown scored what is evidenced, not what is claimed — and that convention is preserved here.

## 1. AI maturity matrix

**Scale:** **0** absent · **1** rules · **2** classical ML · **3** GenAI-assisted · **4** agentic (system takes multi-step action against a goal without a human in the loop).
**"no public artefact"** = the teardown searched and found nothing public; this is *not* a 0. **"not covered in Step 3"** = the stage was not assessed for that company in this step. **"unverified"** = the teardown explicitly instructed the stage be recorded as unverified rather than zero.

Stage columns follow the 20-stage value-chain spine (`00-scope.md` §3). Column legend: **1** Supply sourcing · **2** Onboarding & catalog production · **3** Feed ingestion · **4** Catalog scale ops · **5** Availability · **6** Pricing · **7** B2B rate mgmt · **8** Partner onboarding (distribution) · **9** Partner dashboard · **10** API / connectivity · **11** Demand gen · **12** Discovery & conversion · **13** Itinerary planning · **14** In-destination · **15** Payments / fraud · **16** Post-trip · **17** Customer service · **18** Supplier ops · **19** Trust & safety · **20** Internal ops.

| Company | 1 Supply sourcing | 2 Onboarding & catalog prod | 3 Feed ingestion | 4 Catalog scale ops | 5 Availability | 6 Pricing | 7 B2B rate mgmt | 8 Partner onboarding | 9 Partner dashboard | 10 API / connectivity | 11 Demand gen | 12 Discovery & conversion | 13 Itinerary | 14 In-destination | 15 Payments / fraud | 16 Post-trip | 17 Customer service | 18 Supplier ops | 19 Trust & safety | 20 Internal ops |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| **GetYourGuide** | **2** · cold-start post 2025-08-20 + AI interest-discovery 2025-11-24 (A); scored at title/tag level | **3** 🔴 · 16-step wizard, "AI auto-completes 8 key steps", 100% rollout, 2025-04-23 (A) | **1** · connectivity spec + tiered certification; no AI | **3** 🔴 · hybrid search 2024-11-20; transformer ranking 2025-12-11; image AI 2024-01-17 + 2025-12-04; 4-pillars search 2026-02-19 (all A) | **1** · `/tours/{id}/availability` real-time read; no AI | **1** · `POST /price-breakdown` = computation, not optimisation. **Notable absence: no pricing ML in ~40 posts** | **1** · no public evidence | **1** · docs + sandbox + wiki best-in-class; **zero AI in the funnel** | **1** · affiliate portal; Supplier Portal Nuxt3 migration 2025-02-27 (A) = usability, not AI | **0** · AI absent from the pipe (engineering maturity high — that is not AI) | **2** · Primus unified marketing analytics 2023-12-05; experimentation tooling 2025-11-12; OSS `gaql-cli` (A) | **3** · Spring release 2026-04-22 — AI review summaries + AI search; plus hybrid search & transformer ranking | **0** · no GYG trip-planner / itinerary-builder product found. Absent | **0–1** · unverified, no public artefact | **0** · no public evidence in engineering blog or API surface | **1** · reviews via `/reviews/tour/{id}`; AI summarisation scored at #12 | **1** · no public LLM CS agent. Care volume appears only as *the problem* AI content quality was meant to reduce | **3** · same artefact as #2 — supplier-facing GenAI shipped to 100% of supplier base | **1** · content-quality guardrails described qualitatively; no AI moderation artefact | **3** · AI Week 2026-02-25; junior-eng AI guardrails 2026-04-09; Databricks/dbt/Airflow platform (A) |
| **Klook** | **1** · no evidence | **3** · GenAI content creation + localisation "slashed production times by **more than 80%**", 2024-10-24 (A). Caveat: Klook's *own* travel pages, **not** a supplier-facing wizard | **1** · Merchant API bulk + real-time, holds, price lock — schema/rules, no AI | **3** · GenAI localisation at **4,200-destination** scale (A). Search/ranking ML **unverified — no public artefact**; score carried by enrichment alone | **1** · Merchant API holds + price lock — rules | **1** · "dynamic pricing calculations for different traveler types and product options" = deterministic computation. No pricing-ML evidence | **1** · no evidence | **1** · dual funnel at `klook.com/en-US/partner/` (one form, two radio options); OAuth-gated portal; **no sandbox disclosed** | **3** 🔴 `[SHIPPED-pilot]` review-summarisation → merchant feedback; **one merchant's new product now 24% of the attraction's total revenue** (2024-10-24, A). Broader suite `[ANNOUNCED]` | **0** · AI absent; **no outbound API at all** | **3** · `[SHIPPED]` "Let Loose the Goose" 2025-06-27 (B); GenAI SEO tooling 2024-10-24 (A); Klook Kreators (B) | **3** (trajectory → 4) 🔴 · **K.AI** `[SHIPPED]` (B: WiT, PhocusWire); shopping guide `[ANNOUNCED]` 2024-10-24 (A); **AI shopping agent `[BETA]`** 2026-06-09 (B) — agentic, **not GA** | **3** · K.AI trip planner `[SHIPPED]` (B) | **1** · only a 2026 Singapore Business Review award citation, "AI-first approach to in-destination travel discovery" (C). Unverified | **0–1** · no evidence. Finance automation is bill reconciliation (internal ops), not fraud | **2** · review pipeline feeding merchant feedback loop (2024-10-24, A) | **3** · K.AI "up to **four times more queries**" (A, self-reported); `[BETA]` agent to "handle post-sale service" (B) | **3** · review-derived merchant feedback, pilot-shipped with a quantified outcome | **1** · `[ANNOUNCED]` Google Cloud co-development of a layer to "validate the accuracy and reliability of all generative AI outputs" (A). Roadmap, not product | **3** · Gemini Code Assist; **code review efficiency +60%**, platform performance up to **+70%** (2024-10-24, A) |
| **Viator / Tripadvisor** | **1** · no named AI. 425k products / 70k suppliers via BD + self-serve (Q4'25 call, A) | **3** · `[SHIPPED]` Q1'26: "**AI-assisted sign-up… more than doubled sign-up conversion**." ⚠️ **Segment attribution unresolved** — quote sits beside TheFork discussion; metric verified, segment not | **1** · purely contractual/rules; mandated polling cadences. No AI in mapping or normalisation | **2** · `[SHIPPED]` Q4'25: product **quality scores rising ~20% YoY, approaching 4.5+ stars** across 425k products; method undisclosed, classical ML is the conservative read. `/products/recommendations` exists, method undisclosed | **1** · fully deterministic: `bookableSeasons` + `unavailableDates` + `pricingRecords.timedEntries`. No forecasting surface | **1** · supplier-set. API returns `recommendedRetailPrice` / `partnerNetPrice`; explicit "**Low-margin products**" concept. No dynamic/AI pricing disclosed | **1** · static net-rate model with a price-floor rule. No AI | **0–1** ⚠️ · **manual and email-based**: two forms to `affiliateapi@tripadvisor.com`, human review, "a couple of days" per round. **The most operationally expensive step in the funnel has zero automation** | **1** · not publicly inspectable beyond the Partner Resource Center; no AI features documented | **1** · 33 REST endpoints, API-key auth, **no MCP server, no natural-language endpoint, no tool manifest**; `/search/freetext` is keyword. Entirely pre-LLM | **3** · `[SHIPPED]` **Viator app live in ChatGPT**; all three brands shipped as OpenAI apps; LLM traffic with higher revenue/visitor; Q1'26 "conversion is already **among the highest of any channel** in our portfolio". `[ANNOUNCED]` Amazon, Microsoft, Snap, **Anthropic (future tense)**, Perplexity. The agentic layer (4) lives at the counterparty | **3** · `[SHIPPED]` Q4'25 "**AI-native MVP**" — personalisation, real-time recs, **GeoAware suggestions**, proactive offers, "multiples higher engagement"; Q1'26 scaled to **half of web traffic in English-speaking markets**. Tripadvisor POS **>20% conversion growth over 2 quarters** | **3** · `[SHIPPED]` part of the AI-native MVP — "planning and destination-phase use cases". Framing: **<50% of travellers use AI to plan, <10% book via AI** | **3** · `[SHIPPED]` Q1'26 "**AI-enabled prebooking chat on the Viator app**"; GeoAware suggestions are destination-phase | **1** · rules-based and **pushed onto the partner**: cert requires `subChannelId`, `agencyId`, `agentId`, `voucherDeliveryType`, `voucherDisplayedPostPayment`, `customerMemberSince` "for fraud prevention" + a JS device-fingerprint library. No AI claimed | **1** · reviews collection; no AI named | **3** · `[SHIPPED]` Q1'26 **TheFork — "approximately 40% of B2C customer support queries now handled through AI."** ⚠️ **No equivalent Viator figure disclosed. Do not transfer this number to Viator** | **1** · supplier-communication design is a rules-based relay ("CLC" customer-liaison contact, enabled/disabled per booking by flag). No AI | **2** · docs: "Review authenticity — Viator performs checks on reviews"; method undisclosed, classical ML conservative read. Cert forbids selective display of high-rated reviews | **3** · `[SHIPPED]` Q1'26 "**5 to 7x increase in average engineering output in one of our recent AI-native pilots**." Note the hedges — *one* pilot, *average* output |
| **KKday / rezio** | **1** · rezio Channel Manager + direct sales. No AI artefact | **1** · fully scriptable but deterministic: `POST /v1/product/create` + **18 `PUT` sub-resource endpoints**. High automation *ceiling*, zero AI in it | **1** · Channel Manager pushes to KKday / GetYourGuide / Viator; UI-configured mapping | not covered in Step 3 | **1** · `session` seat/price writes — explicit rules objects. No optimisation surface | **1** · `pricePolicy`, `feeNdTax` — explicit rules objects | **1** · same rules objects; no AI | **1** · self-serve: upgrade to SCALE tier, collect key from `admin.rezio.io`. No approval queue, **no certification, no documented sandbox** | not covered in Step 3 — PLUS tier ships a **B2B agent portal**, but its AI content was not assessed | **1** · ~60 REST operations, `X-Auth-StoreUuid` + `X-Auth-Key`. **No MCP, no semantic search, no agent surface** | not covered in Step 3 | **0–1 unverified** · no Tier-A artefact; KKday's consumer app was not inspected in this pass. **Record as unverified, not as zero** | **0–1 unverified** (same) | **0–1 unverified** (same) | **1** · `depositPolicy`, payment notes — bookkeeping primitives, not risk scoring | **0–1 unverified** (same) | **0–1 unverified** (same) | not covered in Step 3 | **0–1 unverified** (same) | **0–1 unverified** (same) |
| **Headout** | not covered in Step 3 | **2–3 (self-reported, unnamed)** · 2025-01-15 release: "smarter inventory and pricing systems", "AI is now deeply embedded across our platform." No product name, no metric, no date | not covered in Step 3 | **2–3 (self-reported, unnamed)** · same release | not covered in Step 3 | **2–3 (self-reported, unnamed)** · same release | not covered in Step 3 | **no public artefact** · `partner.headout.com` is an affiliate program, not a reseller funnel; supply funnel is `hub.headout.com` | not covered in Step 3 | **0–1** 🔴 **the cautionary datum** · `github.com/headout/api-docs` is public but **last pushed 2024-07-29 — ~24 months stale as of today** | not covered in Step 3 | **1, direction only** · Dabble (CV + spatial computing + AR/VR, Toronto, YC-backed; founders Neil Mathew / Prasenjit Mukherjee / Yan Ma) acquired **mid-2024** "to help structure our overall efforts towards AI". **No shipped Dabble-derived product announced in the 26 months since** | not covered in Step 3 | **1, direction only** (same Dabble bet — CV/spatial, **not** LLMs) | not covered in Step 3 | not covered in Step 3 | **2–3 (self-reported, unnamed)** · 2025-01-15: "AI-powered customer support." No product name, no deflection rate, no date | not covered in Step 3 | not covered in Step 3 | not covered in Step 3 |
| **GlobalTix** *(overall verdict:* **1 / 4** *)* | no public artefact | no public artefact | **0** · Partner API 3.0 exposes **zero** AI, recommendation, ranking or forecasting endpoints — the connectivity surface is entirely CRUD | **0** · same | **1** · real-time availability, ≤30-day query window, ≤6-month horizon, timeslot-aware — rules | **1** · `isDynamicPrice` flag + `demandType: NON_PEAK` = **rules-based demand tiering. Not evidence of a model** | **1** · seven-price stack + `minimumSellingPrice` floor = contractual rules | no public artefact | **1** · Agent Portal ships on all three SaaS tiers; no AI | **0** · zero AI in the connectivity surface | no public artefact | no public artefact | no public artefact | no public artefact | no public artefact | no public artefact | **1** · "**Basic Chatbot** (5 questions)" on every pricing tier — a scripted 5-question widget. **Not AI in any meaningful sense** | no public artefact | no public artefact | `[ANNOUNCED]` only · Series B releases 2024-10-14 ("to introduce AI advancements in the travel and tourism industry") and 2024-12-19 ("investing in AI and predictive analytics to optimise pricing, identify industry trends, and enhance traveller interactions") — **21 months old, no follow-up release found. A targeted search for a 2026 GlobalTix AI launch found nothing** |

### 1a. Totals, and why only two are quotable

| Company | Total | Shape |
|---|---|---|
| **GetYourGuide** | **≈ 30 / 80** | **Deep and verifiable in retrieval, ranking and supplier content production; visibly empty in pricing, payments/fraud, itinerary and customer service.** |
| **Klook** | **≈ 33 / 80** | **Broad, consumer-facing and agentic-forward, but the depth is asserted rather than demonstrated.** Klook's single strongest verifiable AI asset is the **review corpus → merchant feedback loop** — a supply-side moat, not a consumer one. |
| **Viator / Tripadvisor** | not totalled in source | **A 3 on the consumer surface and a 1 on the supply/B2B surface.** Every named, dated AI shipment faces the traveller or the LLM. Nothing AI-shaped has shipped into ingestion, availability, pricing, partner onboarding or the connectivity API. The one supply-side exception (AI-assisted sign-up) is the one whose segment attribution is ambiguous. |
| **KKday / rezio** | not totalled in source | **A 1 across the board with an unusually high automation ceiling.** The most *programmable* supplier backend in this study and the least *intelligent*. Everything an AI layer would need — write access to products, sessions, prices, seats, orders — is already exposed. **Nobody has put an AI layer on it.** |
| **Headout** | not totalled in source | **An AI narrative with no named shipped feature and a public API that visibly stopped being maintained.** Nothing is falsified — the claims may all be true internally — but from outside the entire AI posture is vendor prose. |
| **GlobalTix** | **1 / 4** (single overall score, not per-stage) | One shipped chatbot of trivial capability, one 21-month-old funding-narrative claim, nothing in the API. **Do not treat GlobalTix as an AI-capability partner, and do not assume its pricing intelligence is better than SatuSatu's own.** |

### 1b. Indonesian / SEA incumbents — single overall AI score (per-stage not produced in Step 3)

| Entity | AI shipped (0–4) | Evidence |
|---|---|---|
| **Golden Rama** | **0** | No AI observed. WhatsApp widget only. |
| **Panorama Group** (JTB / Destination / Wupi) | **0** | Nothing found. |
| **Traveloka** | **1** | No shipped AI in the B2B product; consumer-side assistants exist but were **not verified this step**. |
| **Tiket.com** (Blibli / PT Global Digital Niaga Tbk, IDX: BELI) | **1** | **tiket FLEXI** is a product feature, not AI. |
| **TBO Holidays** | **1** | No AI verified. |
| **Agoda Activities** (Booking Holdings) | **1** | No public activities distribution API to inspect. |

### 1c. Head-to-head read across the whole set

- **Nobody in this set is a 4 in production.** Neither Klook nor GYG has a GA agentic booking surface as of 2026-07-26. **Klook is closest — closed beta, disclosed 2026-06-09.** Tripadvisor's agentic exposure is entirely *outbound* (being a callable app inside ChatGPT); its partners get none of it.
- **Everyone is ~1 on pricing and ~0–1 on payments/fraud.** Two of the largest players in the category have shipped no publicly evidenced AI in the two functions that most directly move gross margin. **That is a real gap in the category, not just in these two companies.** Viator, rezio and GlobalTix confirm the pattern.
- **The one stage where an incumbent has decisively shipped *and quantified* GenAI is supplier-side catalog production** — GYG, 8 of 16 wizard steps auto-completed, 100% rollout, 2025-04-23. **The single most transferable finding in Step 3.**
- **Every B2B/connectivity surface in the study is pre-LLM.** GYG Partner API: no AI endpoint, no semantic-search parameter, no NL query field, no MCP/agent manifest — *the AI is in the storefront, not in the pipe.* Viator: nowhere. rezio: zero occurrences in a 752 KB spec. GlobalTix: entirely CRUD. Headout: docs 24 months stale. **The B2B layer of this category is uncontested on AI.**

## 2. Named shipped AI features, per company

Markers kept rigorously separate. Nothing has been promoted from `[ANNOUNCED]` or `[BETA]` to `[SHIPPED]`.

### 2.1 GetYourGuide

| Marker | Feature / artefact | Date | Tier | Detail preserved |
|---|---|---|---|---|
| `[SHIPPED]` | **GenAI supplier product-creation wizard** ("Revolutionizing the Experience Marketplace: The dual impact of Generative AI on Suppliers and Consumers") | **2025-04-23** | A | 16-step product-creation wizard; providers "were sometimes spending up to an hour"; supplier pastes existing content "such as from their own website" into an input box; LLM generates long-form description **and fills structured fields** (transport type, location tags); **"The AI auto-completes 8 key steps."** Adoption ~60% of exposed cohort in pre-tests. **First full experiment (75/25 split) FAILED** — submission rate fell; cause was UX/trust, **not model quality**. Second test after UI + microcopy fixes cut drop-off **5 percentage points**; observed **14-minute** end-to-end creation; **rolled out to 100%**. |
| `[SHIPPED]` | **Modern hybrid search** ("From Text to Context") | **2024-11-20** | A | Hybrid lexical + semantic retrieval; tags `Semantic Search`, `Query understanding`, `OpenSearch`, `Apache Lucene`. |
| `[SHIPPED]` | **Real-time production ranking** ("Powering Millions of Real-Time Rankings with Production AI") | **2024-05-22** | A | — |
| `[SHIPPED]` | **Transformer activity ranking** ("From trees to transformers") | **2025-12-11** | A | GBDT → transformer. |
| `[SHIPPED]` | **AI travel-image optimisation** | **2024-01-17**, extended **2025-12-04** ("replacing intuition with data in visual selection") | A | — |
| `[SHIPPED]` | **"Four pillars of 'good' Search"** | **2026-02-19** | A | — |
| `[SHIPPED]` | **Cold-start / new-activity intelligence** ("From Zero to Hero") | **2025-08-20** | A | Title + tag `Cold Start Problem`. Full text not read; scored at title/tag level. |
| `[SHIPPED]` | **AI-driven discovery of novel interests** ("From grape stomping to gorilla trekking") | **2025-11-24** | A | Demand-side interest discovery that feeds sourcing gaps. |
| `[SHIPPED]` | **Spring release — AI review summaries + AI search** | **2026-04-22** | A | Established prior; a conversion layer on GYG's own funnel, not an external agent. |
| `[SHIPPED]` | **Primus unified marketing analytics** | **2023-12-05** | A | Classical analytics; plus marketing-experimentation tooling **2025-11-12**, OSS `gaql-cli`. |
| `[SHIPPED]` | **AI Week** (company-wide AI pause) | **2026-02-25** | A | Internal ops. |
| `[SHIPPED]` | **Junior-engineer AI guardrails** ("Achieving real growth in the age of AI") | **2026-04-09** | A | Internal ops. Supporting platform: Databricks migration 2025-01-29, dbt 2025-07-17, Airflow + Astronomer Cosmos 2026-02-02, `DDataflow` / `basemath` open source. |
| — | **Supplier Portal Nuxt3 migration** | **2025-02-27** | A | Listed for completeness: **usability work, not AI.** |

### 2.2 Klook

| Marker | Feature | Date | Tier | Detail preserved |
|---|---|---|---|---|
| `[SHIPPED]` | **GenAI content creation + localisation** for Klook's travel/destination pages | **2024-10-24** (Google Cloud co-marketing newsroom) | A | "**slashed production times by more than 80%** while also boosting translation accuracy and content quality." **Gemini replaced PaLM-2** for translation. Operates at **4,200-destination** scale. ⚠️ This is Klook's *own* pages — **not** the supplier-facing product wizard GYG shipped. A different and easier problem. |
| `[SHIPPED-pilot]` | **Review-summarisation → merchant feedback loop** | **2024-10-24** | A | "summarizes user reviews into constructive feedback for travel merchants has already led to significant service level improvements across partners involved in Klook's early pilots, **with one merchant using this feedback to craft a new attraction-related product that now comprises 24% of the attraction's total revenue**." |
| `[SHIPPED]` | **K.AI** — trip-planner / interactive Q&A assistant | launched at **Klook's 9th anniversary** | B (WiT, PhocusWire) | Also reported to have "reached a higher increase in the accuracy of responses to customers and managing **up to four times more queries** coming in" (Klook-sourced, A-self-reported). |
| `[SHIPPED]` | **"Let Loose the Goose"** AI-powered campaign | **2025-06-27** | B (Skift) | Demand gen. Plus **Klook Kreators** creator-affiliate programme (B). |
| `[SHIPPED]` | **GenAI-assisted SEO tooling** | **2024-10-24** | A | Marketing ops. |
| `[SHIPPED]` | **Gemini Code Assist** in testing and code generation | **2024-10-24** | A | "engineering teams have also **increased the efficiency of their code review processes by 60%** while improving platform performance by up to **70%**." Marketing + finance automating SEO and bill reconciliation. |
| `[ANNOUNCED]` | **GenAI "shopping guide"** | **2024-10-24** | A | Summarises reviews and "establish[es] common factors to aid in complicated comparison – a first for any online travel agent (OTA) platform in Asia". |
| `[ANNOUNCED]` | **Google Cloud co-developed AI infrastructure layer** for trust & safety | **2024-10-24** | A | "focusing initially on capabilities to validate the accuracy and reliability of all generative AI outputs". **Roadmap, not product.** |
| `[BETA]` | 🔴 **AI shopping agent** | disclosed **2026-06-09** | B (Skift exclusive) | Eric Gnock Fah: collapses fragmented booking interfaces "into a single conversational layer"; designed to "understand customer intent, surface relevant products, **complete bookings**, and handle post-sale service"; "**currently being tested with a select group of users**". **That is agentic (4) but not GA — do not score it as shipped.** |
| unverified (C) | "AI-first approach to in-destination travel discovery" | 2026 | C | Singapore Business Review award citation only. |

### 2.3 Viator / Tripadvisor

| Marker | Feature | Date | Tier | Detail preserved |
|---|---|---|---|---|
| `[SHIPPED]` | **Viator app live in ChatGPT**; all three brands (Tripadvisor, Viator, TheFork) shipped as OpenAI apps | Q4 2025 call (**2026-02-12**) | A | "significant increases in traffic coming from LLMs with higher revenue per visitor." Q1'26: "conversion is already **among the highest of any channel** in our portfolio." |
| `[SHIPPED]` | **"AI-native MVP"** — AI-first consumer product: personalisation, real-time recommendations, **GeoAware suggestions**, proactive offers | Q4 2025 call | A | "multiples higher engagement" vs prior efforts. Q1 2026: scaled to "**half of our web traffic in English-speaking markets**." Separately Tripadvisor POS delivered "**>20% growth in conversion over the last 2 quarters**." |
| `[SHIPPED]` | **Itinerary / planning + destination-phase use cases** inside the AI-native MVP | Q4 2025 call | A | Framing: closing the gap between **<50% of travellers using AI to plan and <10% booking via AI**. |
| `[SHIPPED]` | **AI-enabled prebooking chat on the Viator app** | Q1 2026 call (**2026-05-07/08**) | A | In-destination. |
| `[SHIPPED]` | **AI-assisted sign-up** — "**more than doubled sign-up conversion**" | Q1 2026 call | A | ⚠️ **Attribution caveat:** the quote sits in a passage that also discusses TheFork restaurant acquisition; the source teardown could not isolate whether it refers to **Viator supplier sign-up** or **TheFork restaurant sign-up**. **Treat the metric as verified, the segment as unverified.** |
| `[SHIPPED]` | **TheFork AI customer support** — "approximately **40% of B2C customer support queries** now handled through AI" | Q1 2026 call | A | ⚠️ **No equivalent Viator figure was disclosed. Do not transfer this number to Viator.** |
| `[SHIPPED]` | **Product quality scoring** across the catalog | Q4 2025 call | A | "quality scores rising **~20% YoY**, approaching **4.5+ stars**" across 425k products. Method undisclosed. |
| `[SHIPPED]` | **AI-native engineering pilot** | Q1 2026 call | A | "**5 to 7x increase in average engineering output** in one of our recent AI-native pilots." Note the hedges — *one* pilot, *average* output. |
| `[SHIPPED]` | **Review-authenticity checks** | live docs | A | "Viator performs checks on reviews." Method undisclosed. |
| `[ANNOUNCED]` | AI-channel partnerships: **Amazon, Microsoft, Snap** ("exploring multimodal"), **Perplexity** ("early deal around AI-first search to learn") | Q4 2025 call | A | — |
| `[ANNOUNCED]` | **Anthropic** — "which we are excited to get working with" | Q4 2025 call | A | 🔴 **Future tense. Not shipped.** |

### 2.4 KKday / rezio

**No named AI feature exists.** Zero occurrences of AI in the 752 KB OpenAPI spec, the pricing page, or the site. KKday's consumer app was not inspected in this pass — **record as unverified, not as zero.** `[SHIPPED]`, `[ANNOUNCED]` and `[BETA]` rows: **none.**

### 2.5 Headout

**No named AI feature in 26 months.** The only artefact is a **2025-01-15** release containing: "AI-powered customer support", "smarter inventory and pricing systems", "AI is now deeply embedded across our platform." **No product name, no deflection rate, no date, no metric.** The **Dabble** acqui-hire (mid-2024, announced May 2024; Toronto, YC-backed; computer vision + spatial computing + AR/VR — **explicitly not LLMs**) has produced **no announced shipped product in the 26 months since**. Public API docs **last pushed 2024-07-29**. Marker status for everything: **vendor prose, unnamed, self-reported — neither `[SHIPPED]` nor falsified.**

### 2.6 GlobalTix

| Marker | Feature | Date | Tier | Reading |
|---|---|---|---|---|
| `[SHIPPED]` | **"Basic Chatbot (5 questions)"** — ships on every SaaS pricing tier | live 2026-07-26 | A | A scripted 5-question widget. **Not AI in any meaningful sense.** |
| `[ANNOUNCED]` | Funding-narrative AI claims: "to introduce AI advancements in the travel and tourism industry" (**2024-10-14**); "investing in AI and predictive analytics to optimise pricing, identify industry trends, and enhance traveller interactions" (**2024-12-19**) | 21 months old | A (as claim) | **No follow-up release found. A targeted search for a 2026 GlobalTix AI launch returned nothing.** |
| — | `isDynamicPrice` flag + `demandType: NON_PEAK` | live | A | **Rules-based demand tiering. Not evidence of a model.** |

### 2.7 Indonesian / SEA incumbents

**No named shipped AI feature was found for Golden Rama (0), Panorama Group (0), Traveloka B2B (1), Tiket.com (1), TBO Holidays (1) or Agoda Activities (1).** Traveloka's consumer-side assistants exist but were **not verified this step**. `tiket FLEXI` is a product feature, not AI.

## 3. B2B distribution stack comparison

### 3a. Group 1 benchmark set + the incumbent connectivity vendor

| | **GetYourGuide** | **Klook** | **Viator / Tripadvisor** | **KKday / rezio** | **Headout** | **GlobalTix** *(SatuSatu's incumbent Pool A supplier)* |
|---|---|---|---|---|---|---|
| **Public API (Y/N + URL)** | **Y — outbound.** `code.getyourguide.com/partner-api-spec/`, spec at `/spec/api.yaml`; Apache-2.0 repo `getyourguide/partner-api-spec`, **360 commits, last push 2026-07-21**. OpenAPI 3.0.0. **Separate inbound Supplier/Connectivity API: no public OpenAPI found** — help-centre prose only at `supply.getyourguide.support` | 🔴 **N — no public outbound distributor API exists.** `klook.gitbook.io/openapi` self-describes: "This specification is intended for **merchants, reservation systems & channel managers**" — supply-**INBOUND** only. `partner.klook.com` OAuth-gated, no public docs. *("Klook Partner API" is a misnomer — `00-scope.md` §4)* | **Y.** `docs.viator.com/partner-api/technical`, Redocly-rendered, downloadable OpenAPI, **CC BY 4.0**. Last spec change **2026-05-05** (product-option-level logistics object) — **actively maintained** | **Y.** `developer.rezio.io/sources/open-api/en.yaml` — OpenAPI 3.0.3, `api.rezio.io` v1.0.0, **752 KB**, ~60 operations, Scalar-rendered, EN + zh-TW, **public, no login** | **Y but abandoned.** `github.com/headout/api-docs` public, **last pushed 2024-07-29 — ~24 months stale as of today** | **Y — spec fully public, credentials are not.** `apiconnect.globaltix.com` Postman Documenter, collection **`3866783`**, published id **`2s935rHMSf`**, titled "Globaltix Partner API 3.0 (Published)". Webhook spec on SwaggerHub `GlobalTix-GT/Webhook/1.0.0` |
| **What it exposes** | **15 paths.** Configuration (version/status/base-URL; payment methods + credit-card encryption public key + card brands by country) · Catalog (`/tours` `ToursQuery` by query or coordinates, `/tours/{id}`, `/options`, `/categories`, `/suppliers/{id}`; schemas include `itinerary`, `location`, `picture`, `day_breakdowns`, `metadata`) · **Reviews** `/reviews/tour/{id}` — social proof is redistributable · Availability `/tours/{id}/availability` real-time · Pricing `POST /price-breakdown` · **Cart — native multi-item** (`POST /carts`, `shopping_cart_hash`) · Booking `POST /bookings` (`external_reference_id`, `option_id`, `datetime`, `price`, `categories[]`, `booking_parameters`, `questions`; response `reservation_expires_at` = **a hold, not an instant commit**) · Cancellation `DELETE /bookings/{hash}` first-class. 🔴 **Vouchers absent from the public spec** — no ticket/voucher/barcode/QR/PDF endpoint. Auth `X-ACCESS-TOKEN` (apiKey, **not OAuth**); mandatory `currency` + `cnt_language` on every GET; **130 calls/min, breach blocks all calls for 5 minutes**; explicit anti-caching clause ("do not scrape the API in an attempt to cache its output") | **Inbound only:** product content retrieval; availability and pricing **both bulk and real-time**; dynamic pricing per traveller type and product option; **availability holds**; **price locking during booking**; cancellation. Distribution reach sold *to* supply: "our website, mobile app, **Redbook, TikTok**, and more." **Redistribution out of Klook to third-party resellers is not a public offering** | **33 endpoints.** Products (7): `modified-since`, `bulk`, `{product-code}`, `tags`, `booking-questions`, `search`, `recommendations` · Attractions (2) · Availability (4): `check`, `schedules/{code}`, `schedules/bulk`, `schedules/modified-since` · **Bookings (13)**: `cart/hold`, `cart/book`, `hold`, `book`, `status`, `cancel-reasons`, `cancel-quote`, `cancel`, `modified-since`, `modified-since/acknowledge`, `amendment/check`, `amendment/quote`, `amendment/amend` · Payments (1): `POST /v1/checkoutsessions/{sessionToken}/paymentaccounts` · Auxiliary (6): `search/freetext`, `locations/bulk`, `exchange-rates`, `reviews/product`, `suppliers/search/product-codes`, `destinations`. Auth: single header `exp-api-key`, **no OAuth, no rotation flow documented** | 🔴 **Not a distribution feed — an operator-side back-office write API, an ERP for one store.** System (`/v1/config`, `/v1/dataOption`) · Shared Settings — 9 reusable objects with list/create/get/update (`pricePolicy`, `feeNdTax`, `cancelPolicy`, `depositPolicy`, `bookingInfo`, `bookingField`, `pickup`, `extra`, `resource`) · Products (`list`, `detail`, `salesOption`, `mediaInfo`, `create` + **18 `PUT` sub-resources**: intro, itinerary, location, image, cover, video, guide, tag, pickup, extras, fees, policies) · Publish (`sessionSetting`, `session` price & seats, `session/{uuid}/active`, `calendar`) · Orders (`list`, `detail`, `create`, `status`, `payment` note, `note`, `contact`, `bookingInfo`) · `GET /v1/redeem/list` · `POST /webhook`. Auth `X-Auth-StoreUuid` + `X-Auth-Key` + `X-Lang` — **store-scoped; the API can only ever see one operator's own data.** 🔴 **No distributor catalogue search, no net-rate/contract endpoint, no commission object, no cross-store discovery. You cannot source inventory through it** | **Unverified — there is no maintained public artefact to read.** *That absence is itself the finding: a stale public API repo is a costless, high-fidelity signal that a company's B2B distribution is not a priority, because keeping docs current is the cheapest thing a serious API programme does* | Auth `POST /api/auth/authorize` (**bearer expires every 24h**) · Taxonomy (countries, cities, merchantCategory) · Catalog (`product/list?countryCode=`, `product/options?id=&isDynamicPrice=`, `product/info`, `product/changes` **window max 30 days**, `product/newProducts`, `ticketType/get` **deprecated**) · Availability (`ticketType/checkEventAvailability`, **range must be <30 days**, published **up to 6 months** forward, timeslot-aware) · Booking (`reserve` → `confirm` → `release`, **15-minute hold**, auto-released; `partnerReferenceNumber` for idempotency) · Cancellation (`transaction/cancel` new; `transaction/revoke` **"to be Deprecated"**; per-ticket `cancellationPolicy: {percentReturn, refundDuration}`; `isCancellable` boolean) · Misc (`resendTransactionEmail`; images on separate CDN `product-image.globaltix.com`) · **7 webhooks** (`booking-ticket-update`, `booking-transaction-update`, **`booking-ticket-redeem`**, `booking-ticket-revoke`, `product-info-update`, `ticket-type-price-update`, `ticket-expired`). Packages/bundles supported. **>90% of the marketplace uses "Standard Variation"; customised <10%.** ⚠️ **Redemption is asymmetric — you receive redemption state and a ticket PDF link, but there is no reseller-side redemption/scan endpoint.** Redemption is a merchant-side product (separate **Redemption Portal**, vendor guide 2024-08-28) |
| **Onboarding path** | **Commercially sales-gated, technically best-in-class self-serve.** Spec `contact` → `partner.getyourguide.com`; public index says "Contact us to create a partner account and gain access." But: public OpenAPI, Apache-2.0 repo, GitHub wiki getting-started with curl examples, Postman collection release, `openapi-generator` codegen instructions (go / typescript-node / ruby). **Time-to-first-booking is gated by the commercial conversation, not the integration** — a competent engineer could generate a client and hit the sandbox in an afternoon. **Actual TTFB unverified** | **Sales-gated.** Single dual-funnel form at `klook.com/en-US/partner/` (**one form, two radio options** — merchant vs partner), then sales. Klook's own gitbook names "**Integration Complexity**" as challenge #1: "Each partner has unique technical requirements, which can introduce delays and elevate development costs" | 🔴 **Sales-gated at every step; no self-serve path exists anywhere.** Key issued by "**your business development account manager**". Registration → qualification (**Viator decides which program you get**) → development → certification (two forms, iterative, "couple of days" per round) → Viator-side production config **incl. product mapping** → scheduled go-live "**initially for a small number of products**". Realistic: **weeks to months**, gated on a human account manager throughout | ✅ **Self-serve, plan-gated.** Upgrade to SCALE tier → collect key from `admin.rezio.io`. **No approval queue. Days, on a credit card.** But the "first booking" it produces lands in **your own store, not a marketplace** — not comparable to Viator's TTFB at all | `partner.headout.com` = affiliate program, **not a reseller funnel**. Supply funnel = `hub.headout.com`. Terms at `hub.headout.com/terms-and-conditions/`. **TTFB unverified** | **Sales-gated with a human go-live gate.** The *specification* is open; **credentials are not** — "Get your STG login credentials from your GlobalTix Account Manager." Production credentials issued **only after** "our tech consultants validat[e] the test results" |
| **Sandbox** | ✅ **Yes — `https://api.gygtest.net` declared as a first-class server in the OpenAPI document** (production `https://api.getyourguide.com`) | ❌ **None disclosed publicly** | ✅ **Yes, and honest about its own limits.** Manual-confirmation products return `CONFIRMED` by default; you must set header **`exp-demo: false`** to get realistic `PENDING`. 🔴 **To drive a booking to a final `CONFIRMED` or `REJECTED` you must email `apitechsupport@viator.com` with the `bookingRef` and ask a human to flip it. The manual-confirmation lifecycle — the exact path that matters most for long-tail supply — cannot be tested end-to-end without a human in Viator's loop** | ❌ **Not documented** | **Unverified** | ✅ **Yes.** STG `https://stg-api.globaltix.com/api/` · production `https://sg-api.globaltix.com/api/` · staging partner UI `https://stg-partner.globaltix.com/`. A "**Golden Transaction**" test runs **on production** against GlobalTix-owned dummy SKUs so credits can be refunded without touching a merchant. ⚠️ Docs contain a live link bug — STG server labelled `stg-api.globaltix.com` but hyperlinked to `uat-api.globaltix.com`; Partner Portal link is `href="https://"` |
| **Certification required** | **No certification documented on the outbound Partner API.** Instead a **four-step privilege ladder**, hard-evidenced in `ConfigurationPrivilegeResponse.privileges[].name` enum: **`LIMITED_READ, READ, BOOKING, BOOKING_CANCEL`** — a new partner can be given read access without booking rights. *(Inbound side: GYG runs a tiered **Connectivity Partner Program** with certification — see §4)* | Not disclosed | ✅ **Mandatory, gates go-live.** Two forms (back-end + front-end) emailed to `affiliateapi@tripadvisor.com`; human review; "a couple of days" per round. **Source teardown counts ~90 published checks** — ⚠️ see §8 conflict C7 on the check count. *Back-end:* ingestion-cadence adherence · delta-only discipline · no search-as-ingestion · mandatory real-time `/availability/check` **after** date+pax selection and before booking · hold discipline and expiry handling · currency in supported list · payment integration (`PARTNER_FORM` token flow with `x-trip-clientid`/`x-trip-requestid` + JS device fingerprint, **or** Viator iframe with `onSubmitSuccess`/`onSubmitError`) · booking-ref/hold-ref consistency · fraud fields populated · ≥120 s timeouts · status polling ≥1-min intervals, hourly for PENDING · cancellation via `cancel-quote` before `cancel` with a reason from `/bookings/cancel-reasons` · supplier-cancellation ingestion every 5 min + acknowledge · **PCI DSS compliance**. *Front-end — the part people underestimate:* **four search methods** (destination, attraction, product code, freetext) · **eight filters** (category/tags, attraction, price, review rating, duration, time of day, cancellation policy, special offers, plus "likely to sell out"/"excellent quality") · **five sort orders with `DEFAULT` as default** · clickable country→region→city breadcrumbs · **eleven mandatory product-detail fields** (title, images, description, inclusions, exclusions, additionalInfo, cancellationPolicy, languageGuides, itinerary, ticketInfo, logistics.start/end) · age-band display with `startAge`/`endAge` + per-band and per-booking min/max + `requiresAdultForBooking` · a calendar built from `bookableSeasons` minus `unavailableDates` across overlapping bookable items with lowest-ADULT-price fallback chain (SENIOR→YOUTH→CHILD→INFANT) · UNIT vs PER_PERSON pricing maths · conditional booking-question logic incl. the `TRANSFER_ARRIVAL_MODE` → pickup-type tree (**docs note >50% of Viator products offer pickup** and explicitly tell you not to exclude them) · verbatim cancellation-policy text · **all** reviews displayed, not selectively, with provider attribution · **a confirmed live test booking and a live test cancellation** · voucher delivery · HTTPS · Viator branding compliance | ❌ **None** | **Unverified** | ✅ **Required.** Mandated pre-go-live test: **one successful booking plus one successful cancellation** on the recommended test SKUs, validated by GlobalTix tech consultants. Documented test SKUs cover the awkward cases — blockout dates, cut-offs, compulsory Q&A, separate-email tickets, open-dated, barcode |
| **Partner dashboard capabilities** | `partner.getyourguide.com` affiliate portal · `supplier.getyourguide.com` (suppliers) · **`integrator.getyourguide.com`** Integrator Portal — live, JS-gated. Supplier Portal Nuxt3 migration 2025-02-27 (usability, not AI). Documented inbound capabilities: Products List; **Pricing Categories** — "allows GetYourGuide to import and manage price category data for a specified product, accepting only supported categories and **requiring feature activation via the Manage Feature panel**"; Reservation Expiration; Error Codes | OAuth-gated `partner.klook.com`, no public documentation. **Merchant insights = the review-summarisation → merchant feedback pilot** (§2.2), with a broader suite `[ANNOUNCED]` | Partner Resource Center (`partnerresources.viator.com`). **Not publicly inspectable beyond that; no AI features documented** | **PLUS tier ships a B2B agent portal; SCALE ships the B2B API integration key.** Distribution itself happens through the **first-party Channel Manager** — a UI-configured feature, **PLUS-gated** | Affiliate program only | **Agent Portal ships on all three SaaS tiers** — and all three tiers carry an **identical feature set** (Booking page, inventory management, Agent Portal, Basic Chatbot, Channel Manager, Global Marketplace); **only the take rate moves.** Separate **Redemption Portal** for merchants. Staging partner UI available |
| **Commercial model** | Spec is silent on rates. **Two mutually exclusive paths are encoded in the payment schema:** ① **GYG-as-merchant-of-record / commission** — `encrypted_credit_card` (partner encrypts the traveller's card with GYG's `public_key`), or two-step redirect flows (`PaymentProcess.payment_url` / `return_url` / `cancel_url`; PayPal and 3DS examples). Money settles to GYG; partner earns commission. `CouponInfo` supported. ② **`MasterBill`** — "MasterBill payment method, **requires MasterBill API access**." Boolean flag on checkout + `invoice_reference` on the confirmed payment object. **The invoiced / net-rate / credit-terms path, gated behind separate access.** Credit terms, tiering thresholds and rate-parity language are **not public — sales-gated.** 🔴 **Currency trap:** display currencies include **IDR**; checkout currencies are **only** AED, AUD, CAD, CHF, EUR, GBP, NZD, PLN, SEK, USD. **IDR is not a settlement currency** — any Indonesian partner eats an FX leg on every booking | **Entirely undisclosed** — model, tiering, credit terms, rate parity. The F-1 gives the only hard number: 🔴 **gross profit 11.2% of GTV on $3.04bn GTV** — the blended take-rate ceiling for the whole aggregated-distribution model, **not a partner rate card** | **Merchant of record model with a credit line.** Merchant partners own all monetary transactions and customer support, and are "**invoiced periodically by Viator for all product sales**" — **a credit line, not prepay**; amount and terms undisclosed. Qualification requires demonstrating "access to the appropriate infrastructure to effectively support the requisite business operations." Merchants may set their own cancellation terms but **are invoiced on Viator's** — any consumer-friendly refund policy is funded off the partner's own balance sheet. Docs note **~85% of products are STANDARD** (24 h free cancellation, 100% penalty inside 24 h). **Merchant price floor: "Partner prices ≥ `partnerTotalPrice` (unless intentional discount)" — a *cost floor*, not rate parity. There is no rate-parity clause in the certification requirements.** 🔴 **Invoicing currency asymmetry: merchants may be invoiced in GBP, EUR, USD, CAD, AUD only — five. Affiliates may transact in 27 currencies including IDR. IDR is not a merchant invoicing currency**, so an Indonesian merchant partner carries the full USD/IDR exposure between booking and settlement. **Rate limits:** per key, **rolling 10-second window** (worked example `RateLimit-Limit: 16` = 16 req/10 s); 429 returns `RateLimit-Limit`/`-Remaining`/`-Reset`/`Retry-After`; a **system-wide concurrency limiter can return HTTP 503 + `Retry-After: 60` even when you are within your own quota** — you can be throttled for someone else's traffic; partner endpoint timeout **minimum 120 s**. **Mandated ingestion cadences** (cert-enforced): `/products/modified-since` and `/availability/schedules/modified-since` every **15–30 min** (cert floor hourly) · `/bookings/modified-since` **every 5–10 min for merchants** (suppresses Viator's supplier-cancellation emails), hourly otherwise, never faster than 10 s · `/bookings/modified-since/acknowledge` immediately after ingest by the `acknowledgeBy` timestamp · destinations, attractions/search, products/tags, products/recommendations, reviews/product, suppliers/search **weekly full pull** · locations/bulk, products/booking-questions, bookings/cancel-reasons **monthly full pull** · exchange-rates **daily** plus on-demand at expiry. **Explicitly prohibited:** using `/products/search` or `/search/freetext` for ingestion; using `/availability/check` for ingestion; full re-ingestion when a delta would do; >50 results per search page; >500 location refs per `/locations/bulk`; placing a booking hold to check availability | 🔴 **Pure subscription. No commission, no transaction fee, no take rate, no setup fee, no free tier.** **BASE US$49.90/mo** (multi-currency booking site, order mgmt, resource mgmt, sales reports, marketing-code embed, rezio App, online training, **60 min onboarding**) · **PLUS US$99.90/mo** ("most popular") (+ multi-language site, custom voucher design, e-ticket, **OTA Channel Manager**, **B2B agent portal**, 1-on-1 consultant, unlimited onboarding) · **SCALE US$216.60/mo** (+ on-site keyword search, URL redirection, **B2B API integration key**, social buttons). ⚠️ The page **also** shows US$59 / US$119 / US$259 columns labelled as the annual-plan monthly rate, which read **higher** than the monthly prices — the presentation is internally contradictory. **Quote the tier structure and the ~US$50/100/217 ladder; do not assert an annual discount** | **Tiering, credit terms, certification, sandbox and time-to-first-booking: all unverified** | 🔴 **Three stacked takes, two quantified.** ⓐ **Prepaid credit, drawn at `reserve` — not at `confirm`.** A released or expired hold returns credit, but GlobalTix holds SatuSatu's float and every abandoned checkout temporarily consumes it; a 15-minute hold on an abandoned cart is 15 minutes of dead capital. ⓑ **Seven-price stack per ticket type, in both the attraction's currency and the agent's:** `originalPrice`/`originalMerchantPrice` ("the official retail price… walk-in price") · **`nettPrice`/`nettMerchantPrice`** ("Agent price of the ticket, **this will be the amount deducted from the Agent Credit**") · **`minimumSellingPrice`/`minimumMerchantSellingPrice`** ("**Minimum selling price… Selling below this price and the agent risk being blacklisted by the merchant**") · `recommendedSellingPrice`/`recommendedMerchantSellingPrice` ("a recommendation only") · **`directContractPrice`/`directMerchantContractPrice`** — present in the schema, **`null` in the sample; a private/direct-contract rate path exists in the data model**. Observed sample geometry on **one synthetic test SKU**: `originalPrice 20 · nettPrice 5 · minimumSellingPrice 14 · recommendedSellingPrice 14` — **not representative of live economics; do not quote it as a real spread.** It does establish the shape: **MSP is set well above nett and equal to RSP — the floor and the recommendation are the same number, which functionally converts a "recommendation" into a fixed price.** ⓒ **FX markup 1.50% on every non-SGD currency, including IDR** — `"currency": { "code": "IDR", "description": "Indonesia Rupiah", "markup": 1.50, "roundingUp": 1.00, "creditCardFee": 3.00 }`. Cross-checked: **`SGD` carries `markup: 0`; every other currency sampled carries `markup: 1.50`** (`AED` an outlier at 0.50); `creditCardFee: 3.00` on traded majors, 0.00 on illiquid ones. ⓓ **Merchant-side SaaS** (relevant only if SatuSatu becomes a GlobalTix *merchant* for Pool B): Essential <4,999 tickets **+3%** · Business >5k **+2%** · Pro >10k **+1%** — all **USD 100 one-time** setup; **GT Pay**: card 3% · digital wallet 2.3% · national payment 1%. Domain masking, payment-gateway integration and custom email templates priced separately. **Rate limits:** non-transactional **27,000 requests / 5 minutes / IP**; **no stated limit on transactional** (reserve/confirm/details); vendor explicitly recommends caching catalog responses |
| **Channel-conflict stance** | **Runs both sides.** Actively courts distributors (four-step privilege ladder, public spec, affiliate portal) *and* takes supply from systems owned by Tripadvisor and Booking. **No public rate-parity clause was found in the spec, the wiki, or the README** — the parity question lives in the sales-gated contract. **Unverified** | **Structurally conflict-free because it does not redistribute.** Klook takes supply in and sells it only through Klook-controlled surfaces. Its conflict is with **suppliers' own direct channels**, managed by rate/inventory terms that are not public | **Structurally permissive, commercially self-serving.** Affiliates are redirected to viator.com and paid a cookie commission — **pure channel conflict, by design.** Merchants sell in their own storefront, under their own brand, at their own price, with only a net-cost floor — minimal price conflict. 🔴 **The conflict Viator actually manages is SEO, not price:** "**Protected Viator unique content must not be indexed**" — attraction data and reviews must be rendered non-indexable. **The API contractually denies you SEO value from Viator's content. You may resell the inventory; you may not rank on it** | 🔴 **Inverted — it must distribute to its parent's competitors, as a headline feature.** The Channel Manager pushes an operator's products to **KKday, GetYourGuide and Viator**. "An operator will not run their entire business on a booking system that only sells to one OTA — that is a channel, not a system of record. **Multi-channel distribution is the price of admission to the operator's back office.**" KKday pays it knowingly: it sees the operator's real inventory and real cost basis in real time and is the default, zero-friction, already-configured channel | Not covered in Step 3 | 🔴 **Not a neutral pipe — a licensed travel agent running the marketplace its distribution customers resell from.** Sitewide footer: "**© 2024 GlobalTix Pte Ltd. All Rights Reserved. Travel Agent License: TA03367.**" `/resellers/` is a demand-side sales page headed "**BEST RATES GUARANTEED — Discover And Resell From Over 100,000+ Bookable Experiences Under The Sun**", targeting verbatim "**small tour agencies**" for whom "bulk purchases come back to bite," and promising "**100% neutral**" reporting as "a true B2B platform." **12,000+ travel agents already on the platform, plus an Indonesian office with a local GM (Helmy Pietersz).** Reseller page publish date **at least 2022-12-29** |
| **Connectivity posture** | **Partners — but owns the spec.** Owns no channel manager and never built one. **Authors the ingestion contract, runs a Connectivity Partner Program, and publicly grades competitors' systems.** Catalog is the system of record: "**You must create your product in the Supplier Portal before connecting it to your reservation system**" | **Partners** — ingests via third-party channel managers rather than solving operator connectivity itself (`00-scope.md` §3 Amendment B) | **Owns** — Tripadvisor acquired **Bókun, 2018-04-20** | **Built** — and not merely in-house: **the same legal entity.** `rezio.io/about` names the operator as "**Kkday.com International Company Limited (Taiwan)**", est. **2014-05-13**, capital **NT$1bn**, rep. **CHEN MING MING**. rezio is not a subsidiary; it is a **product line of the KKday company itself** | **None evidenced** | **Is the connectivity layer.** Singapore, founded 2013, founders Chan Chee Kong & Chan Chee Chong. 10 Asian offices including Indonesia |
| **Where AI appears in the B2B surface** | 🔴 **Nowhere.** No AI endpoint, no semantic-search parameter, no natural-language query field, no MCP/agent-facing manifest. `ToursQuery` takes a query string and coordinates — **the hybrid semantic search GYG shipped in 2024-11 is not exposed as a distinguishable capability to partners. The AI is in the storefront, not in the pipe** | **One place, and it is real** — the **review-summarisation → merchant feedback** loop. **Klook is turning demand-side data exhaust into a supply-side product. That is the correct move and it is the thing to watch. Everything else B2B is rules** | 🔴 **Nowhere.** One `POST /products/recommendations` of undisclosed method; `/search/freetext` is keyword. **The most AI-forward consumer company in this teardown ships a completely pre-LLM B2B API.** Its agentic exposure is entirely outbound — being a callable app inside ChatGPT — **and its partners get none of it** | **Zero occurrences** in the spec, the pricing page or the site | Unverified | **Zero AI, recommendation, ranking or forecasting endpoints. Entirely CRUD** |

### 3b. Second-aggregator and Indonesian distribution candidates — the same columns, to the depth Step 3 reached

| Candidate | Public API | What it exposes | Onboarding | Sandbox / certification | Commercial model | Channel-conflict / connectivity posture |
|---|---|---|---|---|---|---|
| **Prioticket / Experience Technology Group** (Palisis + TourCMS + Prioticket, formalised **2026-05-12**) | ✅ **Best-in-class and fully public** — `docs.prioticket.com` open, **HTTP 200, no login**. `api.tourcms.com` also open. Public changelog, Postman + SDKs | Explicit **Distributor API** ("**strongly preferred approach for resellers and OTAs**"), plus **native OCTO** consumption — its own docs state it "consume[s] standard OCTO Supplier APIs as defined in the official specification." Endpoints: auth, products, availability, reservations/cart, orders, payments, contacts, notifications | Distributor contracts negotiated | Not published | **Not published** | 🟢 **Lowest strategic risk of any candidate — independent of every OTA that competes in Bali. Its whole business model is being neutral connective tissue.** Self-reported scale (Tier C): **8,143 suppliers, 11,316 distribution partners, 50,000+ experiences, 250+ API-integrated resellers, 60+ reservation systems.** ⚠️ **Indonesia depth unverified — the entire rank-1 recommendation is contingent on it** |
| **Bókun** (Tripadvisor, since **2018-04-20**) | ✅ Public, no login (`bokun.dev`, HTTP 200). **OAuth + scopes** | **Booking API (REST)** covering availability → pricing → booking → amend → cancel; Experience Products API (**51 articles**); **Channel Manager API with explicit "options for reselling products"**; **OCTO implementation** ("Bókun's implementation of the OCTO API Standard"); webhooks | Per marketplace contract | Not stated in Step 3 | Supplier-side SaaS; **reseller commission split negotiated per marketplace contract** | 🔴 **Owned by Tripadvisor. Viator is Tripadvisor.** Integrating hands Viator's parent a live read on which Bali SKUs SatuSatu merchandises, at what volume, on which dates — while Viator retails the same Bali inventory to the same travellers. **GYG rates Bókun a Premium connectivity partner (2026-02-10)** |
| **Expedition Software** (Rezdy / Checkfront / Regiondo) | 🟠 **Mixed and degrading.** `developer.rezdy.com` returned **HTTP 405 "Human Verification"** — bot-walled, not openly readable. `docs.checkfront.com` **302-redirects to `bokun.dev`** (!). `api.regiondo.com` is open (API explorer) | **Three products, three surfaces, no unified distributor API found** | Rezdy Marketplace | Not stated | Rezdy Marketplace commission split; **not published** | 🟠 **Medium-high — integration risk, not competitive risk.** PE-owned (**Vertica Capital Partners + Bailador, ASX:BTI**), **CEO Lawrence Hester is a FareHarbor co-founder, since June 2025** — expect rationalisation. **Do not integrate a platform mid-consolidation with no announced unified API.** ⛔ The Accel-KKR/Rezdy claim on `businessmodelcanvastemplate.com` is **refuted** |
| **Ventrata** | ✅ `docs.ventrata.com` open, HTTP 200, titled "**Ventrata OCTO API**" — clean, standards-native | Attraction-operator system: **37M tickets/yr, 119 clients.** **Not an aggregator** | Per operator | Not stated | Per-operator enterprise attraction SaaS | 🟢 Low competitive risk. 🔴 **Wrong shape** — buys named attractions one contract at a time; **N operators = N contracts.** Becomes "a marginal-cost addition once the OCTO client exists". **GYG rates Ventrata Premium** |
| **TBO Holidays** | 🟠 XML/API exists and is widely resold by integrators, but **`docs.tbotechnology.in` did not resolve** on 2026-07-26. Access is **BD-gated** | **200,000+ global sightseeing products**, 25,000+ agents, **1,300+ white-label/API customers**, 60+ hotel suppliers, plus flights, hotels, transfers, car rental, cruise. Runs **TBO Academy** with a free Bali destination course. **Hotel-first architecture** | BD contact | Not stated | **B2B wholesale net rates + agent markup.** Parent **TBO Tek publicly listed in India — financials obtainable, not pulled this step `[UNVERIFIED]`** | 🔴 **TBO is a competitor for D2, not a supplier for it.** It already sells 200k sightseeing products to 25,000 agents. Feeding SatuSatu's catalog from TBO means reselling, at a fourth layer, a product TBO offers SatuSatu's target agents directly. **Indonesian *activity* depth unverified** |
| **Travel Curious Group (Redeam)** | 🔴 `travelcurious.com` returned **HTTP 403** to programmatic fetch. **No public distributor docs found** | Redeam was **North-America/Europe barcode-clearing. No Indonesia evidence** | — | — | Not published | 🟠 **Insufficient evidence to shortlist.** Acquired by Travel Curious **2025-07-17** |
| **Traveloka — Traveloka Partners Network (TPN)** | ✅ `travelokapartnersnetwork.com` `[SHIPPED, Tier A]` | Integration models: **Non-branded API, Branded API, Mini-App (flights), Website Redirection**, and — critically — "**Travel Agent Booking Engine (Coming Soon)**" `[ANNOUNCED]`. Verbatim product line: "**Accommodations, Travel Activities, Flights, Bus & Shuttle**." Self-reported: 60,000+ directly contracted SEA hotels, 90,000+ SEA accommodations, 2M+ global, **60,000+ travel activities globally**, 300+ airlines | Targets "OTAs, travel wholesalers, fintech companies, banks, and e-commerce platforms" | Not stated | "Competitive and Flexible Pricing"; **net-vs-commission not published** | 🔴 **D2's real competitor.** Ships "Travel Activities" as a named B2B product line, is **pooling attractions inventory with Trip.com (June 2026)**, and owns the Indonesian market |
| **Golden Rama** | 🟢 **`rols.golden-rama.com` is live and two-sided** — "**Agent Login**" (Agent ID / User ID / Password / Secure Code) **and** "**Supplier Login**" (Supplier ID / Password), plus "**Register Online**" `[SHIPPED, Tier A]` | ⚠️ **Narrower than Step 2 assumed.** The ROLS landing page self-describes as "**Hotel reservation Center**" with contact `hotel.rols@goldenrama.com`. **Only hotels are surfaced on the public portal page.** The *consumer* site carries an Attractions category — **but that is not the same system. No public evidence the agent portal distributes attractions** | "Register Online" | — | **Not published. No API, XML feed, commission or deposit terms exposed publicly** | **It has the rails and is not putting attractions on them.** Offices Jakarta, Bandung, Surabaya, Denpasar, Makassar |
| **Panorama Group** (JTB / Destination / **Wupi**) | 🟢 Two assets: "**Panorama Agent**" live Google Play app — "manage and promote tours provided by Panorama JTB… book tours for clients on-the-go" `[SHIPPED, Tier A]`; and **Wupi**, self-described as a "**wholesale B2B Travel Distribution Platform… developed to sell tour packages and flight tickets for travel agents in low and mid-tier markets**" `[SHIPPED, Tier A]`. **No public API** | 🟡 **Tour packages and flight tickets** (Wupi, verbatim) and **tours** (app). **Packaged tours, not ticketed attractions. No attraction-SKU distribution evidenced** | — | — | Wholesale net rates; **not published** | Panorama Destination = **Indonesia's largest verifiable inbound DMC** (founded Dec 1999, 500+ staff, 250+ licensed guides). **Real reach, no ticketed-attraction feed, no competing aggregator ambition** |
| **Tiket.com** (Blibli / PT Global Digital Niaga Tbk, **IDX: BELI**) | 🟠 **Affiliate T&Cs published** (`tiket.com/public/downloads/b2b/affiliate/`) + a **Corporate** travel-management product. **No agent-reseller portal or public API found** | Consumer catalog carries "**To Do**" — attractions, play areas, spa & beauty, tours, sports & outdoor — plus **tiket FLEXI** (flexible-date activity vouchers) | — | — | Affiliate commission; corporate credit line | **A potential D3 demand endpoint, not a source of inventory** |
| **Agoda Activities** (Booking Holdings) | 🔴 **No public activities distribution API.** `partnerhub.agoda.com` and `developer.agoda.com` are **accommodation-focused**; Rocket Travel by Agoda's Distribution API is explicitly "**Accommodation Distribution API**." Third-party integrators state plainly there is "**no online application form or developer portal for Agoda B2B API**" — access is via BD contact | 🟡 Agoda's consumer surface sells activities; **its distribution surface does not** | BD contact only | — | Not published | **Not a factor in distribution. Its activities inventory is not distributable** |

## 4. Connectivity layer map — ownership and consolidation as of 2026-07-26

### 4a. Dated transactions and formations

| Date | Transaction / formation | Tier | Detail |
|---|---|---|---|
| **2018-04-19** | **Booking Holdings → FareHarbor** (announced) | A | Vertical-integration leg 2. |
| **2018-04-20** | **Tripadvisor → Bókun** | A (IR release) | "booking engine, an inventory channel manager, a price management tool." |
| **2018-09-14** | **TUI → Musement** | A (acquirer's own IR release) | Acquirer, target and date confirmed. |
| **2014-05-13 (entity) / rezio launch 2020** | **KKday built rezio** — **same legal entity**, not a subsidiary | A | `rezio.io/about` names the operator as "**Kkday.com International Company Limited (Taiwan)**", capital **NT$1bn**, rep. **CHEN MING MING**. ⚠️ **"April 2019" contested — use 2020** (rezio's own live site *"自 2020 年上線以來"* + KKday's own PRNewswire; the sole 2019 source is a PATA item whose **URL now 404s**). |
| **Jun–Aug 2023** | **Expedition Software** formed — Rezdy, Checkfront, Regiondo | A/B | Backers **Vertica Capital Partners + Bailador (ASX:BTI)**. **CEO Lawrence Hester — a FareHarbor co-founder — from June 2025.** |
| **c. 2024–25 (date unverified)** | **Tourism Software Group** — TrekkSoft, ExperienceBank, Payyo, Waldhart | B/C | Swiss/European SaaS roll-up. TrekkSoft **is alive and has a parent** — the plan had listed it as an independent unknown; **both halves were wrong**. |
| **2024-10-14** | **GlobalTix Series B — S$6.5M led by Tin Men Capital** | A | ⚠️ **Double-count trap:** the **2024-12-19** release headlined "$5 Million Series B" is **the same round restated. Do not sum.** |
| **2024-12-05** | **KKday ~US$70M Series D** | A | The scale against which rezio's ~US$6M ARR ceiling must be read. |
| **mid-2024 (announced May 2024)** | **Headout → Dabble** (Toronto, YC-backed) | A | Reads as an acqui-hire. ⚠️ **Corrects `00-scope.md` §4's "~2026-06-17"** — see §8 conflict C1. |
| **2025-07-17** | **Redeam → Travel Curious Group Inc.** | A | **>$40M**, projected **>$700M processed in year one**. Redeam is **not** an independent network. |
| **2025-08-05** | **Palliser Capital campaign on Tripadvisor becomes public** (Bloomberg / Boston Globe), amplified **2025-08-20** (Skift) | A/B | CIO **James Smith**. Pushing to spin off or sell Viator. |
| **2025-10-07/08** | **InJourney Destination Management → GlobalTix appointed official channel manager for the Borobudur Temple Compound** | A (GlobalTix release) | InJourney is an **Indonesian state-owned tourism sub-holding**. |
| **2025-12-10** | **Expedia Group → Tiqets** (announced) | A (Expedia IR + Business Wire) | **Closed Q1 2026 at $279M** per Skift off the 10-Q; Airbnb realised ~$70M. A valuation anchor for a category-leading curated attractions player. |
| **2026-02-10** | **GetYourGuide publishes a dated public ranking of its connectivity partners** | A | See §4b. |
| **2026-02-17** | **Starboard Value (~9%) letter to Tripadvisor** — settled via board expansion | A | Produced **no segment-margin disclosure** verifiable in Step 3. |
| **2026-05-12** | **Experience Technology Group** formed — **Palisis + TourCMS + Prioticket** | A | Backer not disclosed. **Ten weeks old at the time of the Step 1 scope.** Palisis is **not** a standalone (it owns TourCMS, and both now sit under ETG). |
| **2026-06-15** | **TheFork → American Express, $700M** | A | The Tripadvisor "three-part stack" is **not settled** — it is being dismantled in public. |

### 4b. GetYourGuide's public grading of the connectivity layer — the only public friction signal that exists

Supply help centre, **last updated 2026-02-10** (Tier A, GYG-authored):

| GYG tier | Systems named |
|---|---|
| **Premium partners** | **Bókun** · **Rezdy** · **Ventrata** |
| **Advanced partners** | **bookingkit** · **FareHarbor** · **Regiondo** · **LinkTwist** · **TourCMS / Palisis Group** · **TrekkSoft / ExperienceBank** |

🔴 **Bókun (Tripadvisor-owned) is Premium; FareHarbor (Booking-owned) is only Advanced.** A dated, GYG-authored public ranking that places one competitor's system above the other's. **GYG is comfortable telling suppliers that Booking's channel manager is second-tier on its platform.**

### 4c. GYG's connectivity dependency — reassessed as control, not tenancy

**The premise needed correcting.** GYG owns no channel manager and routes supply through systems owned by Tripadvisor (Bókun) and Booking Holdings (FareHarbor). That is true. But GYG is **not a tenant. It owns the ingestion contract.**

Evidence of control:
1. **GYG authors the spec and runs certification.** `integrator.getyourguide.com` is a live Integrator Portal. `getyourguide.supply/connectivity/connectivity-partners` runs a **Connectivity Partner Program** with filters for Ticketing System / Channel Manager / Reservation System, pitching systems on joining: "Showcase your booking solution, attract new suppliers, and benefit from exclusive partner resources and incentives."
2. **GYG publicly grades its competitors' products** — §4b.
3. **GYG keeps the catalog as system of record.** "You must create your product in the Supplier Portal before connecting it to your reservation system." The channel manager syncs availability, price categories and bookings against a record GYG already owns. **If a connector is lost, the catalog survives.**
4. **GYG built its way around the content dependency.** The 2025-04-23 AI product-creation wizard means a supplier can build a complete, high-quality GYG listing directly in GYG's portal in ~14 minutes from a paste of their own website. **A deliberate reduction in the value of channel-manager-mediated content onboarding — and it shipped to 100%.**
5. **Portfolio dilution as strategy.** Nine+ named Premium/Advanced systems plus a long tail. **No single connector is load-bearing.**

**Evidence of friction, cost, or strategic conflict: none found publicly.** No dispute, no deprecation notice, no acquisition of a channel manager, no public complaint. **Unverified whether GYG pays anything per booking** — in this category connectivity vendors typically charge the *supplier*, so GYG's cost is plausibly engineering + partner support rather than per-transaction rent. **Unverified; do not assert.**

**The precedent, stated correctly:** GYG's position is **not** "partner for the plumbing." It is: **own the spec and the catalog record; let other people's software implement your spec; grade them publicly; never build the channel manager.** Materially cheaper than either building connectivity or surrendering the catalog to a connector. **It also required a decade and a Supplier Portal to establish — the ownership of the record is what makes the rest safe.**

⚠️ **This directly contradicts `00-scope.md` §4 Group 3, which framed the same facts as "a nameable strategic vulnerability."** Conflict surfaced at §8 C6.

### 4d. OCTO — the leverage nobody in the brief named

**Bókun, Prioticket, Ventrata and a widening set of others all implement the Open Connectivity for Tours, Activities and Attractions specification.** Prioticket's own docs state it "consume[s] standard OCTO Supplier APIs as defined in the official specification"; Ventrata's entire doc site is titled "**Ventrata OCTO API**"; Bókun ships "Bókun's implementation of the OCTO API Standard."

`[SPECULATION, but well-founded]` **For a team with no engineers, the highest-leverage move is to build one OCTO-conformant consumer rather than a second bespoke aggregator adapter.** One integration then reaches Prioticket's pool, Ventrata's attractions, Bókun's marketplace, and any future OCTO supplier — **and it makes each individual vendor swappable, which is the direct antidote to the GlobalTix concentration risk.** **This should be a named decision in the D3 architecture, not an implementation detail.** It also means Ventrata stops being "the wrong shape" and becomes "a marginal-cost addition once the OCTO client exists."

### 4e. Kind-of-thing taxonomy — the framing correction that prevents the wrong purchase

Treating the nine candidates as one list is the main way the second-aggregator decision goes wrong.

| Kind | Members | What buying from them actually is |
|---|---|---|
| **Marketplace aggregators** (a pool of third-party supply you can resell) | GlobalTix, Bókun Marketplace, Rezdy Marketplace, Prioticket/ETG, TBO | **The thing SatuSatu means by "second aggregator"** |
| **Reservation systems** (one operator's own inventory, per-supplier connection) | Ventrata, Regiondo, Checkfront, rezio, TourCMS | **Not an aggregator. N integrations for N operators** |
| **Competitor OTA supply rails** | Klook, Viator | Inbound-only, or reseller access gated behind being their distributor |
| **Standards, not vendors** | **OCTO** | **The actual leverage** |

### 4f. Two carried-forward pricing anchors — flagged, not re-evidenced in Step 3

- **Middleware prices at ~5.7% EV / processed volume.** Derived from the Step 3 figures for **Travel Curious Group → Redeam, 2025-07-17: >$40M consideration against >$700M projected processed volume in year one** (A). The ratio itself is arithmetic on those two numbers, **not a disclosed multiple.**
- **Tripadvisor moved Bókun toward "a fraction of a percent per booking"; Palisis + Prioticket sell *neutrality*; OCTO is commoditising connectivity.** ⚠️ **The Bókun per-booking pricing claim is carried from Step 0/Step 2 and was NOT re-evidenced in any of the three Step 3 teardowns.** The neutrality-selling and OCTO-commoditisation halves *are* evidenced in Step 3 (Prioticket "100%-public Distributor API + OCTO-native, owned by nobody who competes for the Bali traveller"; §4d). **Treat the Bókun rate as unconfirmed at Step 3 and re-verify before it appears in a recommendation.**

## 5. Indonesia / SEA competitive reality

### 5a. The D2/D3 partner pool — the first hard number

**Source, Tier A, primary:** DPP ASITA's own member directory at `asita.id/anggota/`, queried via its public WordPress REST API on **2026-07-26**.
- `GET /wp-json/wp/v2/wpbdp_listing?per_page=1` → header **`X-WP-Total: 5222`**
- `GET /wp-json/wp/v2/wpbdp_category?per_page=100` → per-province counts

| Province | Members | | Province | Members |
|---|---:|---|---|---:|
| **Jakarta** | **984** | | Sumatra Utara | 272 |
| Jawa Timur | 453 | | Banten | 190 |
| Jawa Barat | 402 | | D.I. Yogyakarta | 152 |
| **🔴 Bali** | **353** | | Jawa Tengah | 145 |
| Sulawesi Selatan | 320 | | Riau | 142 |
| Sumatra Barat | 293 | | NTT | 118 |
| Kalimantan Selatan | 278 | | NTB | 109 |
| | | | *(+ 22 further provinces, Associated 20, Overseas 1)* | |
| | | | **TOTAL** | **5,222** |

✅ **Integrity check: the 36 category counts sum to exactly 5,222, matching the collection total.** No double-counting, no gaps. **This is a clean number.**

**Reconciling the ASITA Bali chairman's claims — they must not be used to size D2.** The chairman's figures ("6.9m used travel agents" ≈ 99.3% of arrivals; separately "65%") are **claims about travellers, not about ASITA membership**, and they almost certainly count foreign travel agents and OTAs. Tested against 353 licensed Bali agencies:

| Claim | Implied throughput per Bali ASITA member | Read |
|---|---:|---|
| 6.9m travellers via travel agents | **~19,500 / agency / yr** (~53/day, every day) | **Not credible** as a member-served figure. Confirms the 99.3% reading is unusable |
| 65% of ~6.3m 2025 arrivals ≈ 4.1m | **~11,600 / agency / yr** (~32/day) | Only reachable in aggregate if the count includes non-Indonesian agents and OTAs |

🔴 **Operative conclusion: do not use either ASITA percentage to size D2. D2's addressable Indonesian agent universe is the 5,222 licensed ASITA members; its addressable *Bali* universe is 353.** Add non-ASITA operators, hotel concierges and villa managers for a wider Pool-B-adjacent tier, but **353 is the defensible anchor for the licensed-agency segment.**

**Motion-shape arithmetic:**
- **The Bali-only segment is 353 accounts.** At an optimistic **20% penetration that is ~70 partners.** **A field-sales motion cannot be justified against 70 accounts unless per-account annual gross profit is large.**
- **Pool B is the only pool with room.** At 27% gross vs Pool A's ~7% net, **a Pool B rupiah is worth roughly 3.9× a Pool A rupiah to D2.** A partner sending Pool A volume is close to free-riding on SatuSatu's cost base.
- 🔴 **The break-even question the team must answer with its own data:** for one fully-loaded Indonesian B2B salesperson, what annual Pool B GMV must each of ~70 Bali partners transact for the motion to clear cost? Concretely: `required GMV per partner = (fully-loaded annual cost of sale + support) ÷ (0.27 × 70)`. **If the answer exceeds what a 353-agency market plausibly transacts in Bali excursions, D2 must be self-serve — product-led, no human onboarding — or it must expand beyond Bali to the 5,222 national base, which means inventory beyond Bali, which means Pool A, which is the negative-value trap. That tension is the actual strategic decision inside D2.**
- `[UNVERIFIED]` **Average booking value and per-agency transaction volume were not obtainable.** No BPS, ASITA or association source publishes agent-level booking volumes or ATVs. **The largest remaining gap in the ACV model — and it is internal data SatuSatu already has.**
- `[SPECULATION]` The **984-member Jakarta** concentration versus **353 in Bali** suggests the natural D2 buyer may not be the Bali inbound agency at all, but the **Jakarta outbound/domestic agency selling Bali packages to Indonesian travellers** — a bigger pool, remote-servable, consistent with a low-touch self-serve motion. **Worth one hour of testing before the Bali-first assumption is locked in.**
- Context that carries over: Arival/Phocuswright — **>70% of experience operators are small or micro; offline direct sales still dominant.** The Indonesian *agent* tier is now measured and consistent with that picture: **5,222 licensed agencies, 19% of them in Jakarta, only 6.8% in Bali.**

### 5b. The incumbents already serving that pool — and the specific gap

🔴 **Read the middle column of §3b again: every single Indonesian incumbent's B2B distribution is built around hotels, flights and packaged tours. Not one of them distributes ticketed attractions to agents.**

- **Golden Rama** runs the *architecture* D2 proposes — two-sided, agent + supplier, live — but its public agent surface is a "**Hotel reservation Center**." **It has the rails and is not putting attractions on them.** `[VERIFIED as of today; the portal is login-gated beyond the landing page, so post-login categories are UNVERIFIED — the single most valuable remaining check, and it needs an agent account.]`
- **Panorama** distributes "**tour packages and flight tickets**" (Wupi, verbatim) and tours (Panorama Agent app). Packaged FIT/GIT product, sold with a quote-and-confirm workflow. **Not real-time ticketed attraction inventory.**
- **TBO** genuinely does carry **200,000+ sightseeing products to 25,000 agents** — but it is India/Middle-East-centred, hotel-first in architecture, and its Indonesian *activity* depth is unverified. **It is the one real competitor to D2's pitch, and it competes on breadth, not on Bali.**
- **Traveloka TPN is the most serious threat and the least discussed.** It ships "**Travel Activities**" as a named B2B product line to "OTAs and travel wholesalers," and has a "**Travel Agent Booking Engine (Coming Soon)**" `[ANNOUNCED]`. Combined with the **June 2026 Trip.com attractions-inventory pooling**, **Traveloka is assembling exactly D2 — with 60,000+ activities, Indonesian market ownership, and a balance sheet.**
- **Agoda is not a factor in distribution.** Its activities inventory is not distributable.

**Consequences, stated directly:**
1. **D2's pitch cannot be "a portal."** Golden Rama has one. Traveloka is building one. Panorama has an app and a wholesale platform. **A portal is table stakes and confers nothing** — the same conclusion Step 2 reached about WhatsApp.
2. **D2's pitch also cannot be Pool A inventory.** Any Bali agent can source Pool A from GlobalTix directly, in-market, from a local GM, at a better nett rate — and **SatuSatu is floored by `minimumSellingPrice` from undercutting. Reselling Pool A to agents is negative-value.**
3. **The only defensible D2 pitch is real-time, instantly-confirmable, direct-contracted Balinese long-tail inventory that is not in GlobalTix, not in TBO, not in Traveloka, and not obtainable by the agent any other way. That is Pool B — 27% gross — and it is also the only inventory SatuSatu holds exclusively. Exclusivity, margin and D2 viability all point at the same asset. Three independent lines of reasoning converge on Pool B.**
4. 🔴 **And Pool B's blocker — no real-time availability at the operator — is the whole product.** Not the portal. **The portal is the delivery mechanism for solving an availability problem no incumbent has solved for Balinese micro-operators.** If SatuSatu does not solve availability at the operator, **D2 has nothing to sell that Golden Rama, TBO or Traveloka cannot match.**
5. ⚠️ **And GlobalTix will sell that operator a solution for USD 100 and 3%.** Read the SaaS table twice: **for USD 100 one-time and a 3% booking fee, a Balinese operator with no reservation system gets real-time availability, a booking page, *and* channel-manager distribution.** That is the commercial answer to Pool B's stated blocker — **offered by SatuSatu's own supplier, at a price SatuSatu cannot beat, to the exact operators SatuSatu wants to contract exclusively. The clock on Pool B exclusivity is set by how fast SatuSatu's own supplier digitises the same operators.**

### 5c. GlobalTix's Indonesian position — provable from its own reference data

- **Indonesia is `countryId: 2`** — the second country in GlobalTix's system, immediately after Singapore (`countryId: 1`). **`Bali` is `cityId: 2`** — the second city ever created in the platform. `mobilePrefix: "+62"`, `isDistributionTable: true`, `isListing: true`, `isBilling: true`, `lastUpdated: 2025-07-14`. 🔴 **Indonesia is not a late expansion market for GlobalTix; it is structurally the founding non-Singapore market.**
- **Indonesian city taxonomy is granular, not token:** Bali (2), Jakarta (3), Bandung (4), Yogyakarta (5), Medan (6), Surabaya (111), **Ubud (112)** — **Ubud carries its own city ID separate from Bali** — plus Banyuwangi, Balikpapan, Berau, Manado. **A vendor that gives Ubud a distinct city record is carrying Ubud-level supply, not just Denpasar airport transfers.**
- **IDR is a first-class settlement currency** with a full markup / rounding / card-fee configuration.
- **A live Indonesian product visible in the public docs:** `id: 52712, title: "Ancol Entrance Gate", country: "Indonesia", status: PUBLISHED, publishedDate: 2026-01-07`.
- **Named Indonesian supply across all sources:** Borobudur Temple Compound (**InJourney** channel-manager mandate, 2025-10-07/08, A) · **Taman Safari Indonesia** (A) · **Waterbom Bali** · **GWK** · **Ancol** (A, from the API).
- ⚠️ **What could not be established and must not be guessed: the count of Indonesian, and specifically Balinese, SKUs.** No public per-country product count exists; `product/list?countryCode=` requires a token.
- **Self-reported scale — and GlobalTix's own pages disagree with each other by 50,000 experiences:**

| Page | Experiences | Agents | Tickets |
|---|---|---|---|
| Homepage (fetched Step 2) | 150,000+ | 12,000+ | 25M / yr |
| Series B release, 2024-10-14 | 150,000+ | 12,000 | **12M / yr** |
| **`/resellers/` (fetched 2026-07-26)** | **100,000+** | — | — |

⚠️ **The reseller-facing page — the one a buyer like SatuSatu is being sold on — carries the *lower* number. Treat 150,000 as a marketing ceiling and 100,000 as the sourcing-relevant figure. The only interesting movement is 12M → 25M tickets in ~21 months.** All figures Tier A-as-claim, **unaudited**.

**Concentration risk on the incumbent feed:**

| Risk | Evidence | Severity for SatuSatu |
|---|---|---|
| **Single prepaid credit account is a hard stop** | Credit deducted at `reserve`; no credit = no bookings, instantly, across the whole Pool A catalog | 🔴 **High — a treasury failure is a total Pool A outage** |
| **MSP floor** | Vendor docs, verbatim; blacklist consequence | 🔴 **High — caps margin by contract, not by market** |
| **1.5% FX markup on IDR/USD** | API currency object | 🟠 Medium — quantified, **and negotiable** |
| **Surface churn** | Two endpoints already deprecated inside published v3.0 (`ticketType/get`, `transaction/revoke`) | 🟠 Medium — with no engineering capacity, forced migrations are expensive |
| **Supplier is also a competitor for the same agents** | Travel Agent Licence TA03367 + `/resellers/` + 12,000 agents + Indonesian GM | 🔴 **High — the D2/D3 conflict** |
| **Supplier holds the Indonesian SOE mandate** | InJourney/Borobudur, 2025-10-07/08 | 🟠 Medium — **GlobalTix's Indonesian position is strengthening, not weakening; leverage moves away from SatuSatu** |
| **No SLA / no status page / no public incident history** | Searched, none found | 🟠 Medium — **you cannot price the availability risk you are carrying** |

**Operational risk — no verifiable evidence found, and the evidence base is too thin to clear them either.** G2: "**There are not enough reviews for Global Tix for G2 to provide buying insight**" — a ten-year-old company with 12,000 claimed agents has **no reviewable install base on the main B2B review site**, itself mildly informative about how the agent relationship is actually formed (direct sales, not self-serve). Capterra and SoftwareAdvice carry profiles with no incident, outage or dispute reporting. One "scam" complaint on `globaltix.tenereteam.com` (a coupon-affiliate aggregator) is **Tier C, single anonymous datapoint, unusable — excluded.** **No status page, no published SLA, no uptime history, no post-incident reports found. Absence of a status page is a real finding for a vendor carrying a UNESCO-site channel-manager mandate.** **Departed customers: none identified. `[UNVERIFIED]` — do not infer stability from the absence.**

**The structural conflict, stated plainly:** **SatuSatu's D2 target market — Indonesian travel agents who want attractions inventory — is GlobalTix's existing 12,000-agent customer base, sold to in-market by a local Indonesian team.** Every Bali agency SatuSatu pitches D2 to can open a GlobalTix reseller account instead and source the same Pool A catalog **one layer higher**, at a nett price very likely better than anything SatuSatu can pass through. **The MSP floor removes the obvious counter** — SatuSatu cannot win that agent on price. **D3 is a direct product substitute for the thing GlobalTix already sells**: its reseller pitch — "our powerful API… instantly searchable, bookable and cancelable in real-time" — **is D3's pitch, shipped, at scale, since at least 2022-12-29.** And **ingestion is also disclosure**: every `product/list`, `checkEventAvailability` and `booking/reserve` call tells SatuSatu's supplier exactly which SKUs it merchandises, when demand spikes, and what converts. **A lesser version of the Bókun/Viator problem — but the *live* version.**

🔴 **The one-hour, zero-research task SatuSatu can run today with credentials it already holds:**
```
GET /api/product/list?countryCode=ID          → count Indonesian products
GET /api/city/getAllCities                    → resolve cityId 2 (Bali) and 112 (Ubud)
   → bucket the ID product list by city; compare Bali+Ubud count against SatuSatu's 253 SKUs
GET /api/product/options?id={n}&isDynamicPrice=true
   → for a matched sample, capture nettPrice vs minimumSellingPrice vs Klook/Viator live retail
```
**That last line converts the Pool A margin band from `[INFERENCE]` to `[VERIFIED]`. Highest value per hour on the whole list.**

`[SPECULATION, flagged]` The **`directContractPrice` field sitting null** in the schema suggests GlobalTix operates a **two-tier rate structure** in which volume partners get contract rates below marketplace nett. If so, **SatuSatu at 253 SKUs is on the public tier. Worth asking the account manager directly — the field name gives you the vocabulary to ask in.**

**Bottom line on GlobalTix:** a competent, well-documented, Indonesia-deep connectivity vendor **whose commercial terms are actively hostile to a small reseller's margin, and whose corporate form makes it a competitor for the exact customer D2 is being built for. Keep it, use it as the catalog-coverage utility it is, and stop expecting it to be a route to B2B revenue.**

### 5d. Bali retail reality — the Klook Bali Pass, reverse-engineered

**Identity.** Activity ID **68512**, `klook.com/en-US/activity/68512-bali-pass/`. On-page title: "**Bali City Pass [Bundle & Save!]**". Deep link `klook://activity/68512`. Published in **25 locale variants of the same activity ID** (en-US, en-SG, en-AU, en-GB, en-IN, en-MY, en-PH, en-HK, en-CA, en-NZ, id, ja, ko, th, vi, ms-MY, zh-CN, zh-TW, zh-HK, de, fr, es, it, pt-implied, ru). **One SKU, global demand, single ops overhead.**

**Structure.** `[SHIPPED]`, verbatim from the live PDP (A): *"Explore Bali's top activities and save up to 45% Klook Bali Pass. **Choose 2, 3, 4 or 5 of your favorite activities from a list of over 40 top activities in Bali.**"* **Four tiers, buyer-composed.**

**Price.** `product:price:amount = 46.85`, `product:price:currency = USD` — the lead-in (2-activity tier) price as of 2026-07-26. **Per-tier price ladder is rendered client-side and was not machine-readable; unverified.**

**Discount claim has been ratcheted.** Klook's own blog (**2025-02-18**, A) says "**save up to 42%**". The live PDP (**2026-07-26**, A) says "**save up to 45%**". **The headline discount has increased ~3pts over ~17 months.**

**Redemption flow** — verbatim from Klook's own blog (A, 2025-02-18): ① log in to Klook account (web or app) · ② purchase the pass · ③ "Go to '**Bookings**' to **activate** your pass and **redeem** your visit to any listed activity that is included in the type of pass you purchased" · ④ "**You'll then receive a voucher**" — **a per-redemption voucher, issued at redemption time, not at purchase** · ⑤ proceed to the activity.

🔴 **Key architectural read: purchase, activation and redemption are three separate events.** Klook holds the cash from purchase, **defers the supplier liability to redemption**, and only mints the redeemable artefact at step ④. **Breakage on unredeemed slots accrues to Klook.** Activation gates the validity clock, so the traveller controls when the window opens — **which removes the main objection to date-bound passes.**

**Validity: 30 days from redemption/activation** — reported consistently across secondary sources (B/C). The PDP T&C block is JS-rendered and was not retrievable; **treat the exact figure as unverified at Tier A.** The *shape* (activation-triggered rolling window, multi-day, one visit per activity, different activities on different days) is consistent across all sources.

**Composition — 33 inclusions read off the live PDP (A), grouped by economic role:**

| Role | Items |
|---|---|
| **Anchors** (branded, high-intent, real gate cost) | Waterbom Bali · Bali Zoo · Bali Safari · Garuda Wisnu Kencana · Uluwatu Kecak fire dance · Trans Studio Bali · Bali Bird Park |
| **Adventure** (operator-run, moderate marginal cost) | Nusa Penida day trip · Mount Batur sunrise trek (×2 listings) · Ayung white-water rafting · ATV quad · Bali Swing (Tegalalang) · jungle swing · surf lesson · discover-scuba · snorkelling (3 spots) · Tanjung Benoa water sports |
| **Near-zero marginal cost / long tail** 🔴 | **Nine+ distinct spa operators** — Lluvia Spa Seminyak (120 min) · Taman Air Spa · Ubud Traditional Spa · Hua Spa Jimbaran · in-villa/in-hotel spa · Melah Spa (Jambuluwuk Oceano rooftop) · Radha Spa (Sankara Ubud) · ZEN Family Spa Nusa Dua · Jasmine Aromatic House (transit spa) · plus Ubud yoga class · Ubud cooking class |
| **Non-activity filler** 🔴 | **XL Axiata 4G SIM/data** · **Viufinder photographer** · Jimbaran seafood dinner · Atlas Beach Fest · GWK+Kecak+Jimbaran combo |

🔴 **The mechanic, stated plainly.** The 40+ pool is *majority* low-marginal-cost, weak-brand, high-availability inventory — spas, a SIM card, a photographer, yoga. **The anchors do the acquisition work in the merchandising; the redemption mix is where the unit economics survive. Klook is funding a 45% headline discount out of long-tail supplier margin and redemption-mix skew, not out of its own take rate.** A Tier C source references "up to 2 super saver activities" as a sub-tier within the pool — **consistent with a two-class inventory design, but unverified.**

**Merchandising against the standalone catalog.** The pass is a *separate PDP* that sits **beside, not inside**, the standalone catalog. Fed by a dedicated promo hub (`klook.com/en-US/tetris/promo/klook_pass_bali/` — "Bundle and save up to 45%, up to 40 activities in one pass") and the Bali deals hub (`/tetris/promo/bali-deals/`). **Every constituent activity remains individually bookable at full price.** Klook's own blog sells the pass on five benefits, and the fourth is explicit: *"**The pass helps with itinerary planning** … This pass will help you with your itinerary planning by giving you a headstart."*

**Why this is the threat.** **Klook is not competing on the individual SKU. It is competing on trip composition** — with a mechanic that needs **no engineering** (a bundle SKU + a redemption state machine), converts a shopping decision into a single purchase, **defers supplier cost to redemption**, and **localises to 25 markets off one product record. The cheapest possible way to own the hero position in a destination.**

*Framing note from `00-scope.md` §4: this is a **direct, same-destination, same-mechanic competitor to SatuSatu's hero SKU** — 40+ Bali activities against SatuSatu's "40–50+" (SatuSatu's own page self-contradicts: "40+ Top Experiences" on pricing cards vs "50+ curated attractions" in benefits). **It inverts the plan's central risk: the demonstrated risk is not that SatuSatu goes horizontal and loses curation — it is that a horizontal incumbent bolts a pass on in a week.***

### 5e. Viator's real economics — the asymptote the whole Indonesian D1/D3 case runs into

**Honest finding first: the activist filings are weaker on unit economics than expected.** Palliser's campaign (public 2025-08-05) is a **sum-of-the-parts valuation argument, not a margin disclosure.**

| Palliser claim | Figure |
|---|---|
| Viator standalone value | **up to US$2.5B** |
| Whole-company value if restructured | **US$3.7B** |
| TRIP market cap at time of letter | **under US$2B** |
| Ask | Strategic committee; focus on Viator + TheFork; **re-examine management incentives**; reassess capital allocation |
| CIO quote (James Smith) | *"The company is caught between two fundamentally different strategic identities… This internal conflict is holding back its most promising venture – Viator, stifling growth and innovation, weakening its competitive edge and costing it the investor attention and valuation it should command."* |

Starboard Value (~9%, letter 2026-02-17, settled via board expansion) likewise produced **no segment-margin disclosure verifiable in Step 3**. 🔴 **The correction: the richest public source on whether a TAA marketplace is a good business is not the activist deck — it is Tripadvisor's own segment reporting**, which the activists are *pointing at*, not supplementing.

**The actual numbers (Tier A — Q4 2025 and Q1 2026 earnings calls):**

| Metric | FY2025 | Q4 2025 | Q1 2026 |
|---|---|---|---|
| Experiences revenue | **US$924M** (+10%) | **US$204M** (+10%) | +8% (**+4% cc**) |
| Experiences GBV | **~US$4.7B** (+~13%) | **~US$980M** (+16%) | consol. GBV ~US$1.2B (+13%) |
| **Implied take rate** | **19.7%** | **20.8%** | — |
| Experiences adj. EBITDA | **US$91M** | **US$15M** | **−US$19M** |
| — as % of revenue | **9.8%** | 7% | **−11%** |
| 🔴 **— as % of GBV** | 🔴 **1.94%** | **1.53%** | negative |
| Supply | 425,000+ products / 70,000 suppliers | | |
| Marketing | "% of GBV flat YoY" | flat YoY despite revenue deleverage | flat YoY; paid channels peaked at **24% Jan–Feb** |
| Guidance | | **+300–400 bps margin expansion in 2026** | |
| Channel | SEO expected **<10% of GBV by end-2026**; direct/app growing fastest; **repeat bookings are the majority of GBV and the fastest-growing cohort** | | |

Company-level context (stockanalysis.com, FY2025): revenue **US$1,891M**, gross profit **US$1,746M**, **gross margin 92.3%**, operating income **US$80M**, net income **US$40M**.

> 🔴 **The one number that answers the question: Viator converts a 19.7% take rate into a 1.94% EBITDA margin on GBV. ~90% of the take rate is consumed before it reaches EBITDA.** At 425,000 products, 70,000 suppliers and US$4.7B of GBV — the largest pure-play tours-and-activities marketplace in the world, twenty-plus years in — **the business retains under two cents of every dollar booked.**

**And the seasonality is brutal in a way the annual figure hides: Q1 2026 Experiences ran a −11% EBITDA margin.** A business whose peak-quarter margin is 7% of revenue and whose trough quarter is negative **has almost no absorptive capacity for a bad season.** Note also Q1 2026 revenue grew 8% headline but only **4% in constant currency — half the growth was FX.**

**Cross-check against Klook (F-1: gross profit = 11.2% of GTV on $3.04bn GTV):**

| | Klook | Viator FY2025 |
|---|---|---|
| Gross profit / GTV | **11.2%** | revenue/GBV **19.7%**; at the group's 92.3% gross margin, gross profit/GBV **≈ 18.2%** |

**They do not agree — Viator's is roughly 1.6× Klook's.** Three reasons, and only the third is comforting:
1. **Geography and product mix.** Viator is North America/Europe-weighted, dominated by high-take third-party tours. **Klook is Asia-weighted with heavy volume in low-take transport, attraction passes and rail** — categories that carry a few points of margin, not twenty.
2. ⚠️ **Accounting is not comparable.** Tripadvisor's cost of revenue is thin (7.7% of revenue) and **excludes all sales and marketing**. Klook's gross profit line, per its F-1, sits **after payment processing and elements of fulfilment**. **Klook's 11.2% and Viator's 18.2% are not the same line item. Directional only.**
3. **The comparison that *is* clean, and the one that matters: both companies end up in the low single digits of GBV at the profit line.** Viator's **1.94% EBITDA/GBV at US$4.7B scale is the honest floor of what this business model yields.** The gross-profit gap is real but it is not where the economics are decided — **marketing is.**

`[SPECULATION, labelled — inference from Tier A figures, not a disclosed statement]` The gap between a 19.7% take rate and a 1.94% EBITDA margin is **almost entirely demand acquisition**. Every disclosed strategic move confirms this is the binding constraint: pushing **SEO below 10% of GBV**, growing **direct and app** fastest, celebrating **repeat cohorts** with "lower acquisition costs beyond their first booking", and chasing **AI channels because their conversion is "among the highest of any channel."** **All four are the same move — escape paid acquisition. Tripadvisor's AI strategy is not, at root, a product strategy. It is a CAC strategy, and the 1.94% is why.**

### 5f. rezio — "build the plumbing and sell it" as a business: the arithmetic

**The precedent, stated precisely.** rezio is the only case in this study where a marketplace productised its supplier backend as a **separately-priced, publicly-marketed SaaS whose channel manager distributes to the parent's direct competitors — GetYourGuide and Viator. Not as a concession. As a headline feature.**

**Does it work as a revenue business? Almost certainly not — and the arithmetic is not close.**
- Disclosed scale: **5,000+ operators** across TW/HK/JP/KR/SG/MY/TH/VN.
- All-PLUS ceiling: 5,000 × US$99.90 × 12 ≈ **US$6.0M ARR**.
- Implausible all-SCALE ceiling: 5,000 × US$216.60 × 12 ≈ **US$13.0M ARR**.
- Against KKday's **~US$70M Series D (2024-12-05)**.
- `[SPECULATION, labelled]` A realistic blend skewed to BASE/PLUS lands nearer **US$4–5M ARR** — a rounding error against a company that just raised US$70M, **and one that a direct sales team calling on eight markets would struggle to cover, let alone profit from.**
- rezio has **no separate legal entity** (it trades as *Kkday.com International Company Limited*), **no separately reported revenue**, and **no separate P&L in anything public.**

> **Verdict: rezio is a supply-acquisition subsidy with SaaS cost recovery, not a revenue line.** The subscription exists to make the operator feel like a customer rather than a captured supplier, and to filter out operators too small to matter. **What KKday buys for ~US$1,200/operator/year is far more valuable than the US$1,200: the operator's system of record — true availability, true cost price, true order state, live, first-party, continuously.**

**And the competitor-distribution question answers itself.** rezio *must* push to GetYourGuide and Viator. **Multi-channel distribution is the price of admission to the operator's back office.** KKday pays it knowingly, because the position it buys is **structurally better than exclusivity**: KKday sees the operator's real inventory and real cost basis in real time, and is the default, zero-friction, already-configured channel. **Every competitor reached through rezio is reached through a pipe KKday owns, on data KKday already has.**

🔴 **The transferable lesson is the inversion. The plumbing is not the product and it is not the revenue. The plumbing is the customer-acquisition cost, and the data position is the return. Anyone evaluating "build the plumbing and sell it" as a *business* is reading the precedent backwards. The only known instance of it prices at roughly cost and books no separate revenue.**

**Viator Partner API vs rezio Open API — head-to-head:**

| | Viator Partner API | rezio Open API |
|---|---|---|
| Direction | **Read the catalogue, sell it** | **Build the catalogue** |
| Scope | Global, 425k products | **One store** |
| Write access | Bookings only | **Products, prices, sessions, seats, orders** |
| Access | BD-issued key, 4 tiers, human qualification | **Self-serve, plan-gated** |
| Certification | **Mandatory, ~90 checks, gates go-live** | **None** |
| Sandbox | Yes, with a human-in-the-loop gap on manual confirmation | **Not documented** |
| Rate limits | Published (10 s rolling window) | Not documented |
| Commercial | Net rate + credit invoicing | Flat SaaS subscription |
| AI | **None** | **None** |

**Viator's four-tier access matrix — a commercial instrument disguised as a permissions table (Tier A, published endpoint × tier matrix):**

| Tier | Gets | Notably denied |
|---|---|---|
| Basic-access Affiliate | Product detail, tags, search, attractions, single-product schedules, freetext, destinations, locations, exchange rates | ❌ **all ingestion endpoints** (`modified-since`, `bulk`), ❌ reviews, ❌ `availability/check`, ❌ recommendations |
| Full-access Affiliate | + all ingestion, `availability/check`, reviews, recommendations, `suppliers/search/product-codes` | ❌ all booking endpoints |
| Full-access + Booking Affiliate | + `bookings/cart/hold`, `cart/book`, status, cancel, amendments, **and the Payments endpoint** | ❌ `bookings/hold`, ❌ `bookings/book` (single-item booking is merchant-only) |
| **Merchant** | Everything **except** the Payments endpoint | — |

🔴 **The catalogue you need to run a real storefront (`/products/modified-since` + `/availability/schedules/modified-since`) is denied at Basic. You cannot even *build* a competent catalogue without being commercially promoted first. And Merchant is denied the Payments endpoint precisely because a merchant of record processes its own money.**

## 6. Partner / compete / avoid — every connectivity and Indonesian entity

Preserved from `raw/teardown-connectivity-indonesia.md` §5, unchanged.

| Entity | Call | One-line reason |
|---|---|---|
| **GlobalTix** | **Partner (retain) — and cap the dependency** | Best verified Indonesia/Bali depth and the integration is already paid for; but MSP floor + 1.5% FX + a Travel Agent Licence + 12,000 agents make it a supplier that competes for D2's customer — use it for catalog coverage, never for B2B revenue |
| **Prioticket / Experience Technology Group** | **Partner — first choice for aggregator #2** | Only candidate that is a real aggregator, fully public Distributor API, OCTO-native, and owned by nobody who competes in Bali; **contingent on verifying Indonesian SKU depth** |
| **OCTO standard** | **Adopt** | One conformant client reaches Prioticket, Ventrata, Bókun and future suppliers — the only structural answer to single-feed concentration, and the cheapest thing a team with no engineers can buy |
| **Bókun** | **Partner (fallback only), eyes open** | Excellent public docs and OCTO support, but Tripadvisor owns it and Viator retails the same Bali SKUs — integrating discloses your supply and demand to a direct competitor |
| **Ventrata** | **Partner (opportunistic, post-OCTO)** | Not an aggregator, so it buys named attractions one contract at a time — worth doing only once the OCTO client exists and marginal cost is near zero |
| **Expedition Software (Rezdy/Checkfront/Regiondo)** | **Avoid (for now)** | Mid-consolidation under a FareHarbor co-founder, Rezdy's dev portal is bot-walled and Checkfront's docs already redirect to Bókun — no stable surface to integrate with, and no engineering capacity to absorb churn |
| **Travel Curious Group (Redeam)** | **Avoid** | No public distributor docs, no Indonesia evidence, post-acquisition surface unknown — nothing to evaluate |
| **rezio** | **Avoid** | Operator booking system, not an aggregator, and built by KKday — an Asian experiences OTA |
| **Klook** | **Compete — and do not connect** | Direct Bali retail competitor selling a Bali Pass; its only public API is supply-inbound, so "integrating" means handing your Pool B to the competitor best able to exploit it |
| **Viator (supplier API)** | **Compete** | Tripadvisor-owned, competes head-on for the Bali traveller, and the supplier API is an inbound pipe not a sourcing one |
| **TBO Holidays** | **Compete** | 200,000+ sightseeing products already sold to 25,000 agents — it is D2's competitor wearing a supplier costume, not a second aggregator |
| **Golden Rama** | **Partner (highest-value D2 test)** | Already runs the two-sided rails but its public agent portal is a hotel reservation centre — it has distribution and lacks attractions; SatuSatu has attractions and lacks distribution. Complementary, and the fastest way to validate D2 without building it |
| **Panorama Group (JTB / Destination / Wupi)** | **Partner (D3's most credible counterparty)** | Wupi is a live wholesale B2B distribution platform for tour packages and flights to low/mid-tier agents, and Panorama Destination is Indonesia's largest verifiable inbound DMC — real reach, no ticketed-attraction feed, no competing aggregator ambition |
| **Traveloka (TPN)** | **Compete — and treat as the clock** | Ships "Travel Activities" B2B with 60,000+ activities and an announced Travel Agent Booking Engine, is pooling attractions with Trip.com (June 2026), and owns the Indonesian market — this is D2's real competitor and it is building the same thing with more capital |
| **Tiket.com** | **Partner (channel, not supplier)** | Attractions in the consumer catalog, no agent-reseller API — a potential D3 demand endpoint, not a source of inventory |
| **Agoda Activities** | **Avoid (as a connectivity counterparty)** | No public activities distribution API and no self-serve path; a BD conversation with Booking Holdings is not a substitute for a shipped integration |

⚠️ **Not given a partner/compete/avoid call in Step 3:** **GetYourGuide** (studied as a design precedent, not a counterparty — but note it exposes the only *outbound* distributor API in Group 1 with a declared sandbox, and IDR is not a settlement currency on it) and **Headout** (studied as a cautionary case). **KKday** is covered via rezio. **Do not infer a call for these from the table above.**

## 7. Implications for SatuSatu — one line per company, and which direction it lands on

**These are notes with reasons, not recommendations.** The Group 1 and Viator-bracket entries below are reproduced **verbatim** from the source teardowns; they are the analytical payload of Step 3 and have not been re-worded, softened or shortened.

| Company | Direction(s) | Implication |
|---|---|---|
| **Klook** | **D0 / D1** (argues *against* D2/D3 breadth) | *"The Bali Pass is the only competitor mechanic in this teardown that SatuSatu could actually build, because it is a merchandising construct (bundle SKU + purchase/activate/redeem state machine) rather than an AI or platform construct — but Klook is running it on 40+ Bali activities against SatuSatu's 253 total SKUs and funding a 45% headline discount out of long-tail supplier margin SatuSatu does not have on Pool A, so the honest read is that this argues for a **narrow Pool-B-only pass at 27% gross where the discount is affordable** (a D0/D1-shaped move), and argues *against* trying to match Klook's breadth from a D2/D3 platform build the team has no capacity to extend."* |
| **GetYourGuide** | **D0 / D1** (internal ops); **D2** design principle only | *"The one transferable, quantified, Tier A finding is that supplier-side GenAI catalog production works and pays (8 of 16 wizard steps auto-completed, 100% rollout, ~14-minute listing creation) — but GYG spent multiple quarters and four teams on it and failed the first experiment on UX rather than model quality, so for a company with no dedicated engineering capacity this is **not a build; it is at most an off-the-shelf-LLM internal ops habit for producing Pool B listing copy faster** (D0/D1), while GYG's actual distribution posture — own the catalog record, publish a spec, let other people's software implement it, never build the channel manager — is the D2 design principle worth copying **only** if the D2 build is already committed, because the expensive half is the catalog system of record, not the API."* |
| **Viator / Tripadvisor** | **against D1; specific warning on D3** | *"**the strongest available argument against D1 at SatuSatu's scale, and a specific warning on D3.** The world's largest TAA marketplace runs a 19.7% take rate down to 1.94% of GBV, went EBITDA-negative in Q1 2026, and is being publicly dismantled by two activists over exactly that — so a horizontal catalog (D1) built on Pool A's ~10% gross / ~7% post-payments has *less* take rate than Viator and would have to beat Viator at the one thing consuming Viator's entire spread, which is paid demand acquisition. On D3: Viator's certification is ~90 published checks including a full merchandising front-end, a live test booking and cancellation, PCI DSS, and a rule that its content must be non-indexable — that is the industry default a SatuSatu reseller API would be benchmarked against **with no dedicated engineering capacity**, and IDR is not even an accepted merchant invoicing currency."* |
| **KKday / rezio** | **D2** | *"**the precedent that reframes D2, and the only one that survives contact with SatuSatu's constraints.** rezio proves a marketplace can put its supplier backend in front of operators and win their system of record, but it also proves the price of that: **~US$50–217/month, no commission, no separate entity, no separate revenue, a ceiling around US$6M ARR on 5,000+ operators** — a partner dashboard is a supply-acquisition subsidy, not a revenue line, and it only works if it distributes to your competitors too. The transferable read for D2 is that the return is the **data position on Pool B's 27%-margin direct-contracted Balinese operators** — their real availability and real cost basis — and if D2 is justified on subscription revenue instead, the only known precedent says the arithmetic does not clear."* |
| **Headout** | **D3** (maintenance burden) | *"**the cautionary case that prices the *maintenance* burden SatuSatu has no capacity to carry.** A profitable, US$130M-revenue, 400+-city company that acqui-hired an AI team in mid-2024 has shipped **no named AI feature in 26 months** and let its public API docs go **~24 months stale** — and Headout has engineers. With **zero dedicated engineering capacity**, SatuSatu should read a stale API repo as the *expected* end state of any D3 build it undertakes, and weight buy/partner accordingly; the AI posture (Dabble's computer-vision/spatial bet, not an LLM bet) is also the one direction in this teardown that nobody has validated."* |
| **GlobalTix** | **D1 (retain) · blocks D2/D3 as revenue** | *"It is a competent, well-documented, Indonesia-deep connectivity vendor whose commercial terms are actively hostile to a small reseller's margin, and whose corporate form makes it a competitor for the exact customer D2 is being built for. **SatuSatu should keep it, use it as the catalog-coverage utility it is, and stop expecting it to be a route to B2B revenue.**"* Additionally: the **MSP floor + non-exclusive Pool A SKUs simultaneously retailed by Klook, Viator and GetYourGuide** mean *"the ~10% gross / ~7% net Pool A band is not a market outcome SatuSatu can optimise its way out of. **It is a contractual box.**"* |
| **Prioticket / Experience Technology Group** | **D1 / D3** | Rank 1 for aggregator #2: the only candidate that is (a) a genuine aggregator, (b) publicly and completely documented with a purpose-built **Distributor API**, (c) OCTO-native, and (d) **owned by nobody who competes for the Bali traveller.** *"For a team with no engineering capacity, 'docs are open, SDKs exist, and there is a standards path' is worth more than raw catalog size."* ⚠️ *"**If Prioticket's Indonesia depth is thin, this recommendation collapses** — a neutral aggregator with no Bali supply solves nothing."* |
| **OCTO standard** | **D3 architecture** | `[SPECULATION, but well-founded]` *"For a team with no engineers, the highest-leverage move is to build one OCTO-conformant consumer rather than a second bespoke aggregator adapter… **This should be a named decision in the D3 architecture, not an implementation detail.**"* |
| **Bókun** | **D1 / D3 fallback** | Best-documented alternative and OCTO-capable — *"Take it only if Prioticket's Indonesia depth fails and the catalog gain is large enough to be worth telling Viator's parent what you sell."* |
| **Ventrata** | **D3, post-OCTO** | *"Ventrata stops being 'the wrong shape' and becomes 'a marginal-cost addition once the OCTO client exists.'"* |
| **Expedition Software (Rezdy / Checkfront / Regiondo)** | **D1 / D3** | *"**Do not integrate a platform that is mid-consolidation with no announced unified API**"* — and with no engineering capacity, forced migrations are expensive. |
| **Travel Curious Group (Redeam)** | **D3** | *"Insufficient evidence to shortlist. **Drop unless a specific need for barcode clearing emerges.**"* |
| **TBO Holidays** | **D2** | *"**TBO is a competitor for D2, not a supplier for it.** It already sells 200k sightseeing products to 25,000 agents. Feeding SatuSatu's catalog from TBO means reselling, at a fourth layer, a product TBO offers SatuSatu's target agents directly."* |
| **Traveloka (TPN)** | **D2 — the clock** | *"**Traveloka is assembling exactly D2 — with 60,000+ activities, Indonesian market ownership, and a balance sheet.**"* Treat as the timing constraint on D2, not a distant threat. |
| **Golden Rama** | **D2 — the cheapest validation** | *"It has the rails and is not putting attractions on them… **it has distribution and lacks attractions; SatuSatu has attractions and lacks distribution. Complementary, and the fastest way to validate D2 without building it.**"* |
| **Panorama Group (JTB / Destination / Wupi)** | **D3** | *"D3's most credible counterparty… real reach, no ticketed-attraction feed, no competing aggregator ambition."* |
| **Tiket.com** | **D3 (demand endpoint)** | *"A potential D3 demand endpoint, not a source of inventory."* |
| **Agoda Activities** | **D3** | *"A BD conversation with Booking Holdings is not a substitute for a shipped integration."* |

### 7a. The four cross-cutting reads that no single company owns

1. **Every B2B surface in this category is pre-LLM.** GYG, Viator, rezio, GlobalTix and Headout all ship connectivity with **zero AI, no MCP, no semantic search, no agent manifest.** *"The AI is in the storefront, not in the pipe."* **The B2B layer of this category is uncontested on AI — which is either the opening or the reason nobody bothered. Step 3 does not resolve which.**
2. **Nobody has shipped AI into pricing or payments/fraud.** Everyone scores ~1 and ~0–1 respectively — **the two functions that most directly move gross margin.** *"That is a real gap in the category, not just in these two companies."*
3. **The only decisively shipped-and-quantified GenAI in the whole value chain is supplier-side catalog production** (GYG, 2025-04-23, 8/16 wizard steps, 100% rollout, ~14-minute listing). **The single most transferable finding in Step 3 — and per §7 it is an off-the-shelf-LLM ops habit at SatuSatu's scale, not a build.**
4. **Three independent lines of reasoning converge on Pool B:** exclusivity (it is the only inventory SatuSatu holds alone), margin (27% vs ~7%, a **3.9×** ratio per D2 rupiah), and D2 viability (the only pitch no incumbent can match). **And Pool B's blocker — real-time availability at the operator — is simultaneously the moat and the gate, with SatuSatu's own supplier selling the operator a solution for USD 100 + 3%.**

## 8. Open items and unresolved conflicts

### 8a. Conflicts surfaced — not silently resolved

| # | Conflict | Sources in tension | Status |
|---|---|---|---|
| **C1** | **Headout → Dabble acquisition date.** `00-scope.md` §4 says **"~2026-06-17"** (Headout's own newsroom). Step 3 says **mid-2024, announced May 2024**. | Scope §4 (A) vs `teardown-viator-kkday-headout.md` §0 (A) | ✅ **Resolved in favour of mid-2024.** Headout's own press-coverage rail dates the Skift and Moneycontrol pieces "May 2024"; PhocusWire/YourStory/Tracxn all 2024-05; Headout's own Jan-2025 release says "in mid-2024". **The 2026 date is a re-crawl artifact of the newsroom CMS asset path (`/content/images/2026/07/`).** Consequence: the "no shipped output" window is **26 months**, not 1. |
| **C2** | **Viator supply scale.** 10-K: **300,000+ experiences / 50,000+ operators**. Q4 2025 call: **425,000+ products / 70,000 suppliers**. | Scope §4 (A, 10-K) vs Q4'25 call (A) | ✅ **Superseded.** Use 425k/70k. **Keep the 10-K figure only if citing the 10-K date.** |
| **C3** | **rezio "built in-house."** | Scope §4 vs `teardown-viator-kkday-headout.md` §0 | ✅ **Stronger than in-house — same legal entity.** `rezio.io/about` names the operator as "Kkday.com International Company Limited (Taiwan)", est. 2014-05-13, capital NT$1bn, rep. CHEN MING MING. **rezio is a product line of the KKday company itself, not a subsidiary.** |
| **C4** | **rezio launch year: 2019 vs 2020.** | PATA item (URL now 404s) vs rezio's own live site *"自 2020 年上線以來"* + KKday's PRNewswire | ✅ **Use 2020.** Two live Tier A first-party statements beat one dead secondary. **Footnote the 2019 anniversary claim.** |
| **C5** | **GlobalTix self-reported scale disagrees with itself.** Homepage **150,000+** experiences vs `/resellers/` **100,000+**; Series B release **12M tickets/yr** vs homepage **25M/yr**. | GlobalTix's own pages, all A-as-claim, **unaudited** | ⚠️ **Unresolved by design.** **Treat 150,000 as a marketing ceiling and 100,000 as the sourcing-relevant figure** — the reseller page, the one a buyer is sold on, carries the lower number. **The only interesting movement is 12M → 25M in ~21 months.** |
| **C6** | 🔴 **GYG's connectivity position: vulnerability or control?** `00-scope.md` §4 Group 3: *"GYG routes supply through the systems of its two largest competitors. **That is a nameable strategic vulnerability and Step 3 should treat it as one.**"* `teardown-klook-gyg.md` §4: *"GYG is **not** a tenant. It owns the ingestion contract"* — authors the spec, runs certification, publicly grades Bókun above FareHarbor, keeps the catalog as system of record, built an AI wizard around the content dependency, dilutes across 9+ connectors. **Evidence of friction, cost or strategic conflict: none found publicly.** | Scope §4 (A) vs Step 3 teardown (A) | ⚠️ **Genuinely unresolved, and both readings rest on Tier A evidence.** Step 3 found **no public friction signal in either direction** and explicitly flags **"unverified whether GYG pays anything per booking — do not assert."** The two readings differ on interpretation, not on facts. **Do not let a downstream recommendation inherit only one of them.** |
| **C7** | 🔴 **Viator certification check count.** Step 0 anchor: **"~60 checks, 9 categories, no fee, but a staffed capacity-constrained queue."** Step 3 teardown: **"Mandatory, ~90 checks, gates go-live"** and separately **"~90 published checks"**. | Step 0 anchor vs `teardown-viator-kkday-headout.md` §2.1/§5 | ⚠️ **Unresolved numerically.** Both describe the same two-form programme emailed to `affiliateapi@tripadvisor.com` with "a couple of days" per round. **Step 3 does not state a category count and does not state whether a fee applies** — the "9 categories" and "no fee" halves are **not covered in Step 3**. The "staffed capacity-constrained queue" reading **is** consistent with Step 3 ("human review", iterative rounds). **Do not present 60 and 90 as agreeing. Recount from the live certification pages before either number appears in a recommendation.** |
| **C8** | **Klook Bali Pass headline discount ratcheted, and the pool size does not match the count.** Klook blog 2025-02-18: "save up to **42%**". Live PDP 2026-07-26: "save up to **45%**". PDP claims "over **40** top activities"; **33 inclusions were actually readable off the live PDP.** | Both Klook, both A, 17 months apart | ⚠️ **Not an error — a dated change plus an unresolved count.** Report both dates. **The 40+ vs 33 gap is unresolved** (the balance may be JS-rendered); do not assert either as the pool size. |
| **C9** | 🔴 **Klook 11.2% gross profit/GTV vs Viator ≈18.2% gross profit/GBV — Viator's is ~1.6× Klook's.** | Klook F-1 (A) vs Tripadvisor segment reporting (A) | ⚠️ **They do not agree, and the accounting is not comparable.** Tripadvisor's cost of revenue is thin (7.7% of revenue) and **excludes all sales and marketing**; Klook's gross profit line sits **after payment processing and elements of fulfilment**. **Not the same line item — directional only.** The clean comparison is that **both land in the low single digits of GBV at the profit line**; Viator's **1.94% EBITDA/GBV at US$4.7B is the honest floor of the model.** |
| **C10** | **rezio pricing page contradicts itself.** Monthly US$49.90 / 99.90 / 216.60 vs columns labelled annual-plan-monthly at US$59 / 119 / 259 — **the "annual" rates read higher.** | rezio.io/pricing (A, live 2026-07-26) | ⚠️ **Internally contradictory. Quote the tier structure and the ~US$50/100/217 ladder; do not assert an annual discount.** |
| **C11** | **The activist filings are weaker on unit economics than the brief anticipated.** Palliser's campaign is a **sum-of-the-parts valuation argument, not a margin disclosure**; Starboard produced no verifiable segment-margin disclosure. | `teardown-viator-kkday-headout.md` §4.1 | ✅ **Corrected.** **The richest public source is Tripadvisor's own segment reporting**, which the activists point at rather than supplement. |
| **C12** | ⚠️ **Viator "AI-assisted sign-up… more than doubled sign-up conversion" — segment attribution.** The quote sits in a passage that also discusses TheFork restaurant acquisition. | Q1 2026 call (A) | ⚠️ **Unresolved. Metric verified, segment not.** Could be Viator supplier sign-up **or** TheFork restaurant sign-up. **This is the *only* supply-side AI shipment at Tripadvisor and it is the one whose attribution is ambiguous.** |
| **C13** | ⚠️ **TheFork's "~40% of B2C customer support queries handled through AI" has no Viator equivalent.** | Q1 2026 call (A) | ⚠️ **Do not transfer this number to Viator.** No Viator CS-deflection figure was disclosed. |
| **C14** | **GlobalTix Partner API 3.0 surface churn and doc defects.** Two endpoints already deprecated **inside one published version** (`ticketType/get`, `transaction/revoke`); cancellation and revoke are **`GET` verbs mutating state**; STG server labelled `stg-api.globaltix.com` but **hyperlinked to `uat-api.globaltix.com`**; Partner Portal link is `href="https://"`. | `apiconnect.globaltix.com` (A, live) | ⚠️ **Recorded as-is. With no engineering capacity, forced migrations are expensive.** |
| **C15** | **"Tripadvisor moved Bókun toward 'a fraction of a percent per booking'."** | Step 0/Step 2 anchor | 🔴 **NOT re-evidenced in any of the three Step 3 teardowns.** The neutrality-selling (Palisis + Prioticket) and OCTO-commoditisation halves of that anchor **are** evidenced in Step 3; **the Bókun per-booking rate is not. Re-verify before use.** The ~5.7% middleware EV/processed-volume figure is **arithmetic on Step 3's own numbers** (>$40M / >$700M, Travel Curious → Redeam, 2025-07-17), **not a disclosed multiple.** |
| **C16** | **Klook ≈33/80 scores *above* GetYourGuide ≈30/80 — and that ordering is not meaningful.** | §0 evidence-base asymmetry | ⚠️ **Scores are not commensurable across companies.** GYG's is demonstrated from ~40 dated Tier A engineering posts; Klook's is asserted from co-marketing newsroom posts and trade-press interviews with **no engineering blog at all** (`klook.tech` returns `getaddrinfo ENOTFOUND`). **Do not read the 3-point gap as Klook being ahead.** |
| **C17** | ⛔ **Accel-KKR acquired Rezdy and merged the three (asserted by `businessmodelcanvastemplate.com`).** | Tier C SEO trap | ✅ **FALSE — refuted.** Accel-KKR's own portfolio page (A) lists none of them. Expedition Software's backers are **Vertica Capital Partners + Bailador (ASX:BTI)**. |
| **C18** | ⚠️ **"Independently-owned" in the connectivity sector.** | Rezdy's own 2023-08-08 blog | **Tier A as a quote, Tier C as a fact.** It now means *"PE-owned rather than OTA-owned"* — and **Expedition's PE-owned independence is run by the founders of the Booking-owned incumbent.** Palisis + Prioticket now claim the same superlative. **Repeat neither unqualified.** |
| **C19** | **SatuSatu's own Pass spec self-contradicts** — "40+ Top Experiences" on pricing cards vs "50+ curated attractions" in benefits. | `00-scope.md` §2.5 | ⚠️ **Subject-side, but load-bearing for the D0-vs-Klook-Bali-Pass comparison** in §5d. **Resolve internally before any pass-vs-pass claim is made.** |
| **C20** | **ASITA Bali chairman's arrival-share claims (99.3% / 65%) vs 353 licensed Bali members.** | Chairman's claims (B/C) vs `asita.id` REST API (A, primary) | ✅ **Resolved.** The claims describe **travellers and include foreign agents/OTAs**, implying ~19,500 or ~11,600 travellers per Bali agency per year. **Not credible as member-served figures. Do not use either percentage to size D2.** |
| **C21** | **GlobalTix price-stack sample geometry** (`originalPrice 20 · nettPrice 5 · minimumSellingPrice 14 · recommendedSellingPrice 14`). | GlobalTix docs (A) | ⚠️ **A synthetic test product. NOT representative of live economics — do not quote it as a real spread.** It establishes only the *shape*: **MSP == RSP**, which functionally converts a "recommendation" into a fixed price. |

### 8b. Open items — unverified, and what would close each

| # | Item | Why it matters | Obtainable? |
|---|---|---|---|
| **1** | 🔴 **GlobalTix Indonesian and Bali SKU counts, and matched `nettPrice` vs `minimumSellingPrice` vs Klook/Viator live retail spreads** | Converts the Pool A margin band from `[INFERENCE]` to `[VERIFIED]`; sizes the real overlap with SatuSatu's 253 SKUs | 🟢 **Yes — four API calls with credentials SatuSatu already holds** (§5c gives the exact calls). **Highest value per hour on this list** |
| **2** | **Prioticket / ETG Indonesian and Balinese SKU depth** | **The entire rank-1 second-aggregator recommendation is contingent on it** | 🟢 Yes — ask ETG for a country-level product count for `ID` and a Bali/Ubud breakdown, and compare against GlobalTix's |
| **3** | **What Golden Rama's agent portal sells post-login** | Decides whether Golden Rama is D2's **best partner or its closest competitor**. The public landing page is a "Hotel reservation Center"; post-login categories are UNVERIFIED | 🟡 Requires an agent account. **The single most valuable remaining Indonesian check** |
| **4** | **Whether GlobalTix will settle in SGD, and what `directContractPrice` unlocks** | 1.5% FX and a possible better rate tier — **the cheapest margin available** | 🟢 Yes — one account-manager conversation; §5c gives the vocabulary to ask in |
| **5** | **Per-agency booking volumes and ATV in Indonesia** | The missing input in the D2 break-even inequality | 🔴 **Not public.** No BPS, ASITA or association source publishes it. **Use SatuSatu's own Pool A / Pool B basket data — a better proxy than anything public** |
| **6** | **TBO Tek listed financials (segment split, sightseeing revenue)** | Sizes the only real incumbent competitor for agent-facing attractions | 🟢 Yes — Indian exchange filings, **not pulled this step** |
| **7** | **GlobalTix uptime / SLA / incident history** | Concentration risk on the incumbent feed is **unpriced** | 🔴 **No status page, no published SLA, no uptime history, no post-incident reports found. Ask for contractual SLA terms directly** |
| **8** | **GlobalTix departed customers** | Would test stability of the incumbent relationship | 🔴 `[UNVERIFIED]` — **none identified. Do not infer stability from the absence** |
| **9** | **Klook Bali Pass per-tier price ladder and full T&C** | The pass economics SatuSatu's D0 is benchmarked against | 🟡 JS-rendered; **Klook blocks non-browser UA with HTTP 403 — needs a headless browser, not curl/WebFetch** |
| **10** | **Bali Pass 30-day validity** | The float/breakage mechanic | 🟡 Confirm at **Tier A from the PDP T&C block** (currently B/C consistent) |
| **11** | **"Up to 2 super saver activities" sub-tier in the Bali Pass** | Would confirm a two-class inventory design | 🟡 **Tier C only — confirm or drop** |
| **12** | **GYG Partner API commercial terms** — net vs commission split, MasterBill credit terms, tier thresholds, rate parity | Whether GYG is a viable D3 demand endpoint at all | 🔴 **Sales-gated; not obtainable from public sources** |
| **13** | **GYG voucher / ticket delivery** | Absent from the public spec — no ticket/voucher/barcode/QR/PDF endpoint | 🟡 **Is it a private extension, or does GYG simply not redistribute redemption artefacts?** Unresolved |
| **14** | **GYG Supplier / Connectivity API spec** | Whether the inbound contract is inspectable at all | 🟡 **No public OpenAPI found; only help-centre prose. Confirm whether a spec is published to certified integrators only** |
| **15** | **Klook search / ranking ML** | Klook's catalog-ops score is carried by localisation alone | 🔴 **No public artefact at all. Genuinely unknown** |
| **16** | **Whether GYG pays Bókun / FareHarbor anything per booking** | Decides whether §4c is "control" or "rent" — see conflict C6 | 🔴 **Unverified. Do not assert.** In this category connectivity vendors typically charge the *supplier* |
| **17** | **KKday's consumer app AI surfaces** | KKday/rezio scores 0–1 unverified across the entire consumer half of the spine | 🟡 **Not inspected in this pass. Record as unverified, not as zero** |
| **18** | **Headout tiering, credit terms, certification, sandbox and time-to-first-booking** | The cautionary case cannot be quantified | 🔴 **All unverified — there is no maintained public artefact to read.** *That absence is itself the finding* |
| **19** | **Viator's own AI CS deflection rate** | Only TheFork's ~40% was disclosed | 🔴 **Not disclosed. Do not transfer TheFork's figure** |
| **20** | **Traveloka's consumer-side AI assistants** | Traveloka is scored **1** on B2B AI; consumer surfaces exist but were not checked | 🟡 **Not verified this step** |
| **21** | **Viator time-to-first-booking, actual** | Sizes the D3 benchmark | 🟡 Step 3 estimate is **weeks to months**, gated on a human account manager throughout — **no self-serve path exists at any step.** Unverified precisely |
| **22** | **GYG actual time-to-first-booking** | Sizes the D3 benchmark from the other end | 🟡 **Unverified.** Technically an engineer could hit the sandbox in an afternoon; **TTFB is gated by the commercial conversation, not the integration** |

---

*End of consolidated Step 3 deliverable. Nothing above has been rounded, softened, or promoted across a status marker. Where Step 3 did not look, the cell says so.*

