Pricing, Discounts & Payment Terms Playbook
Process ยท biz/process/03-pricing-payments-discounts.md

Pricing, Discounts & Payment Terms Playbook

How to assemble, price, discount, and get paid for a job โ€” so every quote is consistent, defensible, and lands in the bank. Operational playbook โ€” derived from Business model + Decisions log (settled) + Brand strategy.


TL;DR โ€” Daniel's three questions

  • Payment options? SA: 50% deposit to book, balance Net 7โ€“14, ZAR, card/EFT via Paystack (Yoco for in-person). INTL: 50% upfront, invoice in USD/GBP, milestones or escrow offered as a feature to first-timers, paid via Wise/Payoneer (~2%). See ยง4.
  • Discounts for early clients? Exactly one "founding client" slot per package, and only ever traded โ€” in writing, before the price drops โ€” for a named case study + before/after metrics rights. It is the cheapest CAC we have. No other discounting. See ยง3.
  • What should the targets be? R25โ€“35k/mo net by month 12 at ~11โ€“17 h/wk (floor ~R20k, peak months R45โ€“55k; recurring floor R9โ€“14k/mo by Q4). Steer by deal flow ร— the hours ceiling, not price-per-job โ€” and push toward the top by raising the INTL Repaint anchor, not by adding volume. See ยง5.

The published ladder (recap only โ€” detail lives in Business model)

Prices are fixed published scope, never hourly. INTL price is the invoice currency; ZAR shown at spot R16.33/$ but plan and realize at an R16.0/$ buffer. The internal shadow rate R900/hr is a sanity check only โ€” never quoted to a client.

# Package SA INTL One-line scope boundary
0 Signal Audit R3,500 $250 / ยฃ185 Paid discovery; credited to a build booked โ‰ค30 days
A Launch R18,000 $1,750 / ยฃ1,300 New โ‰ค5-page site, 1 revision
B Repaint (HERO) R28,000 $2,750 / ยฃ2,040 Existing site/app rebuilt on modern stack, โ‰ค10 pages, 1 revision, 2โ€“3 wk
C Storefront R55,000 $4,500 / ยฃ3,340 E-comm โ‰ค50 SKUs โ€” "occasional big fish," not monthly
D Chat Agent R15,000 + R1,800/mo $2,000 / ยฃ1,485 + $150/mo ONE agent, ONE channel, ONE integration. SA = "WhatsApp Receptionist" (600-convo cap + ~R3/convo overage; busy tier R3,500/mo). INTL web-chat variant ~R1,500/mo / $150/mo
E Voice Agent (DEFERRED Q3) R22,000 + R2,500/mo $2,800 / ยฃ2,080 + $250/mo Sold only after metering substrate + โ‰ฅ2 paying leads
F Automation Sprint R38,000 $3,000 / ยฃ2,230 Fixed 4โ€“6 wk, defined workflow set
G Care Plan Basic R900/mo ยท Std R1,500/mo $60/ยฃ45 ยท $95/ยฃ70 Best-effort, no hard SLA
H Wrap (on-request) R14,000 + R1,200/mo $900 / ยฃ670 + $150/mo Existing web app โ†’ native, never from scratch

This doc is about assembling and delivering a quote, not re-teaching the ladder. The ladder, scope boundaries, and unit economics are settled in Business model; change them there, not here.


1. The quoting process

A quote is assembled, not invented each time:

Quote = base package + optional delivery stages + recurring line + add-ons.

  1. Start from written scope. Ideally the output of a Signal Audit (or a free 2-min look โ†’ offered as the ladder, never ambushing each other โ€” see Brand strategy). Scope on paper first is the single best defence against creep.
  2. Pick ONE base package off the ladder that matches the trigger/ICP. Don't blend packages โ€” if it's bigger than the box, it's the next package up, not a bent version of this one.
  3. Add optional delivery stages if the build ships in phases โ†’ see Delivery ladder. Each stage is its own fixed line.
  4. Attach the recurring line (Care Plan and/or Chat) as a separate monthly figure, billed on its own rail โ†’ see Recurring & Care Plans. Never fold the retainer into the build price.
  5. Add add-ons (extra pages, extra revision round, rush, broadcast/marketing messages) as itemised lines โ†’ see Services & add-ons.
  6. Sanity-check against the shadow rate. Estimate all-in hours (build + revisions + discovery/SOW/invoicing/handoff + support) ร— R900. If the fixed price implies below ~R700/hr effective, narrow the scope or move up a package โ€” do not silently eat it. (The ~R700/hr floor is Proposed โ€” not yet in DECISIONS.md.)
  7. Currency. INTL: invoice at the published INTL price in the client's currency; convert to ZAR at R16.0/$ only for your own planning math.
  8. Respect the concurrency cap. One active build + a waitlist. If a build is live, quote a start date after it, never a parallel promise.
  9. Apply a founding discount only if a named-reference trade is agreed in writing (ยง3).
  10. Write it into the SOW skeleton (ยง7) with the correct terms block (ยง4).

2. Change orders

