AI systems

Better Last-Minute Ticket Prices Without Losing Control

A pricing system that responds to demand, protects the customer experience and creates the evidence needed to measure revenue impact.

Pare Studio Work
Delivered through Pare Studio. Commercial uplift is being measured.

A fixed discount cannot tell the difference between an event that is about to sell out and one with seats still to fill. The price should reflect the situation, not just the calendar.

The problem

The problem with fixed discounts

Last-minute tickets were priced using static discount bands. That could give away margin when an event was already selling well, while another event still reached opening time with seats that could no longer generate revenue.

The client needed prices to react to the actual booking situation without giving up control or creating unpredictable changes for customers.

What we did

A pricing engine that learned from each outcome

We built a dynamic pricing engine connected to the client’s existing booking system through an API, a controlled connection that lets software exchange data. It wrote each decision and outcome to the client’s Postgres database. For every booking request, the engine considered remaining tickets, event capacity, time until the event and recent sales. It compared only the prices inside the client’s minimum and maximum limits using expected revenue: ticket price multiplied by the probability of sale. A short-lived price lock then kept the selected price stable while the customer booked.

At its core, the engine used Bayesian updating, a structured way to revise an estimate as new evidence arrives. It began with an estimate of how likely each price was to result in a sale, then strengthened or weakened those estimates as real sale and no-sale outcomes arrived. Thompson sampling balanced using the prices supported by stronger evidence with a controlled chance to test another allowed price. This helped the system learn without uncontrolled price changes.

Every price and outcome was recorded in Postgres. A dashboard showed what the system was learning, and a controlled A/B comparison tested the new engine against the previous pricing rules. This gave the client evidence to decide whether the system produced more revenue from the same ticket inventory before expanding its use.

Learning loop How each booking outcome informed the next pricing decision

The engine estimated demand at each allowed price, chose the option with the best expected revenue, then learned from whether the customer bought.

The booking context enters a demand estimate that is revised through Bayesian updating. Thompson sampling chooses a price within the client’s limits by balancing the strongest evidence with controlled testing. The price is shown to the customer, and the sale or no-sale outcome updates the demand estimate before the next decision. Update demand estimate Booking context Tickets remaining Time to event Recent sales Estimate demand Bayesian updating Choose a price Thompson sampling Client price limits £ Price shown Outcome Sale No sale Booking context enters a demand estimate that is revised through Bayesian updating. Thompson sampling chooses a price within the client’s limits by balancing the strongest evidence with controlled testing. The sale or no-sale outcome updates the demand estimate before the next decision. Update demand estimate Booking context Tickets remaining · Time to event Recent sales Estimate demand Bayesian updating Choose a price Thompson sampling Client limits £ Price shown Outcome Sale No sale

Every sale or no-sale refined the estimate used for future decisions. Prices stayed within the client’s limits, and a short-lived lock kept the displayed price stable during booking.

What improved

  • Revenue-aware protects margin or responds when seats risk going unsold
  • Controlled every price stays inside business limits and remains stable at checkout
  • Provable the new engine is compared directly with the existing rules
The point

Dynamic pricing is useful only when the business can control it, customers experience it consistently and the commercial result can be proved.

If demand changes, should your prices change with it?

We build pricing systems that start safely, learn from real outcomes and remain visible to the people responsible for the result.

Talk through pricing