01 Customer Context
edit any field; the ranking re-scoresBusiness priorities always total 100%
Moving a slider re-scores every offer with the same Jev reading. No model is called.
02 Conversation
03 Recommendations
Build a combination tick what you want in the package
Fare
Add
Ranked combinations
How the score is calculated
A combination is one fare (or no sale at all), an optional
miles payment on an upgrade, and any subset of the add-ons
that fare can carry. Every valid one is generated and scored;
nothing is hand-written.
final = 100 × ( wcv·customerValue + wconv·conversion
+ wrev·revenue + wloy·loyalty )
match = base utility of the fare
+ Σ over every part in the package:
weight × (score signal − 0.5)
weight × P(yes)
0.25 × trip-priority + 0.15 × intent
+ 0.8 × P(asked for this cabin by name)
+ 0.45 × fit of anything the fare already includes
− 0.12 per add-on the customer showed no interest in
− 0.6 × P(refusing extras), on every upsell
− 1.2 × (1 − affordability) × min(1, unasked $ ÷ 250)
customerValue = match ÷ best match in this customer's set
affordability = Σ P(price level) × min(1, budget[level] ÷ unasked $)
budgets by level: any · $130 · $45 · $0
unasked $ = price, less 75% of anything asked
for by name (that price is not a surprise)
conversion = ( 0.10 + 0.35·readiness + 0.55·affordability
+ 0.2·(upgrade propensity − 0.5) for upsells )
× 0.85 ^ (unwanted add-ons in the package)
× (1 − 0.8 × service mode)
"No sale" converts at the service-mode rate.
service mode = P(complaint) + P(cancel or refund)
+ 0.8 × P(special assistance)
revenue = conversion × ( fare margin + Σ add-on margin ×
how much the customer wanted it ), ÷ the best in
the set. An unasked add-on earns nothing.
loyalty = strongest gesture in the package
× (0.5 + 0.5·loyalty value)
+ service recovery × P(complaint)
a perk only earns loyalty if it was wanted
Add-ons carry no base utility, so stacking them cannot
inflate a score. Eligibility is a hard rule from the record,
applied to parts before any combination is built.
Click any package to see its own terms.