Docs / TeoScore / Ground Experience & Ancillaries
Ground Experience & Ancillaries (V13–V15)
Category 5 — the on-the-ground experience: bag economics, lounge access, and getting through security faster.
How the category aggregates
Baggage (V13) is the universal anchor and never drops; lounge (V14) and fast-track (V15) are profile-dependent. All three active → V13×0.50 + V14×0.25 + V15×0.25; V13 + one → V13×0.65 + other×0.35; V13 alone → just V13. V13, V14 and V15 are all currently disabled, so this category is not scored today at all: V13 is pinned to a neutral 50, V14 and V15 always drop, and the category carries zero applied weight so that pinned 50 never reaches a total. V14 was switched on 2026-08-31 and off again 2026-09-02, pending an integrity check of the lounge directory and a decision on the logic.
Measures — whether your bags fly free, split into carry-on (V13a) and checked (V13b). Currently disabled, always neutral.
Disabled 2026-08-04 (V13_DISABLED)
Reason: not enough data validated. Confirmed before implementing — carryOnPolicy, freeBagAllowance, checkedBagFee, and freeBagBonus are only ever populated by a local test-fixture data path, never by the real Duffel/seats.aero normalizers, so every real option was already landing on the cabin-class-proxy fallback. The tier math below is intact for re-enabling; it just isn't contributing to any score right now.
V13a carry-on: included → 100 · fee → clamp(100 − fee×1.5) · unknown → cabin proxy 90/80/70 V13b checked: free ≥ needed → 100 · else max(0, 100 − (needed−free)×fee×2) Combined: carry-on-only → V13a · else V13a×0.40 + V13b×0.60
Data & accuracy — reads carryOnPolicy/carryOnFee and freeBagAllowance/checkedBagFee, plus an enrichment-resolved freeBagBonus (elite/card). “Needed” checked bags come from bag preferences (default 1). When policy/fee is unknown it uses a cabin-class proxy.
Gotchas — disabled; always returns a neutral 50 regardless of bag policy or preferences.
Measures — whether you can get into a lounge during a connection.
per connection airport: lounge accepts one of your access paths → 100, else 0 V14 = average across connection airports
Data & accuracy — activates only with a connection and a qualifying access path (business/first cabin, or an enrichment/profile flag proxying elite status or a lounge-program card). Reads details.loungeAccessByConnection (per-connection booleans), else a single itinerary flag. Origin/destination airports are excluded.
Gotchas — drops on nonstops or when you have no qualifying access path. Persona does not gate it — it's credential-based. Qualified-but-no-lounge scores 0, not a drop. Full elite/Priority-Pass path resolution is still being expanded.
Measures — whether your trusted-traveler credentials speed you through security/customs. Currently disabled, always drops.
Disabled 2026-08-04 (V15_DISABLED)
Deferred for initial launch pending a reliable data pipeline for airport security-program configurations. Confirmed before implementing — preCheckByAirport/clearByAirport/globalEntryByAirport and their uniform-flag fallbacks are never set outside test fixtures, so the engine always fell back to assuming every airport supports every program you hold. No curated per-airport reference table exists yet. Separately (not fixed here): your real trusted-traveler credentials are already threaded into the enrichment pipeline but currently get dropped before reaching the scoring engine — a bug independent of the airport-data gap. The formula below is intact for re-enabling; it just isn't contributing to any score right now.
per US security airport: +50 if PreCheck or Global Entry, +30 if CLEAR +20 once if Global Entry at the re-entry airport V15 = min(100, perAirportAverage + globalEntryBonus)
Data & accuracy — activates when you hold ≥1 of PreCheck/CLEAR/Global Entry and the itinerary touches a US airport. Per-airport support reads preCheckByAirport/clearByAirport/globalEntryByAirport maps (falling back to an itinerary-wide flag).
Gotchas — disabled; always drops regardless of credentials or itinerary. International fast-track programs aren't scored yet either (data-reliability blocker).