Price Offers and Compare Fare Brands
Run WP for the airline's live fare-brand ladder, target a cabin, apply corporate and promo qualifiers, and handle offer expiry.
What WP actually does
WP looks like the fare quote you've typed for years. It isn't one. There is no fare calculation on your side and no filed-fare lookup: WP sends your selected segments and passengers to the airline, and the airline constructs and returns priced offers — its fare-brand ladder for exactly this itinerary and party, each rung a complete product with its own price, conditions, and expiry.
15NOVJFKLAX # Search
1 # Select
WP # Price — the airline returns its offer ladder
The consequence that trips up every scripted workflow: each WP is a fresh shop, and the ladder is rebuilt every time. Which brands come back, at what prices, in what order — all of it can shift between runs as inventory moves. Row 2 this run is not row 2 next run. Compare by brand name, not by position, and when a workflow needs to book a specific brand, book it by name (covered on the booking page).

WP: one rung per fare brand, numbered for booking — but the numbering is per-run.Reading the ladder
Each rung is a brand — Basic, Main, Flexible, whatever the carrier calls its tiers — showing the total price and what the product includes: checked bags, seat selection, changes, refundability. This is the airline's own merchandising, not a reconstruction, so what you see is what the contract of carriage will say.
Interrogate a rung before you sell it:
?FR # Fare rules for the current offer
?FR1 # Fare rules for offer 1
?PEN1 # Change / cancellation penalties for offer 1
?BAG1 # Baggage allowance for offer 1
?SVC1 # Included services for offer 1
Leave the number off to inspect the current offer; add it to target a specific rung without selecting it first. These details come from the offer itself — the answer is the airline's, for this exact price, not a category-16 excavation.
When entitlements differ by passenger type, NDCTerm now says so directly: a penalty can read ADT $75 · INF no fee, and baggage can read Adult/Child 1 bag · Infant (lap) no checked bag. A single party-wide number is shown only when it is true for everyone.
Cabin-targeted pricing
Bare WP prices everything the airline chooses to return, and carriers usually lead with the economy brands. Suffix a cabin letter to ask for a specific cabin's ladder:
WPE # Economy only
WPP # Premium economy
WPW # Premium economy — same as WPP
WPB # Business
WPF # First
This is the fast way to answer "what's business on this flight?" without re-searching.
Corporate, negotiated, and promo pricing
Qualifiers ride on WP with the two-letter codes you know:
WP/AC*CORP123 # Corporate account code
WP/CT*CONTRACT456 # Negotiated contract ID
WP/PC*SAVE50 # Promotion code
WP/AC*CORP1/PC*PROMO # Qualifiers combine
The codes are passed to the airline as offer criteria, and the returned ladder is the negotiated one — corporate rungs appear alongside or instead of the public brands, already netted, because the airline priced them, not a mask on your side. If a code returns nothing different, the airline has no negotiated product for you on this itinerary; there is no local override to force it.
Offers expire
Every rung on the ladder carries an expiry set by the airline — minutes, not hours. An expired offer is not booked at its quoted price; it's gone. You don't have to babysit this: when you book against a stale offer, NDCTerm reprices it automatically during the commit and, if the total moved, stops and asks you to confirm the new price before creating anything. The rule of thumb is simply: price close to booking. A ladder you quoted this morning is a screenshot, not a hold.
WP on a changed order
WP is context-aware. On a new booking it prices your selected segments. On a retrieved order you've modified, the same command prices the change instead — the airline shops alternatives for the modified itinerary and returns branded offers for the exchange, change fees and fare difference included. One verb, and the context decides what gets priced.
There's one more lever, and it matters because a fare ladder is not the whole shelf. What a carrier returns — shopping or reshopping — is typically only the cheapest brand in each cabin, so asking for business can yield the promo tier and never the full one. WP/RBD*<class> names the booking class outright and prices against it, reaching fares the ladder never showed you:
WP/RBD*J # Price in class J
WP/RBD*T+R # One class per bound, +-separated: T outbound, R inbound
It works on a new booking and on an order change alike. On a new booking the class
pins what your selected flights are priced in — on a JFK–LAX shop whose ladder ran
from Basic Economy at $288.40 to Flagship Business Flexible at $2,848.39,
WP/RBD*J returns Flagship Business at $4,598.39: a fare the ladder never
offered. On an order change it forces the class the reprice runs against.
One value applies to every bound; with multiple values, give one per bound in bound order (a connection is one bound, so its value covers both legs). Because an explicit class overrides what the ladder offered, it also drops that bound's cabin preference.
A class names inventory, not a fare family — and carriers routinely file several brands in one class. On Aegean, K is Light and Flex and ComfortFlex, so naming the class alone gets you the cheapest of the three. Name the brand alongside it and both travel on the same priced request:
WP/RBD*K/BR*COMFORTFLEX # Class K, ComfortFlex fare
WP/RBD*K+D/BR*COMFORTFLEX+BUSINESSBASIC # One of each per bound, in bound order
On an ATH–FRA round trip that pair prices ComfortFlex out in K and Business Basic back in D; the classes alone return Light outbound instead. Order doesn't matter — WP/BRCOMFORTFLEX/RBDK is the same command. And if the airline answers with a brand you didn't ask for, the command fails rather than quietly pricing it.
If the class is closed on that date the command fails rather than handing
back the brands the airline would have offered instead. That is deliberate: the whole
reason to name a class is that you don't want to be quietly given a different fare. Check
what's open with A, or drop the qualifier to see the ladder.
The same applies where a carrier's connection has no way to carry a booking class on the
request. Rather than guessing, WP/RBD* tells you so and points you at
long-sell — see Airlines for what each carrier supports.
You can also choose the class earlier, at selection time, which sells that inventory before anything is priced:
1R # Long-sell row 1 in class R
1R/J # Per-segment: R on the first, J on the second
15NOVPTYBOG/CM804J # Known flight and class, no search row needed
Use long-sell when you know the class before you look at fares, and WP/RBD*
when you've seen the ladder and want a class it didn't show. See
Long-sell for the full form — the
prefixless version needs a prior search or availability display so it can resolve the
flight's times.
Booking a rung — by number or, better, by brand name — is the next page: Create a Booking.