A regional turboprop on final approach above a row of runway approach lights

Every seat priced from one demand forecast.

Yieldcraft is revenue management software for airlines. It forecasts demand for each flight, sets a continuous price between your filed fare classes, and tracks competitor fares on the routes you fly.

Foresight

Forecasts demand for every flight across a 363-day booking horizon.

Optima

Sets a continuous price between the fare classes you already file.

Radar

Tracks competitor fares on the routes you fly.

Footage: a regional turboprop on final approach. Stock clip by Salva F. Ayala, colour graded.

Three engines work from the same demand forecast

Foresight forecasts demand, Optima prices against that forecast, and Radar checks the result against competitor fares. Each example below is an output of the pilot test pack, shown with its basis.

Foresight forecasts the booking curve of each flight

For every departure, Foresight projects how many seats will be booked on each day until the aircraft leaves, with a range. It compares bookings to date with that projection and marks the flight as ahead, on pace or behind.

The forecast covers a 363-day booking horizon.

Booked to dateForecastForecast range
020406036327018090300Days before departureSeats bookedCapacity 50 seatsAuthorised 5555 days outBooked 47Forecast 58range 49 to 68
Table view
Days before departureBookedForecastRange
3630.40.40.3 to 0.4
2700.50.40.3 to 0.5
1802.71.61.3 to 1.8
12014.18.36.9 to 9.6
9028.118.115.1 to 21.1
6044.733.227.7 to 38.7
5547.335.929.9 to 41.8
30not yet48.340.3 to 56.3
0not yet58.148.5 to 67.7
One 50-seat flight, 55 days before departure. 47 seats are booked, above the forecast range of 30 to 42 for that day, so Foresight marks the flight as ahead. Source: pilot test pack, simulated bookings.

Optima sets one price and files it inside the fare classes you already have

Optima computes a continuous price for each fare product and maps it to the nearest filed class, so reservation systems that sell by class keep working. Your direct channel can sell at the continuous price.

A guardrail stops the direct price from undercutting the filed fare by more than 8 percent.

Fare productContinuous priceFiled classFiled fareGap
Light$212V$2255.8%
Standard$262Q$262none
Flex$348M$3552.0%
Three fare products on one regional route with 10 filed classes. The largest gap between the direct price and the filed fare is 5.8 percent. Source: pilot test pack; fares anchored to July 2026 public shopping data.

Radar compares your fare with every carrier on the route

Radar lists the carriers on a route with their weekly flights and current fare, and flags each fare below yours.

It needs a competitor fare feed. The pilot used fares collected from public shopping sites in July 2026.

CarrierFlights a weekFareAgainst your fare
You14$235
Competitor A21$248$13 above you
Competitor B7$262$27 above you
Competitor C7$205$30 below you
One regional route with 4 carriers. One competitor is $30 below your fare of $235. Carrier names are withheld. Fares from July 2026 public shopping data.

Bid prices keep seats for the passengers who pay most for them

A bid price is the lowest fare worth accepting on one flight leg. An itinerary is sold only when its fare covers the bid prices of every leg it uses. At a hub this stops a cheap connecting fare from taking a seat that a local passenger would pay more for.

One decision, as the engine records it:

Request
A to C via the hub, fare $240
Leg 1
A to the hub, bid price $120
Leg 2
The hub to C, bid price $200
Rule
Accept when the fare is at least the sum of the bid prices
Sum
$320
Decision
Closed. The fare is $80 short.
Full legLeg with spare seats
$12029 of 29 seats$13550 of 50 seats$20050 of 50 seats$046 of 50 seatsHubABCD
ItineraryFareBid pricesMarginDecisionSeats
A to the hub$120$120$0Open19
B to the hub$135$135$0Open36
Hub to C$200$200$0Open50
Hub to D$305$0$305Open22
A to C via the hub$240$320-$80Closed0
B to C via the hub$230$335-$105Closed0
A to D via the hub$360$120$240Open10
B to D via the hub$360$135$225Open14
4 flight legs through one hub and 8 itineraries. 2 connecting itineraries are closed because their fare does not cover the bid prices. Airport names are withheld and positions are schematic. Source: pilot test pack, simulated bookings.

The pilot test pack passed 87 of 87 checks on a regional carrier's network

The engines were configured with the fleet, network and fare ladders of a regional African carrier. Fares are anchored to July 2026 public shopping data. Bookings are simulated, because the carrier had no forward-booking history to share. No airline runs Yieldcraft in production yet.

Bid-price control earned $2,288 more per run than selling first come, first served

The simulation sells the same demand at a 4-flight hub under four rules. Each figure is the average revenue of 300 simulated selling runs.

Bid prices, recomputed as seats sell$31,243
Bid prices, set once$31,122
First come, first served$28,834
Local passengers only$25,250
Average revenue per simulated selling run, by selling rule. Source: pilot test pack, simulated bookings.

Each result below comes from a check that can be rerun

CheckResultBasis
Engine checks87 of 87 pass, in 22 groups covering pricing, fare filing, revenue management and network bid prices.The shipping engine code, configured with the carrier's fleet, network and fare ladders
Two-flight connectionBid-price control earned $25,000 against $16,000 with no control. It refused a $200 connecting fare that would have displaced $500 of local revenue.Simulated bookings; fares from July 2026 public shopping data
Overbooking limitOn one 50-seat flight, authorising 55 seats raised revenue from $12,092 to $13,288 with 0.1 denied boardings expected. Authorising 63 added no revenue and raised expected denied boardings to 2.8.Simulated bookings; fares from July 2026 public shopping data
Fault found and fixedOn a domestic route one shared fare ladder let the direct price of $172 undercut the filed fare of $188 by 8.5%, past the 8% limit. A separate domestic ladder removed the conflict, checked in the same run.Fares from July 2026 public shopping data

The same engine paces every departure

FlightAircraftDays outBooked of seatsForecast loadPaceEmpty seats expectedTurned away
Hub to C50-seat jet257 of 5099%On pace01
Hub to A29-seat turboprop332 of 2997%On pace17
Hub to C50-seat jet539 of 5084%Behind80
Hub to B29-seat turboprop732 of 2997%On pace18
Hub to E29-seat turboprop928 of 2984%On pace50
Hub to D50-seat jet1443 of 5080%On pace100
Hub to C50-seat jet2155 of 50100%Ahead08
Hub to F50-seat jet2631 of 5083%Behind90

The 8 nearest departures in the pilot run. Booked can exceed seats because the engine authorises overbooking against expected no-shows. Airport names are withheld. Source: pilot test pack, simulated bookings.

Yieldcraft works from a ticketing extract and the fares you already file

You provideA ticketing extract from your reservation system, with issue dates. Your filed fare ladder and fare rules.
Yieldcraft returnsA forecast for each flight, a price for each fare product mapped to a filed class, a bid price for each flight leg, and a list of competitor fares for each route.
Stays as it isYour fleet, your fare classes and your distribution channels.

Booking curves are rebuilt from the issue dates in a ticketing extract, so a carrier without stored booking history can start. The pilot tested this on a synthetic extract.

Your commercial data is used to forecast and price your own network. It never trains another airline's model.

The demo console runs in your browser with sample data

It shows the four screens an analyst uses: overview, Foresight, Optima and Radar. The numbers in it are illustrative.

Try the demo

A row of runway approach lights on lattice masts