Price Limits and Overrides: Which Setting Wins?

Jun Zhou, Founder at AirROI
by Jun ZhouFounder at AirROI
Published: September 4, 2026
Updated: September 5, 2026

Minimum and maximum prices constrain the running recommendation after percentage adjustments. A fixed price override is an explicit exception: it is applied afterward and can bypass either default or explicit limit.

See the price ceiling and the exception

A price limit clips the curve. A fixed override bypasses it.

Trace a running price along the horizontal axis. The percentage override is limited; the fixed override is not.

After +10% override: $110.00 to $660.00. After $150–$400 limits: $150.00 to $400.00. Fixed $550 exception: $550.00 to $550.00.Final nightly price · USD$100$245$390$535$680100150300400600Running price before override · USD
Hover, tap, or use arrow keys to explore. Select a legend to compare.
USD. Owner minimum $150, maximum $400. The fixed override is a separate scenario, not another percentage.

The purple line flattens at your minimum and maximum. The dashed line shows the amount before those owner limits. The orange line is a different scenario with a fixed price: it remains $550 even where your maximum is $400.

Trace one date in the right order

With a $390 running price and a +10% percentage override:

  1. Percentage override: $390 × 1.10 = $429.
  2. Owner maximum: $429 is reduced to $400.
  3. No fixed override: final price is $400.

With a fixed $550 override instead, the fixed instruction is applied after owner limits and the final result is $550. If you need a limit that no user setting can bypass, implement that as an independent publishing check.

The minimum is not the base price

A $200 base can yield a lower nightly recommendation. Its default minimum is $140 (70% of base); to use $200 as the floor, set min_price to $200. Even then, a fixed price override can take precedence.

There is no combined percentage cap on the five automatic rules. Their adjustments add together, then the effective minimum and maximum prices bound the recommendation.

Set limits and two kinds of override

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.

{
  "price_limits": {"min_price": 150, "max_price": 400},
  "price_overrides": [
    {"start_date": "2026-06-13", "end_date": "2026-06-13",
     "adjustment_type": "percentage", "adjustment_amount": 10},
    {"start_date": "2026-06-14", "end_date": "2026-06-14",
     "adjustment_type": "fixed", "adjustment_amount": 550}
  ]
}

On June 13, a running price of 200 becomes 220; 390 becomes 429 and is then limited to 400. If the price is still below 150 after the percentage adjustment, the minimum raises it to 150. On June 14, the fixed override returns 550 even though the maximum is 400.

Defaults apply to each bound independently

Limits supplied with a $200 baseEffective minimumEffective maximum
None, an empty object, or both bounds null$140$2,000
Only min_price: 150$150$2,000
Only max_price: 400$140$400
min_price: 150 and max_price: 400$150$400

An omitted or null minimum defaults to 70% of base price; an omitted or null maximum defaults to 1000% (10 times) base price, not a +1000% increase. Defaults are rounded to the currency's precision, with ties rounded up. Explicit limits must be positive currency amounts.

The effective minimum must not exceed the effective maximum. For example, a $200 base with only max_price: 120 conflicts with the default $140 minimum: the API returns HTTP 422 with INVALID_PRICE_LIMITS in the error details. Set both bounds if your intended range lies outside the defaults.

Overrides use inclusive, non-overlapping date ranges. percentage accepts values greater than −100 through +500. fixed accepts a positive currency amount and takes precedence over both limits.

Compare the outcomes

Assume a $150 minimum and $400 maximum:

Running priceOverrideAfter percentage overrideFinal USD price
200+10%220220
390+10%429400
120None120150
200Fixed 550Not applicable550
200Fixed 100Not applicable100

The last two rows deliberately bypass the owner limits. If your business requires an absolute publishing ceiling or floor with no exceptions, enforce it in your own publishing workflow too.

Understand the other limits

Each individual automatic-rule percentage must be greater than −100 and have at most two decimal places. Positive percentages have no fixed upper limit. Custom weekday rules and percentage overrides retain their own input ranges, listed in the API schema.

There is no tiny system-floor adjustment. If a positive final calculation rounds to zero, the request fails with HTTP 422 PRICE_BELOW_CURRENCY_MINIMUM. A nonpositive calculation fails with HTTP 503 PRICING_DATA_UNAVAILABLE. No partial calendar is returned; retain your existing published prices while investigating.

Inspect the explanation

An applied minimum uses minimum_price_limit; an applied maximum uses maximum_price_limit. Each has a readable label and signed amount. When a default bound is responsible, details identifies its percentage of base price. Unreached limits add no line.

Overrides use percentage_price_override or fixed_price_override. Sum the returned amounts, rather than applying the lines again to the returned price.

Try the interactive rule example and the publishing checklist.