← Back to Index
Jumpseat Flight Finder — Domain-Control Data-Gap Analysis
Scoping of the Jumpseat Flight Finder screen set (search · results · saved/recent ·
saved flights · airline policies). Documentation only; no presentation work.
Figma file R6hPjBdjSIn6946qTJasUC · 9 nodes — search 4713:25117/25163 ·
results 25168 · recent 25203 · saved searches 25253 · saved flights 25365 ·
policies 25303/25321/25339. Source: Figma MCP + codebase
(RestService, Data/Models/FlightSearch/*, Jumpseat VMs) · Branch docs/jsff-screen-data-gap.
Headline — data-complete. Jumpseat Flight Finder already has a rich data layer:
FlightSearchAsync → FlightSearchResponse (Flight/Leg),
GetFlightSearchAirportsAsync → AirportLocation,
GetAirlineJumpseatPoliciesAsync → PolicyViewModel,
GetJumpseatAirlinesAsync → Airline, plus FindFlightInfoAsync for detail.
No backend data gaps. The work is the presentation backlog (the new flight card
scaffold + variants, plus form/pill/expander controls) and a few confirms (saved/recent persistence,
flight-status notification subscription).

Search (25117)

Results · flight card (25168)

Saved Flights · swipe (25365)
1 · Screens & controls
- Search (25117/25163) — sub-nav tabs (Flight Finder · Airline Policies · Etiquette · Mission); trip-type pills (Nonstop / One Stop / Multileg); Origin & Destination
Master Form Field (+ swap); Depart date; Advanced Search expander; Search button; secondary buttons (Recent Searches · Saved Searches · Saved Flights).
- Results (25168) — nav summary ("DEN to MIA • Multileg • Mon Apr 20") + sort/filter; 6× flight card (117).
- Recent Searches (25203) — list of
flight card-saved & recent searches (61, compact) with swipe → favorite.
- Saved Searches (25253) — same compact card variant.
- Saved Flights (25365) —
flight card-saved flight (118) with swipe → notifications + delete.
- Airline Policies (25303 search / 25321 / 25339) — search
Master Form Field + airline list → policy detail.
2 · flight card — data shape (marquee new scaffold)
From the results & saved-flight masters: a flight option row (345×117).
- Origin / Destination codes (e.g. DEN / MIA) —
Leg endpoints
- Depart / Arrive times (12:00 / 16:19) —
Leg times
- Per-leg carrier + flight # (DL 302 · AA 1753 · AA 1186) —
Leg carrier/number, OperatedByText
- Layover chips (DTW 4h 35m · ORD 8h 46m) —
Leg layovers (+ IsLayoverInvalid)
- Date (Fri April 24) + total duration / Multileg (6h 19m) —
Flight.TotalTravelTime, LegCount
- KCM per-leg indicators —
Flight.IsKCMLeg1/2/3
- status flags —
Leg.IsDelayed / IsEarly, Flight.ShowCodeShare; expand → detail (FindFlightInfoAsync)
Variants: results card (117) · saved & recent searches (61, compact) · saved flight (118, swipe actions).
3 · Data-source mapping
| Screen / element | Data | Source (exists) | Status |
| Search form | origin · dest · date · trip type · advanced | client form → FlightSearchAsync(IFlightSearchRequest) | mapped |
| Origin/Dest autocomplete | airport code · name · city | GetFlightSearchAirportsAsync → AirportLocation | mapped |
| Results · flight card | legs · times · carriers · layovers · duration · KCM | FlightSearchResponse → Flight/Leg | mapped |
| Flight detail (expand) | full itinerary | FindFlightInfoAsync → Flight | mapped |
| Airline Policies | airline · CASS/ALPA · description · login · listings | GetAirlineJumpseatPoliciesAsync → PolicyViewModel; GetJumpseatAirlinesAsync → Airline | mapped |
| Saved/Recent searches | past searches | client-side persistence (local) | client |
| Saved Flights | saved itineraries | client-side persistence (local) | client |
| Saved-flight notifications (bell swipe) | flight-status alert subscription | push service (FlightSearchPushNotificationService / INotificationHubService) | confirm |
4 · Confirm items
| # | Item | Question |
| 1 | Saved Flights / Saved Searches / Recent Searches persistence | Local device storage only, or backend sync across devices? (Likely local.) |
| 2 | Flight-status notification subscription | The saved-flight bell subscribes to status alerts — confirm the per-flight subscribe/unsubscribe API on the push service. |
| 3 | Advanced search fields | Confirm every advanced-search option maps to a field on IFlightSearchRequest. |
| 4 | Jumpseat sub-nav | Tabs (Flight Finder · Airline Policies · Etiquette · Mission) — section nav; confirm membership/routes. |
5 · New scaffold controls (presentation — for the component library)
| Control | Note |
| flight card (new) | Marquee scaffold. 3 variants: results (117) · saved & recent searches (61) · saved flight (118 + swipe). Binds to Flight/Leg. |
| swipe actions | favorite (recent) · notifications + trash (saved flight). Interaction pattern. |
| button pill / tab group | Trip-type (Nonstop / One Stop / Multileg) + sub-nav. |
| Master Form Field | Airport autocomplete + date fields (shared with KCM analysis). |
| expander | Advanced search collapse. |
| search secondary buttons · btn-flight-finder interior nav | Recent/Saved entry points + sub-nav chrome. |
6 · Summary
- Backend data gaps: none — search, results (
Flight/Leg), airports and airline policies all map to existing endpoints/models.
- Confirm: saved/recent persistence (local vs sync) · flight-status notification subscribe API · advanced-search field coverage.
- Client-side: saved/recent storage, sort/filter, form state.
- Presentation backlog (large): the flight card scaffold + 3 variants + swipe actions, plus pill/field/expander controls.
Tracked in screen-mapping.html.