We stopped pricing on revenue and started pricing on margin. The first month after launch, we found leaks we had been writing off as seasonality for three years.
Head of Pricing, leading vacation rental marketplace
Results
The challenge
The marketplace’s pricing engine had been the product of five years of accumulated rules — segment-specific discounts, length-of-stay multipliers, lead-time curves, market-by-market overrides — bolted on each time a category underperformed a quarter. By 2025 it had 412 active rules, and the team responsible for it could not confidently predict the contribution margin of any single quote it produced.
The blind spot was structural. Take-rate lived in the booking system. Host payout lived in the payments system. Cleaning fees and damage-protection premiums lived in a third system, refund risk lived in a fourth, and payment processing fees were a monthly journal entry that no one wired into the pricing engine at all. Contribution margin per booking could only be assembled retroactively, in a finance reconciliation that ran 14 days after the stay completed — long after the discount had been given and the booking was closed.
The result was margin leak that hid as seasonality. Categories the team had quietly written off as structurally low-margin turned out, on closer inspection, to be carrying overrides that had outlived the conditions that justified them. No one had ever seen the cumulative cost of those rules at the per-quote level, because the data to see it had never existed in one place.
The approach
We treated the pricing engine as a downstream consumer and worked backward from “what does the engine need to know at quote time?”
- Built a unit-economics model that resolves contribution margin per night, per booking, at quote time — combining take-rate, host payout, payment processing, cleaning fees, refund-risk reserve, and chargeback reserve into a single number the engine can guardrail against.
- Reconstructed three years of historical bookings against the new model to establish per-segment margin floors that reflected reality, not the rule of thumb the team had been operating on.
- Replaced the 412 legacy rules with 38 segment-and-market guardrails. Anything below floor required an explicit, time-bounded, owner-attributed override — visible in a daily report, not buried in a config file.
- Stood up an experimentation harness that wires directly into the unit-economics model, so a pricing hypothesis can be tested against modeled margin in days rather than waiting six weeks for finance to close out the cohort.
The results
The first full quarter after launch surfaced the cumulative impact:
- $11.0M in annualized margin recovered, a number the CFO’s team confirmed against the system of record after the second close.
- Margin visibility moved from 14 days post-stay to quote time, which closed the loop the team had been trying to close for three years.
- More than 187,000 quotes were blocked or repriced in the first quarter because their modeled contribution margin sat below the segment floor and no override was in place.
- The active rule set collapsed from 412 to 38 — not because rules were aggressively deleted, but because the new guardrails replaced what most of those rules had been clumsily approximating.
- Time to test a new pricing hypothesis fell from six weeks to four days, which changed how the pricing team operates more than any single rule change did.
The Head of Pricing flagged the cultural shift as the bigger result: the team stopped arguing about whether a discount was “earning its keep” and started reading the margin number directly off the model.
What we would do again
The leverage came from refusing to ship a single pricing change until the unit-economics model was trusted end-to-end. The team’s instinct — understandable, given quarterly pressure — was to start tuning rules in week two. We held the line, and the rule changes that eventually landed were almost mechanical because the model told the team exactly which segments were leaking and by how much. The same sequence would apply to any pricing engine carrying years of accumulated rules: fix the visibility before you touch the rules.