← Back to Help Center

Profit guardrails and Needs your OK

Set the lowest margin you'll take and the biggest discount you allow. Every quote gets checked against both before it goes to a customer, and anything that misses waits for your OK.

What gets checked

Four things, all worked out from the numbers already on the quote. Nothing is guessed and no AI is involved, so the same quote always gets the same answer.

CheckWhat it looks atWhen it stops a quote
Minimum marginWhat's left of the price after your costs, before taxBelow the minimum you set
Biggest discountLines priced under your price book, and any discount lineMore than the limit you set
Material costsPrice book items whose cost went up since the line was writtenAny increase
Missing piecesLines with no description or no quantity, and lines with no cost when you've set a minimum marginAlways

Two more things show up as a note but never stop anything: a quote with no labor line, and a line priced at $0. Either can be exactly right, so they're there to catch a slip, not to slow you down.

Turning it on

Both numbers are off until you set them, because the right margin for a painter and an HVAC shop isn't the same. Set them in Settings > Workspace > Profit guardrails. Leave a box blank to turn that check off.

ℹ️

The margin check needs a cost on every line that earns money. A quote with one costed line and four without has an unknown margin, not a good one, so RadiusOS asks for the missing costs instead of guessing. Material costs from your price book fill in on their own.

The discount and material checks compare against your price book, so they only see lines you picked from it. A line you type from scratch has no list price to be discounted from. On Free, which has no price book, the discount check still sees discount lines.

When a quote needs your OK

Open the quote on the customer's page and the check sits above the send buttons, with what's wrong and what you can do about it.

1

Fix it

Edit the price or fill in the cost. The check runs again the moment you save, and if the quote passes it's ready to send.

2

Use current costs

For material costs that went up. This copies today's price book costs onto the lines. It never changes what the customer pays; that stays your call.

3

OK it

When the low margin or the big discount is on purpose: a repeat customer, matching a bid, a job you want for the photos. Add a reason if you like. The OK is saved with your name and the time.

⚠️

An OK only covers the quote as it was when you gave it. Change a price, a cost or a line afterwards and the quote needs another look. That's on purpose: an OK for a 28% margin shouldn't carry over to the same quote edited down to 6%.

A blank line or an empty quote can't be OK'd, only fixed. Those are typos, not pricing decisions.

The Needs your OK list

Needs your OK in the sidebar is every quote and job waiting on a pricing decision, in one place. Things one step from money come first.

GroupWhat's in it
Below your minimum marginDraft quotes under your minimum
Discount over your limitDraft quotes priced further under your price book than you allow
Material costs went upDraft quotes written before your costs rose
Ready to sendDraft quotes that passed every check
Missing prices, costs or scopeDraft quotes that can't be checked yet
Won, not on the calendarQuotes the customer accepted whose job isn't scheduled
Needs a quoteJobs with no quote, and approved site visits from the last 60 days with no quote

There's no dismiss button. Each row is there because of the state of a quote or a job, so fixing the quote or moving the job is what clears it. A lead you've decided not to quote clears when you cancel the job. Repeat visits from a service agreement never show up as needing a quote, because they're already priced.

Only the owner and office see this list and these numbers. Someone on the Field role who tries to send a quote that needs your OK is told it's waiting on you, without the margin.

Sending from anywhere

The check runs however a quote is sent: by email, for a signature, handed over for an in-person signature, or from your AI assistant. If you've connected Claude, ChatGPT or Cursor, "what's waiting on me?" reads the same list. Your assistant can't OK an exception for you. That decision is made in RadiusOS, by you looking at the numbers.

Marking a quote as sent by hand still works, because that records something that already happened.