WFDASH-WEBAPP/docs/sops/approver-supervisor.md

122 lines
5.2 KiB
Markdown

# Approver / Supervisor — Quickstart
**One-line job:** keep the team unblocked, the system healthy, and
the customers happy.
You don't do the pricing or the driving. You make sure the people
who do have what they need, the system gives them the right signals,
and the customers don't fall through the cracks.
## What you do
- Sign off quotes that landed in `/quotes/approvals`.
- Handle escalations the operators bring to you (discount, cancellation,
customer complaint, supplier dispute).
- Pull the weekly KPI one-pager, run the Monday standup.
- Write the Friday summary.
- Set pricing policy when costs / markets shift.
## Your day
| Time | What to do |
|---|---|
| **08:00** | Open `/quotes/approvals`. Clear the queue. Anything > 4 hours old = bug. |
| **08:30** | Glance at `/dashboard`. Approval rate, pipeline depth, follow-ups due. Anything red? |
| **13:00** | Re-check `/quotes/approvals`. Anything still pending from this morning is now a bug. |
| **17:00** | Triage escalations. Every escalation gets a decision or a clear next step. |
**Monday** (90 min block): pull the weekly KPI one-pager, run the
standup (15 min), update pricing policy if needed.
**Friday** (afternoon): write the 1-page weekly summary, forecast
next month's cash collection.
## How to do the common stuff
### 1. Approve a quote
1. Open `/quotes/approvals`. Oldest first.
2. For each quote, check:
- **Customer + rep** — known account? Standing discount?
- **Every line priced** — any zeros? Refuse and send back.
- **Markup** — does it match the policy for this category / customer?
- **Validity date** — realistic?
3. **Approve** (status → `approved`, operator can send) or
**Request changes** (operator re-prices) or **Reject** (with
a reason — not a silent "no").
4. **Log the decision in the quote's notes** if it's non-obvious
(e.g. "approved at 18% markup per Aug 2026 customer contract").
### 2. Handle a "should I give this discount?" escalation
- **< 5%** — the operator can do it. Tell them to apply and log.
- **5-15%** — if strategic account OR one-off (large order, end-of-line),
approve. Otherwise tell the operator to push back.
- **> 15%** — you (or the owner) call the customer. Don't delegate.
### 3. Handle a "customer wants to cancel" escalation
- **No PO sent yet** — easy, cancel the line.
- **PO sent, supplier hasn't confirmed** — phone the supplier NOW
(most will cancel without charge if pre-confirm).
- **PO confirmed, goods in transit / collected** — three options:
accept and book to stock, refuse delivery (restocking fee?), or
return-to-vendor. You decide based on the customer + the cost.
### 4. Set / change pricing policy
1. Identify the scope (category? customer? supplier?).
2. Pull the data: current avg markup for that scope, competitor
pricing, supplier cost trend.
3. Document the change: scope, new range, effective date, why.
4. Communicate: post in the team chat, mention Monday standup, pin
in `/settings` if there's a policy field.
5. Audit after 2 weeks — is the team actually applying it?
## Don'ts — the 3 things you must never do
1. **Never approve a quote without reading it.** 30-second reviews
miss the wrong SKU, wrong qty, wrong customer. If you don't have
time, do it later. Don't rubber-stamp.
2. **Never reject an operator's escalation without a reason.** "No"
is demoralising. "No, because the markup is below the policy
for this category" is a teachable moment.
3. **Never push a system-level decision to the operators.** If
the data is wrong, the SOP is unclear, or a workflow is
broken — that's yours to fix, not theirs to work around.
## When to escalate to the owner (the 4 most common situations)
- **Strategic account (top 10% by spend) wants bespoke terms.** Call
the owner. Strategic accounts can have bespoke anything; it's
a relationship call, not an SOP.
- **A supplier wants to renegotiate terms that change > 20% of our
spend.** Call the owner. This is a business call, not an
operator call.
- **A customer escalates a quality issue and asks for the owner /
MD by name.** Call the owner. Don't try to be the buffer.
- **Anything involving a refund > R50,000, a credit note > R100,000,
or a write-off.** Call the owner. Documented, in writing.
## How you're measured (the 3 numbers that matter)
1. **Approval turnaround** — target: **< 4 working hours median.**
(Quotes don't sit in your queue.)
2. **Escalation response time** — target: **< 2 working hours.**
(Operators aren't blocked waiting on you.)
3. **Team KPI attainment** — target: **> 80% of operator KPIs at
target** each week. (Your team is doing their job.)
Bonus number: **catalogue coverage** — target > 60% of quote items
matched. If low, the Pricelist Curator needs to upload more supplier
lists. That's your nudge, not theirs.
## Who to ask
- **The owner / MD** — for any of the 4 escalation situations above,
anything strategic, anything you can't decide alone.
- **Other supervisors / industry peers** — for pricing policy sanity
checks ("does this markup make sense for JEI?").
- **When in doubt, write it down.** If you made a decision, log it
in the relevant record. Future you (and the auditors) will
thank you.