Chapter 4.5 — Non-Air Products
1. Purpose
This chapter covers travoBooks' handling of non-air travel products — hotels, tours, transfers, insurance, visa services, car rental, rail, and bundled packages. These products differ from air in their settlement mechanics, refundability profiles, commission structures, and principal-vs-agent classification, and thus require distinct treatment in the accounting and operational model.
2. Why it matters
- Non-air typically delivers higher commission margins than air (often 8-25% vs 0-5% for air).
- Multiple non-air suppliers per partner — each with its own contract structure, settlement cadence, and reconciliation challenges.
- The principal vs agent decision is more nuanced than in air (where it's almost always agent for BSP-settled tickets).
- Refundability rules vary wildly — hotel non-refundable rate vs flexible rate vs partner-negotiated rate all have different treatment.
3. Product taxonomy
| Product | Subtypes | Typical settlement |
|---|---|---|
| Hotel | Bedbank, direct chain, OTA-as-supplier | Net-pricing (principal) or commission (agent) |
| Tour | Day tours, multi-day packages, cruises | Mostly principal with package operator markup |
| Transfer | Airport transfer, intercity | Agent or principal per supplier |
| Insurance | Travel insurance | Agent (commission only) |
| Visa | Visa processing service | Service fee + supplier pass-through |
| Car rental | Self-drive, chauffeur | Agent (commission) or principal (markup) |
| Rail | Eurail, JR Pass, local | Agent or principal |
| Activities | Tickets, experiences | Mostly principal (markup) |
| Package | Multi-product bundles | Principal — entire package is your product |
4. Principal vs Agent — non-air specifics
The IFRS 15 / ASC 606 test (control of the good/service before transfer) is applied per supplier per product.
4.1 Hotel — typical patterns
Agent (commission-only): - Supplier sets price; partner sells at that price. - Commission paid by hotel post-stay. - Partner does not bear inventory risk. - Revenue = commission only.
Principal (net + markup): - Bedbank gives net rate; partner marks up. - Customer billed marked-up rate. - Bedbank invoices net rate post-confirmation. - Partner bears price-fluctuation risk in markup margin. - Revenue = gross; cost = net.
The platform's supplier_product_commercial_model field per supplier per product type drives this.
4.2 Tour — typically principal
Tour operators usually supply net rates; partner markets up; partner is the customer-facing entity. Revenue grossed up; cost recorded.
4.3 Insurance — agent
Always agent — insurance is a regulated product; the insurer is principal. Partner earns commission.
5. Hotel booking lifecycle
6. Hotel JE patterns
Agent — pay at hotel
Customer pays hotel directly; partner earns commission post-stay.
At booking: no financial JE (no money has flowed).
Post-stay (commission received):
Debit 1013 Bank
Credit 4021 Hotel Commission Revenue
Agent — pay at partner (collect for hotel)
At booking with payment:
Debit 1013 Bank X (full)
Credit 2021 Funds Held — Hotel Supplier X − C
Credit 2032 Deferred Hotel Commission C
Post-stay (commission earned):
Debit 2032 Deferred Hotel Commission C
Credit 4021 Hotel Commission Revenue C
Payout to hotel:
Debit 2021 Funds Held — Hotel Supplier X − C
Credit 1013 Bank X − C
Principal — net + markup
At booking:
Debit 1101 AR — Customer G (gross to customer)
Credit 2002 AP — Hotel Supplier N (net to supplier)
Credit 2034 Deferred Hotel Markup M (markup; G − N)
Credit 4031 Service Fee F (if any)
Service date (stay night):
Debit 2034 Deferred Hotel Markup M
Credit 4022 Hotel Markup Revenue M
Debit 5012 Hotel Supplier Cost N
Credit 1191 Pre-paid to Supplier N (if pre-paid)
7. Tour JE patterns
Most tours are principal. Pattern parallels hotel principal with a longer recognition curve if multi-day: - Multi-day tour spanning periods → recognise pro-rata per day. - Operator typically requires deposit at booking + balance pre-departure. - Operator commission recall may apply on customer-initiated cancellation per supplier T&Cs.
8. Insurance — agent
Simple:
At booking:
Debit 1013 Bank P (premium full)
Credit 2003 AP — Insurance Supplier P − C
Credit 2033 Deferred Insurance Commission C
Policy effective (typically immediately):
Debit 2033 Deferred Insurance Commission C
Credit 4023 Insurance Commission C
Payout to insurer per cycle:
Debit 2003 AP — Insurance Supplier P − C
Credit 1013 Bank P − C
9. Bundled packages
A package combines multiple components (flight + hotel + transfer). Two treatments:
9.1 Package as single product (principal)
Partner is the package operator; sells the package at a single price; sources components. - Revenue: package price (gross). - Cost: sum of component net costs. - Recognition: at service-date of first component, or pro-rata across components per accounting policy.
9.2 Package as bundled distinct products
Each component is a distinct performance obligation (IFRS 15); allocate package price across components by stand-alone selling price; recognise component-by-component.
The platform supports both via package.recognition_method setting.
10. Refundability variance
Non-air refundability is more variable than air: - Hotel: 24h-prior-to-check-in flexible vs non-refundable. - Tour: deposit non-refundable; balance refundable until N days prior; full payment at less than N days non-refundable. - Insurance: cooling-off period only. - Activity: typically non-refundable within N hours.
Captured per booking at confirmation in booking_refundability_policy JSON; surfaced in refund quote computation.
11. Inventory & availability
Non-air inventory mechanics differ: - Hotel: real-time availability via supplier API; allotment-based for direct chain. - Tour: scheduled departures with seat counts. - Insurance: rate sheets — no inventory. - Activity: timed slots.
The platform doesn't hold inventory; it queries suppliers in real time and caches offers briefly.
12. Vouchers & confirmations
Non-air products usually deliver as vouchers (PDF + email) — not e-tickets. The platform's voucher generation: - Standard template per supplier + per partner branding. - Embedded barcode/QR for redemption. - Supplier reference + travoBooks reference both shown. - Multi-language.
Stored in S3; surfaced in customer comms and booking detail.
13. Module dependencies
| Direction | Module |
|---|---|
| Depends on | Customer, Supplier, Pricing, Accounting |
| Depended on by | Reporting, Reconciliation, Commission |
14. Database tables touched
| Table | Role |
|---|---|
bookings.product_type |
AIR / HOTEL / TOUR / INSURANCE / ... |
booking_hotel_details |
Hotel-specific |
booking_tour_details |
Tour-specific |
booking_insurance_details |
Insurance |
booking_ancillaries |
Optional ancillary attached to any product |
vouchers |
Generated voucher artifacts |
15. Common pitfalls
- ⚠️ Treating principal as agent (or vice versa). Misclassifies revenue. Document the decision per supplier per product.
- ⚠️ Forgetting refund/cancellation policy snapshot. Policy may change post-booking; the booking's policy is the one at confirmation time.
- ⚠️ Pro-rata recognition for multi-day tours. Mid-month tours straddle periods; pro-rata is correct.
- ⚠️ Insurance treatment as principal. Almost always agent; revenue grossed-up is wrong.
- ⚠️ Voucher resend abuse. Throttle resends.
- 🔒 PII in voucher attachments — same protection as e-tickets.