Last-minute pricing adjusts nights inside a lead-time window. In AirROI, a custom gradual adjustment grows linearly toward the arrival date; a flat adjustment applies the same percentage throughout the window.
Read from right to left as a stay approaches. Flat applies the full adjustment inside the window; gradual reaches it only on arrival day.
| Choice | What happens at the window boundary | What happens as arrival gets closer |
|---|---|---|
| Custom gradual | Starts at 0% on day 20 in this example | Changes by one percentage point per day, reaching −20% today |
| Custom flat | Immediately applies the full −20% on day 20 | Remains at −20% through today |
| Disabled or omitted | No custom lead-time adjustment | Model effects and any other enabled rules still apply |
Use a gradual shape when your intended policy changes with remaining lead time. Use flat when every qualifying night should receive the same percentage. These are policy differences, not evidence that either choice is optimal for your property.
The slider can also show a positive adjustment: a last-minute rule is allowed to add a premium. That does not mean the API recommends doing so.
Each last-minute preset has its own window, maximum discount, and curve shape.
At 10 days out, conservative is outside its 7-day window, balanced is partway through its 21-day curve, and aggressive is partway through its 45-day curve. Comparing only their arrival-day maximums misses that difference.
With the custom 20-day gradual example, compare days 21, 20, 10, and 0. The standalone prices should be $200, $200, $180, and $160. Then mark a qualifying date reserved: its last-minute adjustment disappears. Its model-based recommendation still exists.
The JSON below is an addition to this complete Calendar Prices request. Merge fields into one request; do not send a rule fragment by itself.
{
"location": {
"latitude": 25.7907,
"longitude": -80.13
},
"currency": "USD",
"base_price": 200
}
All worked prices use USD and assume a $200 price after model effects, with no other adjustments unless stated. They demonstrate arithmetic, not live forecasts.
{
"pricing_rules": {
"last_minute": {
"mode": "custom",
"settings": {
"start_days": 20,
"adjustment_percent": -20,
"adjustment_type": "gradual"
}
}
}
}
start_days opens the window (1–90 days). Custom gradual is linear:
20 days out gives 0%, 10 days gives −10% (200 → 180), and today gives −20%
(200 → 160). Add end_days (0 through start_days − 1, default 0) to
reach the full discount earlier and hold it: with end_days: 5 the same
rule is −20% from five days out through arrival. Change adjustment_type to flat to apply −20% throughout
the window, including day 20. Outside the window there is no adjustment.
Known reserved and blocked dates are excluded.
| Days until arrival | Gradual −20% maximum | Gradual price | Flat price |
|---|---|---|---|
| 21 | 0% | $200 | $200 |
| 20 | 0% | $200 | $160 |
| 10 | −10% | $180 | $160 |
| 0 | −20% | $160 | $160 |
For the custom gradual setting, percentage = maximum adjustment × (start days − days until arrival) / (start days − end days), capped at the maximum once days until arrival is at or below end_days. “Today” uses the property's timezone, not the caller's clock.
For both custom and preset rules, the calculated percentage is rounded to two decimal places before it changes the price; half-way values round away from zero.
The conservative preset reaches −8% today over a 7-day window, balanced reaches −15% over 21 days, and aggressive reaches −25% over 45 days. These preset ramps are curved, not the custom linear ramp. Use {"mode":"balanced"} alone for the balanced preset; do not attach custom settings to it.
A stronger discount is not automatically better. Decide how much you are willing to reduce rates and how close to arrival that policy should begin, then review results. These examples demonstrate the rule, not an optimal discount for every property.
Known reserved and blocked dates are excluded from this adjustment. Other automatic rules share its post-model price basis without a combined percentage cap. Price limits can then undo some or all of a discount.
last_minute_rule explanation line and subsequent price-limit adjustments.Stay ahead of the curve
Join our newsletter for exclusive insights and updates. No spam ever.