Rental Rates
The per-period price you charge to rent a Product — daily, weekly, or monthly — optionally overridden for a specific customer or location, with the most specific active rate winning at billing time.
A rental rate is the price you charge to rent a Product for one billing period. "Scissor Lift, 26 ft — $250/day" is a rental rate; the Product it points at is the equipment, and the rate is simply what it costs to keep that equipment out for a day, a week, or a month. Rates are the pricing layer that feeds rental agreements — when a rental is billed, the system looks up the matching rate rather than asking you to retype a price every time.
Rate vs. agreement, in one line: a rate is a reusable price-list entry for a Product; an agreement is one customer renting specific equipment for a date range. The agreement resolves a rate to know what to bill.
What a rental rate holds #
Each rate ties together a Product, a period, and a price, plus optional scoping:
- Product — the piece of equipment being priced. Required. Only Returnable equipment is rentable, so this points at a returnable Product.
- Period — Daily, Weekly, or Monthly (see below). Required.
- Rate — the price for one period, entered in dollars in the UI and stored in cents under the hood. Required.
- Minimum periods — the fewest periods a rental of this kind can be billed
for (defaults to
1), so a one-day pickup of weekly-rated gear can still carry a sensible floor. - Customer override — leave blank for the standard rate, or set it to give a specific customer negotiated pricing.
- Location override — scope the rate to a single inventory location, useful when the same Product rents for different prices by branch.
- Active — only active rates are eligible to be resolved at billing time; switch one off to retire it without deleting it.
Per-period pricing #
Every rate is priced against exactly one period, and the period also decides how a calendar span converts into billable units:
- Daily — one period spans 1 day.
- Weekly — one period spans 7 days.
- Monthly — one period spans 30 days.
You can have several rates for the same Product at different periods — a daily, a weekly, and a monthly price — and the agreement picks the one matching the rental's chosen period. The period a rate is created with defaults to Daily.
Set complementary daily/weekly/monthly rates on a Product so longer rentals get a better effective price — e.g.
$50/day,$250/week,$800/month— and let the agreement choose the period that fits the booking.
Prices are stored in cents #
Like every money field in Knowledge ERP, the rate is an integer number of
cents in the database and over the API. 5000 means $50.00. The rate form
shows and accepts dollars (with a $ prefix) and converts to cents on save, so
you never type cents by hand in the UI — but if you script rates through the
API, you send and receive whole cents.
How rates attach to Products #
A rate always belongs to one Product through its product_id. Because a Product can carry
many rates — different periods, plus customer- and location-specific overrides —
pricing for a piece of equipment is expressed as a small set of rate rows rather
than a single number on the Product. Manage them under Rentals → Rental Rates,
where the list shows the Product, period, price, any customer or location override,
and whether the rate is active. The list sorts newest-first and you edit a rate
in place.
How a rate is chosen (resolution) #
When a rental is priced, the system resolves the best matching active rate for the Product and period. More specific rates win:
- A rate matching both the renting customer and the rental's location.
- A rate matching the customer.
- A rate matching the location.
- The generic rate (no customer, no location) as the fallback.
Only rates flagged active are considered. This is what lets you publish a standard price for everyone, then quietly override it for a key account or a single branch without touching the default. See equipment rentals for how resolved rates flow into a rental's charges.
Editing and retiring rates #
Rates are versioned through the change tracker, so every edit to a price, period, or override is captured in the rate's change history. To stop using a rate, switch active off (it stays on the record and in history) or delete it — deleting soft-deletes the rate, and any rental agreements that already referenced it are unaffected.
Doing it from the API #
# List rental rates (filter by Product, period, or active status)
curl "https://your-domain.com/api/v1/rental-rates?period=day&active=1" \
-H "Authorization: Bearer $TOKEN"
# Create a rental rate at $50.00/day
curl -X POST "https://your-domain.com/api/v1/rental-rates" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"product_id": "...", "period": "day", "rate": 5000, "min_periods": 1}'
Over the API the rate is an integer in cents (
5000= $50.00), the period is one ofday,week, ormonth, and relationships use_idfield names —product_id,customer_id,location_id.