Scope creep is the #1 documented failure mode (reverts productized offers to bespoke within ~90 days; ~$7,800โ€“15,600/yr lost). The discipline:

  • Anything off the published scope = a change order, billed at R900/hr SA ยท $110/hr INTL. This is the only hourly number a client ever sees.
  • Quote it in writing and get sign-off BEFORE any work starts. No verbal "sure, I'll add that."
  • "Upsell to the next package, never bend the current one." A request that's really a bigger job โ†’ re-quote as the higher package, not as unbilled goodwill.
  • Through an agency partner, scope changes route back to Daniel for a written re-quote โ€” the agency owns the client but not the scope line.
  • Proposed minimum billing: change orders billed in a 1-hour minimum, then 30-min increments โ€” not yet in DECISIONS.md.

3. Founding-client / early discounts

The reference engine calls for one discounted "founding client" per package, traded explicitly for a named case study + before/after metrics rights. This is the cheapest customer acquisition we have โ€” the discount is the entire marketing spend for that reference.

Policy:

Rule Detail
Slots One per package, maximum. Once a package has its founding reference, the slot is closed.
The trade (non-negotiable) Discount applies only in exchange for a named case study + before/after metrics rights, agreed in writing before the price drops. No signed rights โ†’ no discount. "The discount buys a reference, never a signature."
Priority Fill the biggest proof gap first: arm's-length references (both current cases โ€” Berlein, Aerias โ€” are friendlies) and the first INTL reference (the Signal Audit is the low-stakes trust-bridge for manufacturing this).
Max discount (Proposed) 25โ€“30% off the published price as the default (this deliberately lands near the agency-wholesale depth โ€” e.g. a founding Repaint โ‰ˆ R19,600โ€“21,000). Extend to ~40% only for a marquee arm's-length INTL reference. This band is Proposed โ€” not yet in DECISIONS.md.

