Moving pricing, worked line by line
On this page
Use the bundled Moving template to learn how ordered pricing becomes an explainable result. All rates below are fictional USD examples. The template uses a currency exponent of 2, so one dollar is 100 minor units.
Understand every charge
| Rule | Rate | When it applies |
|---|---|---|
| Base service | $180 | Always |
| Bedrooms | $80 each | For the supplied bedroom count |
| Distance | $2.10 per mile | For the supplied distance |
| Stairs | $35 per flight | When stairs are visible because there is no elevator |
| Boxes | $3.50 each | For the supplied quantity |
| Piano | $150 | When piano is Yes |
| Packing | $90 | When packing is Yes |
| Weekend | 15% | For Saturday or Sunday moving dates |
| Minimum | $350 | After rules, if the total is lower |
The public calculator does not infer miles from the addresses. The weekend adjustment reads the moving-date answer, not the installation's current clock. Weekdays use Sunday = 0 through Saturday = 6.
Reproduce the $708.63 example
Choose three bedrooms, 22 miles, an elevator, zero boxes, a piano and no packing. Supply 2026-10-10, a Saturday.
{
"origin": "Boston",
"destination": "Cambridge",
"bedrooms": 3,
"distance": 22,
"elevator": true,
"boxes": 0,
"piano": true,
"packing": false,
"moving_date": "2026-10-10"
}The elevator answer hides stairs, so no floors answer is needed.
| Calculation | Amount |
|---|---|
| Base | $180.00 |
| 3 × $80 | $240.00 |
| 22 × $2.10 | $46.20 |
| Piano | $150.00 |
| Subtotal | $616.20 |
| 15% of $616.20 | $92.43 |
| Final total | $708.63 |
Internally, the subtotal is 61620, the percentage adjustment is 9243 and the final total is 70863. The minimum adds nothing because the calculated total already exceeds $350.
The result includes the rule IDs, inputs and parameters behind these amounts. Render that explanation instead of reconstructing a second pricing algorithm in your business application.
Check a weekday variant
Keep the same answers but change the date to 2026-10-12, a Monday. The total is $616.20. The weekend rule should no longer appear among applied adjustments.
If the two results are equal, inspect the date field selected by the weekday rule and its configured day numbers. If the percentage is too small, inspect its position: percentages see only the charges accumulated before them.
Check minimum pricing
Use zero bedrooms, zero distance, an elevator, zero boxes, no piano, no packing and a Monday date. The rules produce a $180 subtotal. A $170 minimum adjustment brings the total to $350.
Minimum pricing is an explanation line, not an unexplained replacement of the subtotal. It applies after percentage adjustments. Ranges, if configured, are calculated from that final bounded total.
Check fractional distance
Use three bedrooms, 22.5 miles, an elevator, zero boxes, a piano, no packing and Saturday. Distance costs $47.25. The subtotal is $617.25; 15% is $92.5875, rounded to $92.59. The final total is $709.84.
Each rule rounds once, half away from zero. The engine uses exact intermediates instead of multiplying money with uncontrolled binary floating-point arithmetic.
Add access costs deliberately
Change the elevator to No and supply two flights of stairs. This reveals the stairs question and adds $70. If the weekend rule follows stairs, it also adjusts that charge. With the original 22-mile Saturday case, the subtotal becomes $686.20 and the final total becomes $789.13.
Do not move stairs after the weekend rule unless the business intends to exclude them from that percentage.
Use these as regression cases
Before publishing revised prices, write down representative cases and expected totals. Include a minimum, a weekday, a weekend, an access surcharge and a fractional quantity. Repeat them after changing rule order, visibility or amounts.
Continue with discounts and tiers or the exact pricing contract.