Junk removal
Range pricing: one idea, two screens
Low and high prices are entered in two different places in HaulHQ and behave differently in each. This page covers both, because documenting them apart is what makes them confusing.
This is part of the Junk removal workflow
Renting dumpsters? Start with the booking workflow.HaulHQ asks you for a low and a high price in two separate places. They look like the same setting and they are not: one is shown to the public, the other drives written estimates and the chatbot. Nobody has ever been told which is which.
| Where | Fields | Who sees it |
|---|---|---|
| Settings > Pricing > Load Tiers | Price min / price max, per load size | The public. This is the range on the load-size cards in your form. |
| Settings > Pricing > Price Book | Low / Default / High, per item | You, while building an estimate -- and the chatbot, internally. |
Load tiers: the range the customer sees
This is the only one of the three that a visitor to your website ever reads. Each load tier has a price min and a price max, and the card shows that span -- "$250 to $450".
Blank means "Call for pricing"
A tier with no min and no max does not show a blank price. It renders "Call for pricing" -- except Big Job, which renders "Custom estimate required" instead, because it always goes to a written estimate rather than a booking. If every card says "Call for pricing", it is because the fields are empty, not because something is broken. Fill in only one of the two and you get "Starting at $X" or "Up to $X".
Price book: low, default and high per item
The price book is a per-item list -- couch, mattress, refrigerator, stairs fee -- and each item carries three numbers rather than two.
| Field | What it means |
|---|---|
| Low | Your floor. The least you will do this item for. |
| Default | Your realistic price. This is what lands on an estimate line. |
| High | Your anchor. The top of the range, for a difficult job. |
There is also a Minimum Job Price, which is the floor for a whole job regardless of what the items add up to. These numbers build your written estimates, and they are internal -- a customer sees the estimate total, never the columns.
The chatbot has no range setting of its own
There is nothing to configure. The chatbot prices a job from your price book -- it sums Low, Default and High across the items the customer describes, then quotes the high number as a single confident price. It is explicitly instructed never to read a range out loud, and never to say the words low, target, floor or high. If its prices are wrong, the price book is the only place to fix them.
Common mistakes
"I set the range on my price book but my website still says Call for pricing."
Different screen. The public range comes from load tiers, not the price book. Fill in price min and price max on each tier.
"I want the chatbot to quote a range rather than one number."
It does not do that, by design. The bot works out a range internally and presents the high end as one confident number -- it is instructed never to read a range out to a customer. To change what it quotes, change your price book.
"Low is what I want to charge."
Low is your floor, not your target. Default is the price you actually expect. Setting Low to your target leaves you no room and turns every negotiation into a loss.
"My chatbot quotes higher than my website."
That is the design. The website shows a load-tier range; the chatbot quotes the high end of a summed price-book estimate as its opening anchor. If the gap is too wide, the two screens disagree about what a job costs and the price book is usually the one to fix.