Distinguish from ad-hoc discounting โ€” which we avoid:

  • Never discount to close a hesitant buyer. That trains the market to negotiate and damages the anchor. If price is the objection, drop to a smaller package (Launch, or a Signal Audit first), don't cut the price of this one. (Proposed as a standing rule โ€” not yet in DECISIONS.md.)
  • Risk-reversal is soft promises only โ€” fixed price honoured, you own everything, no lock-in โ€” never money-back (Brand strategy #10). A discount is not a substitute for confidence.

4. Payment terms & rails

SA clients

Currency ZAR
Deposit 50% to book the slot and start
Balance Net 7โ€“14 from handoff
Rails Paystack (card/EFT, and recurring billing) ยท Yoco for in-person/quick card
Recurring Monthly on Paystack, separate from the build invoice

INTL clients

Currency Invoice in USD/GBP; plan/realize at R16.0/$
Upfront 50% upfront
Structure Offer milestones or platform escrow as a FEATURE to first-time INTL clients โ€” it disarms the "remote solo" pattern-match a burned UK/US buyer sees. Frame it as their safety, not your concession.
Rails Wise / Payoneer (~2%); Upwork takes 15% when the deal comes through the platform (plus ~2% on withdrawal) โ€” factor both into the R16.0/$ realized math

Proposed default rail ordering: Paystack primary for SA (Yoco for in-person), Wise primary for INTL. Rails themselves are grounded in the source docs; the "primary default" ordering is Proposed โ€” not yet in DECISIONS.md.

Terms block โ€” SA (paste into the SOW)

Fixed price: R[TOTAL] for the scope above. 50% deposit (R[HALF]) books your slot and starts the work; the balance is due within 7 days of handoff. Priced in ZAR, paid by card or EFT. The price is fixed for this scope โ€” anything outside it is quoted in writing before any work starts (R900/hr). On final payment you own all the code and accounts; it's month-to-month after that, cancel any time, no lock-in.

Terms block โ€” INTL (paste into the SOW)

Fixed price: $[TOTAL] for the scope above. To keep a first project low-risk we work in milestones (or platform escrow if you prefer): 50% to start, 50% on handoff, and you approve each stage before it's billed. Invoiced in USD/GBP. The price is fixed for this scope โ€” anything outside it is quoted in writing first ($110/hr). On final payment you own all the code and accounts; it's month-to-month after that, cancel any time, no lock-in.


5. Targets โ€” what to steer by

Honest band (net, by month 12, at ~11โ€“17 h/wk):

Band Net/mo Note
Floor ~R20k reachable ~month 6; recurring alone covers ~half of it
Steady R30โ€“35k the sustainable landing zone (~R35k at ~11 h/wk)
Peak months R45โ€“55k intermittent, via the price lever โ€” not a baseline
Recurring floor R9โ€“14k/mo by Q4 the ballast against project lumpiness

Quarter-by-quarter (from Roadmap):

Quarter Net revenue target
Q1 (m1โ€“3) R8โ€“18k/mo by exit
Q2 (m4โ€“6) R15โ€“25k/mo
Q3 (m7โ€“9) R22โ€“32k/mo
Q4 (m10โ€“12) R25โ€“35k/mo (peak months R45โ€“55k); recurring base R9โ€“14k/mo

The one operating truth that governs pricing:

The binding constraint is qualified deal flow ร— the ~20 h/wk ceiling โ€” NOT price-per-job. Volume is hours-capped, so you cannot grow by taking more builds. You push toward the top of the band by raising the INTL Repaint anchor from $2,750 โ†’ $3,500โ€“4,500 once arm's-length references exist (settled in Decisions log). A price lever, not a volume lever.

When to reprice (pre-agreed triggers from the KPI checkpoints):

  • M3 โ€” if measured all-in Repaint hours exceed ~40h, the fixed price underprices the work โ†’ raise SA Repaint to R32โ€“35k / INTL to $3,500, or narrow scope to โ‰ค6 pages.
  • M6 โ€” if retainer support runs >2.5 h/mo/client, recurring is underpriced/over-scoped โ†’ reprice Care to R1,200 Basic / R1,800 Std and cap scope harder.
  • M12 โ€” if stuck at R15โ€“20k the ceiling is deal flow (raise INTL anchors, deepen the niche); if above R35k but hours >18 h/wk, stop taking projects, raise prices, convert excess to recurring โ€” protect the day job over growth.

6. Agency wholesale (Bree Media House / ICP-C)

Dual-rate, settled in Decisions log:

Model Rate When
Wholesale All build packages at retail โˆ’ 25โ€“30% (Repaint โ†’ R20,000โ€“21,000 / ~$1,950), plus bespoke day rate R7,000 / $430 Agency resells under their own brand
Finder's fee 10% of invoice value Daniel keeps the client relationship
  • Always keep the hosting/retainer layer โ€” it is the anti-capture moat, the one thing the agency can't cheaply replace.
  • The 25โ€“30% figure is an unverified estimate (research grounds only the ~10% referral norm) โ€” validate it with partner #1 (Bree Media House) before treating it as fixed.
  • Agency scope changes route back to Daniel for a written re-quote (ยง2).
  • โ›” No hospitality leads through this channel, ever โ€” hospitality decline is stated in every agency-partner brief.

7. Quoting checklist

Before a quote goes out:

  • Scope is written down (Signal Audit output or explicit free-look notes)
  • One base package chosen โ€” not a blend
  • Delivery stages, recurring, and add-ons are separate itemised lines
  • Recurring is a monthly figure on its own rail, not folded into the build
  • Shadow-rate sanity check done โ€” effective rate โ‰ฅ ~R700/hr, else rescope/upsell
  • INTL: invoiced in client currency; my planning math at R16.0/$; channel take (Upwork 15%, ~2% rail) accounted for
  • Concurrency cap respected โ€” start date reflects the waitlist if a build is live
  • Founding discount only with signed case-study + metrics rights
  • Correct terms block (SA vs INTL) pasted, with deposit % and change-order rate stated
  • No hospitality. No AI hype, no tech-stack talk in the client-facing copy
  • Risk-reversal is soft promises only โ€” no money-back language

8. Quote / SOW skeleton

danielslater.dev โ€” Statement of Work

Client:            [name / business]
Prepared:          [date]        Valid for: 14 days
Prepared by:       Daniel Slater ยท Cape Town

WHAT YOU GET (fixed scope)
  Base package:    [Package name]                         R/$ [price]
  Delivery stages: [stage 1 / stage 2, if phased]         R/$ [price]
  Add-ons:         [extra pages / extra revision / rush]  R/$ [each]
  --------------------------------------------------------------------
  One-off total:                                          R/$ [TOTAL]

  Recurring (billed monthly, separate):
  [Care Plan tier / Chat Agent retainer]                  R/$ [/mo]

NOT INCLUDED (change-order territory, R900/hr ยท $110/hr, quoted first)
  - [anything the client might assume is in but isn't]

TIMELINE
  Start:           [date โ€” after current build if a slot is queued]
  Delivery:        [X weeks], [N] revision round(s) included

PAYMENT           [paste the SA or INTL terms block from ยง4]

OWNERSHIP & CONTINUITY
  You own all code and accounts on final payment.
  Month-to-month after handoff. No lock-in.

Open decisions (โ†’ DECISIONS.md)

Flagged Proposed in this doc โ€” Daniel to ratify or amend; the log disposes:

  1. Founding-client discount band โ€” 25โ€“30% default (extend to ~40% for a marquee arm's-length INTL reference), one slot per package, released only against a written case-study + metrics-rights trade. (The concept is in the reference engine; the specific band is new.)
  2. No ad-hoc discounting rule โ€” discounts buy a named reference, never close a hesitant signature; drop to a smaller package instead of cutting price.
  3. Shadow-rate sanity floor โ€” reject or rescope any quote whose fixed price implies below ~R700/hr effective.
  4. Change-order minimum billing โ€” 1-hour minimum, then 30-minute increments.
  5. Default deposit-rail ordering โ€” Paystack primary (Yoco in-person) SA; Wise primary INTL. (Rails are grounded; the default ordering is the new bit.)