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:
- GYG authors the spec and runs certification.
integrator.getyourguide.comis a live Integrator Portal.getyourguide.supply/connectivity/connectivity-partnersruns 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." - GYG publicly grades its competitors' products — §4b.
- 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.
- 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%.
- 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→ headerX-WP-Total: 5222GET /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:
- 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.
- 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
minimumSellingPricefrom undercutting. Reselling Pool A to agents is negative-value. - 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.
- 🔴 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.
- ⚠️ 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).BaliiscityId: 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:
- 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.
- ⚠️ 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.
- 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
- 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.
- 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."
- 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.
- 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.