Upsell & Ancillary Revenue · Documentation
User Journey
The end-to-end path through Upsell & Ancillary Revenue, from trigger to outcome.
← Upsell & Ancillary Revenue- 1
Stage → personalised offer → accept
On mount, `listOffers` filters the catalog to the current stage and ranks it: +2 per offer tag that matches a guest interest, a small bonus for facility-aligned tags, and a +1 boost on higher-value offers for Gold/Platinum members. The metered `pitchOffers` then runs once to produce the personalisation rationale. The guest accepts via `acceptOffer`.
- 2
Acceptance → revenue + analytics
Acceptance records an offer line against the booking and emits `offer.accepted`. Post-booking lines roll into `ancillaryRevenue()` (revenue attribution); pre-booking acceptances are tracked by the parent cart. That attributed revenue feeds #23 Executive BI, and the app reads #04's personalisation context and #12's loyalty tier — so the upsell is consistent with what the guest browsed and earned.