Discount approvals

The approval policy your team already has, finally enforced

Every company that discounts has a policy. Most of them enforce it with a document nobody opens and a manager who says yes in a DM. Glime moves that policy into the server: a discount over the line routes to the right approver, in the right order, and the quote cannot go out until it clears.

No credit card required · Default ladder live on day one · Change the thresholds anytime

The category

What a discount approval workflow actually has to do

Plenty of tools can send a notification when a number is large. Four things separate that from governance — and the fourth is the one Finance asks about.

  • Route by policy, not by org chart trivia — the threshold decides which role must approve, so the rule survives reorgs and new hires.
  • Run in order — a director's approval should never be able to stand in for the manager review that was skipped.
  • Have a floor nobody can cross — a margin floor and a hard discount ceiling that no amount of approval authority overrides.
  • Be provable later — who approved what, at which price, on what date, without anyone reconstructing it from a Slack export.

The failure mode is always the same: the compliant path is slower than the shortcut, so reps route around it. That is why the ladder below has a self-serve rung — the reasoning is here.

The default ladder

Four rungs, one of which is "nobody"

A new Glime workspace starts with this policy already live. The percentages, roles, and number of rungs are yours to change; the enforcement is not optional.

Line discountWho must approveWhat happens
Up to 10% Nobody — self-serve The rep finalizes and sends. No chain, no waiting, no ceremony for the ordinary deal.
10% – 20% Sales Manager One step. The request lands in the manager's approval inbox with the priced quote attached.
20% – 35% Sales Manager → Regional Director Two steps, in order. The director cannot act until the manager has.
35% – 50% Sales Manager → Regional Director → Finance Three steps. Finance sees blended margin, not just the headline discount.
Over 50% No one The quote cannot be finalized at all. A ceiling that an approver can lift is not a ceiling.

Running alongside the ladder is a 20% blended margin floor. It is computed server-side on every reprice, so a quote assembled from individually acceptable discounts still gets flagged when the mix drops below the floor — the leakage pattern that percentage thresholds alone never catch.

How it is enforced

Enforced by the server, not by the screen

Approval logic that lives in the browser is a suggestion — anything that can call the API can ignore it. In Glime the policy is decided by the backend on every request, and the refusals are part of the contract:

A rep cannot self-approve

Approval authority comes from the role held in the workspace, and the submitter is excluded from their own chain. The API answers 403, whatever the client claims.

Steps cannot jump the queue

Step n is refused while step n−1 is pending — 409. The chain is a sequence, not a set of boxes to tick in a convenient order.

The ceiling holds

Beyond the last band, finalization is refused with 422 no matter who is asking. There is no override role, because an override role is just a taller ladder.

These are the behaviors the backend smoke test asserts on every commit — authentication refusal, tenant isolation, the ordered Manager → Director chain, the ceiling, and the audit trail. Governance you cannot test is governance you are hoping for.

What Finance gets on the other side

The reason to govern discounts is not tidiness — it is the margin review that currently takes a week of archaeology.

An audit trail

Every submit, approve, reject, and finalize, with the actor, the timestamp, and the price at that moment — scoped to your workspace.

Version history

Quotes keep v1 → vN. The version that was approved is still there next to the version that was sent.

Margin at decision time

Blended margin is computed when the approver looks, not reconstructed from an export three weeks later.

An approval inbox

Each approver sees exactly the quotes waiting on their role — which is what makes the compliant path the fast one.

Estimate the leakage you'd recover Draft your own policy

Or read it from your seat: RevOps · sales leaders · deal desk · Finance

Rollout

Live in an afternoon, not a quarter

There is no approval-workflow builder to learn, because the ladder is policy data rather than a flow you assemble.

  1. Write down the policy you already follow. Including the parts nobody wrote down. This step finds more leakage than the software does — the policy builder drafts the wording and estimates what each threshold would route.
  2. Set the thresholds and roles. Four rungs is the default; use two if that is your reality.
  3. Invite the approvers. Sales Manager, Regional Director, and Finance are roles in the workspace — approval authority follows the role, not the person.
  4. Send one real quote through. Watch it route, approve it from the second account, and read the audit entry. That is the whole evaluation.

Migrating from another CRM at the same time? The migration guide covers the CSV path for Salesforce, HubSpot, and Dynamics exports.

Comparing tools on this?

Every comparison below is written on the same eight dimensions, including the rows where the other product wins.

  • vs Salesforce CPQ — the managed-package incumbent: architecture, implementation time, total cost.
  • vs DealHub — a strong quoting layer that sits on top of the CRM you keep.
  • vs Conga CPQ — enterprise configuration machinery, and when you actually need it.
  • vs PandaDoc — document approval versus discount approval; they are not the same thing.
  • All comparisons →

Questions teams ask

What is a discount approval workflow?

A rule that decides who must say yes before a discounted quote can be sent. A workable one has four parts: thresholds that route to a named role, an order the steps run in, a floor that cannot be crossed at all, and a record of every decision. Glime ships all four as product behavior — the default ladder is self-serve to 10%, Sales Manager to 20%, Regional Director to 35%, Finance to 50%.

Can a sales rep approve their own quote?

No. The approval is refused by the server with a 403, regardless of what the client sends. Approval authority comes from the role a user holds in the workspace, and the submitter is excluded from their own chain.

Can approval steps be taken out of order?

No. Step n cannot be decided while step n−1 is still pending; the server returns 409. That is what stops a Finance sign-off from quietly standing in for the manager review that never happened.

What happens beyond the discount ceiling?

Nothing finalizes. Past the last band in the policy — 50% by default — the quote cannot be finalized at all and the server returns 422. There is no approver who can wave it through, which is the point of a ceiling.

Will approvals slow our reps down?

Below the self-serve limit nothing fires at all — most quotes never touch the chain. Above it, the request routes to the approver's inbox with the pricing already calculated, which is faster than the Slack thread it replaces.

Can we change the thresholds and roles?

Yes. The ladder is policy data, not code: change the percentages, the roles, or the number of rungs. Most teams start by encoding the policy they already follow informally, which is usually the finding rather than the change.

Do approvers get notified outside the app?

Today the approval inbox is in-app, and email or Slack delivery is the next step on this roadmap — we would rather say that than imply a notification that is not there yet. The Slack integration page describes where it will land.

Put one real quote through the ladder

The sandbox is the real product with sample data — no signup. Or start a trial, invite a manager, and watch a 28% discount route to them.

Complex pricing or a policy you'd like reviewed? Book a guided demo →