Skip to content

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.

WhereFieldsWho sees it
Settings > Pricing > Load TiersPrice min / price max, per load sizeThe public. This is the range on the load-size cards in your form.
Settings > Pricing > Price BookLow / Default / High, per itemThe chatbot, when it quotes. A customer never sees the columns.

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" -- unless the size also has Allow Book Today off, in which case it renders "Custom estimate required". Big Job ships that way, which is why it is usually the one you see it on; a priced Big Job shows its range like any other. 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.

FieldWhat it means
DefaultYour realistic price. The bottom of the range the chatbot quotes -- the least it will go.
HighThe top of the range the chatbot quotes, for a difficult job.
LowKept on the form for your own records. The chatbot no longer uses it: the bottom of the range it quotes is its floor, and there is no lower number behind it.

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 are internal -- a customer hears a total from the chatbot, never the columns. Written estimates are built line by line and do not read the price book.

The chatbot has no range setting of its own

There is nothing to configure. The chatbot prices a job from your price book -- it adds up Default and High across the items the customer describes and quotes that range in plain dollars: "that's a $375 to $425 job". It never says the words low, target, floor, high or range, and it never invents a number below the bottom of the range: if a customer pushes, it can offer the bottom for flexible timing, and past that it hands off to you. 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 one number rather than a range."

It quotes Default-to-High as a range by design, so a customer hears a realistic figure and the top it could reach. To narrow what it says, bring Default and High closer together in the price book.

"I put my target in Low and the chatbot ignores it."

It does. The chatbot reads Default and High only. Put the price you actually expect in Default -- that is the bottom of the range it quotes and the least it will go.

"My chatbot quotes higher than my website."

The website shows a load-tier range; the chatbot quotes a Default-to-High range added up from the price book items the customer named. 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.