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.
Trace a running price along the horizontal axis. The percentage override is limited; the fixed override is not.
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.
With a $390 running price and a +10% percentage override:
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.
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.
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.
| Limits supplied with a $200 base | Effective minimum | Effective 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.
Assume a $150 minimum and $400 maximum:
| Running price | Override | After percentage override | Final USD price |
|---|---|---|---|
| 200 | +10% | 220 | 220 |
| 390 | +10% | 429 | 400 |
| 120 | None | 120 | 150 |
| 200 | Fixed 550 | Not applicable | 550 |
| 200 | Fixed 100 | Not applicable | 100 |
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.
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.
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.
Stay ahead of the curve
Join our newsletter for exclusive insights and updates. No spam ever.