Overview
Hourly ranges let an hourly estimate show a window of time instead of one number, so the customer sees a realistic range rather than a single figure the final bill may not match.
You set the size of the range in Settings > Estimates > Hourly Ranges, in bands of shipment volume or weight.
Each band sets how far below and above the estimated time the range reaches. For example, 7 hours with 1.5 hours below and above shows as 5h 30m to 8h 30m.
A moving labor charge with a range shows a low and high subtotal. The customer sees the range when the estimate's Pricing Display is Hourly Range.
Before You Start
Setting up hourly ranges requires access to Settings.
Hourly ranges apply to estimated Hourly and Flat Rate + Hourly moving labor charges. Actual charges don't get a range.
Decide whether volume or weight better predicts how long your jobs take. The whole table uses one or the other.
Set Up Your Hourly Ranges
Go to Settings > Estimates > Hourly Ranges.
In Ranges Are Based On, select Volume or Weight.
Build the table:
To start from typical values, click Apply Sample, then click Yes, remove any existing and apply sample. The sample replaces any rows you already have.
To add your own row, click Add Range. Enter the top of the size band, then the Low End Of The Range and High End Of The Range in hours, each with a Direction of below or above the estimated time.
Edit any row in the table. To change a band's top size, click the blue number.
Check the preview under the table. It shows how a 7-hour estimate in your largest band appears to the customer, such as 5h 30m to 8h 30m.
To give moving labor charges added by hand a range automatically, turn on Apply Hourly Ranges to New Charges. It's off by default. Charges created from a tariff follow the tariff's pricing method defaults instead.
Click Save Changes.
Turn Hourly Ranges On or Off for a Pricing Method Default
Each Hourly Rates pricing method default on a tariff decides whether the moving labor charges it creates get an hourly range.
Go to Settings > Tariffs > Tariff Library and open the tariff.
Under Defaults/Automations, click Pricing Method Defaults.
Open an Hourly Rates pricing method default. This includes defaults set to Flat Rate + Hourly.
Turn Apply Hourly Range on or off. With it on, new Moving Labor charges from this default show a range of hours sized by the Hourly Ranges table.
Click Save Changes. Charges created from it after this point follow the switch.
For example, a Flat Rate + Hourly default with Apply Hourly Range on can quote $400.00 for the first 2 hours, plus 1h to 3h at $105.00 per hour.
Add a Range to a Charge
On the opportunity's Estimate tab, click the moving labor charge, such as Moving Labor. The charge's slide-out opens.
In the slide-out, click + Add hourly range. Skip this step if the charge already has an Hourly Range section.
Review Low Hours and High Hours in the slide-out. They start from the charge's estimated time and the band that matches the shipment's size. Edit either one for this charge if needed.
Click Save Changes. The charge shows a low and high subtotal and total.
To take the range off a charge, open the charge's slide-out, click Remove Hourly Range, then click Save Changes.
To take the range off a charge, open the charge's slide-out, click Remove Hourly Range, then click Save Changes.
Show the Range to the Customer
On the opportunity, click Send Estimate.
Next to Pricing Display, select Hourly Range. The preview shows the time range and the hourly rate, such as "4h 45m to 6h 45m at $150.00 per hour."
Choose who to send the estimate to, then click Send.
In the customer portal, an estimate with an hourly range shows:
The time range and the hourly rate for each ranged charge.
A cost range for each ranged charge, with any discount applied. For example, Moving Labor at 5h 15m to 6h 45m at $105.00 per hour shows $551.25 - $708.75.
The charge's discount in the Discount column, as a percent for a percent discount, such as 10%.
A price range next to Estimated Total, including any overrides. It comes from the estimate’s price range, or from your Price Range table if you use one, so it may not equal the sum of the rows.
With payments shown, the row reads Estimated Balance and shows the price range minus payments. Neither end goes below $0.00.
Estimate documents show the ranges with no template changes, whatever the portal type’s Pricing display:
These tokens switch to ranges:
@EstimatedChargesTableWide,@EstimatedChargesTableNarrow,@EstimatedOpportunityTotal,@EstimatedBalance,@EstimatedMovingLaborTotal,@EstimatedLaborCharge, and@EstimatedJobTotalon opportunity documents.
These stay single amounts:
@ChargesTableWide,@ChargesTableNarrow,@EstimatedSubtotal,@EstimatedTaxes,@FinalOrEstOrFinalLaborCharge, and@EstimatedJobTotalon job documents.To show the time range on its own, add
@HourlyRangeFormatted(such as 5h 15m - 6h 45m), or@HourlyRangeLowand@HourlyRangeHighfor each end.
Choose What the Customer Portal Shows with an Hourly Range
Each online estimate portal type controls how prices appear to the customer, including hourly ranges.
Go to Settings > Customer Portal > Online Estimates and open the portal type.
In General Settings > Pricing display:, select Hourly Range. The Hourly price range: row appears.
Set Hourly price range: to Show to show the price range at the top of the estimate, or Hide to show the time range only. It's set to Hide by default. The Estimated Total row shows the price range either way.
Under the charges table settings, choose Show or Hide for each:
Hourly rate: shows the time range and labor rate in the charge's Rate column, such as 7h 30m-9h 30m @ $150.00/hr (1 truck, 3 crew).
Price for minimum hours: on a ranged Hourly charge, shows the minimum next to the charge name, such as (3h minimum). The cost shows the range, not the minimum price.
Line-item subtotals: adds a Subtotal column. On a ranged charge, it shows the range before discount. The cost range shows either way.
Click Save Changes. Estimates sent with this portal type use the new settings.
A non-binding hourly estimate with a range shows as Hourly Range online even when the portal type's Pricing display: is set to something else, unless a different Pricing Display is picked for that estimate in Send Estimate.
Key Details
Binding estimates never show hourly ranges. The customer sees the binding price.
A charge created from a pricing method default follows that default's Apply Hourly Range switch. Charges added by hand follow Apply Hourly Ranges to New Charges.
Every Hourly Rates pricing method default starts with the same value as Apply Hourly Ranges to New Charges. Copying a tariff keeps each default's switch.
Packing, Distance Rates and Valuation pricing method defaults have no hourly range switch.
On an Hourly charge, the range is measured from the charge's total estimated time, and the minimum hours don't change it. On a Flat Rate + Hourly charge, the range covers the hours after the flat rate and ignores the minimum hours.
A shipment matches the first band whose top size is larger than the shipment. A shipment larger than every band gets the default range: the estimated time to 2 hours above it.
With no rows in the table, every range uses the default.
The low end never drops below 0 hours.
A charge's range updates when its estimated time changes, such as a change to travel time. Low Hours or High Hours you edit by hand stay as entered.
Apply Hourly Ranges to New Charges and Apply Hourly Range affect charges created after you change them. Existing charges keep or lack their range as they are.
Adding a range to a charge removes a subtotal override on that charge. The charge prices from its range instead.
Ranges show in hours and minutes, such as 5h 30m.
An estimate with an hourly range uses Hourly Range as its Pricing Display unless another display is picked.
The hourly rate shows with the range only when every hourly charge uses the same rate.
When a job's charges become actual charges, the range is removed and the actual time is billed.
Best Practices
Start with Apply Sample, then adjust each band to how far your completed jobs usually land from their estimates.
Use wider bands for larger shipments, which vary more than small ones.
Add a band that covers your largest typical shipment so big moves don't fall back to the default range.
Turn on Apply Hourly Range only on the pricing method defaults for job types you quote as a range.
Preview the estimate in the customer portal after changing a portal type's price settings.
Troubleshooting
New charges don't get a range.
Charges from a tariff follow the Apply Hourly Range switch on the tariff's pricing method default. Charges added by hand follow Apply Hourly Ranges to New Charges in Settings > Estimates > Hourly Ranges. Turn on the one that applies, or add a range to the charge with + Add hourly range.
The charge has no + Add hourly range link.
Hourly ranges are on estimated Hourly and Flat Rate + Hourly moving labor charges only. Actual charges don't support them.
The range isn't what my table says.
Check which band matches the shipment's volume or weight, and whether someone edited Low Hours or High Hours on the charge. A shipment larger than your top band gets the default range.
I see "The high end has to land above the low end."
Change the hours or direction on that hourly ranges row so the high end is above the low end, then click Save Changes.
My subtotal override disappeared.
A charge can't have both an hourly range and a subtotal override. Click Remove Hourly Range, then set the override.
The customer sees one time instead of a range.
Set Pricing Display to Hourly Range in Send Estimate, and check that the moving labor charge has a range. Binding estimates never show a range.
The customer sees the price range in the Estimated Total but not at the top of the estimate.
Open the portal type in Settings > Customer Portal > Online Estimates. With Pricing display: set to Hourly Range, set Hourly price range: to Show.






