commercial-payment-models

activetype/area-docdomain/commercialdomain/finance

Commercial payment models (build vs recurring vs subscription)

TL;DR

LumenDev still separates delivery value (build) from operations value (LumenCare), but clients can pay on three schedules. Path A — full build upfront (or milestones) with the most generous LumenCare bonus. Path Blower upfront + build installments + mandatory recurring from launch. Path Call-in subscription with a minimum term (build cost amortised inside the monthly fee). Infra pass-through stays separate in all paths unless explicitly bundled. Never price below minimum total contract value (TCV) for the same scope.

Why three paths

Client needBest path
Cash now, simple contractA — standard build + optional recurring
Cash tight at signature, can pay monthly after launchB — build installment plan
Predictable opex, “like SaaS”, no big invoiceC — subscription (min term)

All paths use the same scope engine ([[Areas/LumenDev/playbooks/project-build-pricing-framework|build pricing framework]]) and LumenCare tier ([[Areas/LumenDev/playbooks/lumencare-tier-matrix|tier matrix]]). Only cash timing and bonus packaging change.


Shared anchors (do not skip)

  1. Quote the build first — internal Build Fee from points/multipliers (even if client pays $0 upfront on Path C).

  2. Quote recurring second — tier band + infra pass-through (or bundled “biaya server” line).

  3. TCV floor — for the same scope and tier:

    TCV_min = Build_Fee + (Recurring_retainer × Min_commitment_months) + Infra_pass_through_estimate

    Installment and subscription paths may add a financing premium (see below) so TCV ≥ TCV_min or slightly above.

  4. LumenCare bonus = promotional months free, tier uplift, or included months in subscription — not unlimited scope. Bonuses expire; SLA reverts to paid tier unless renewed.

  5. Ownership & default — code/repo access per MSA; missed installment/subscription = pause SLA work (not silent free ops); early exit triggers remaining build balance settlement on B/C.


Path A — Standard one-time build (generous LumenCare bonus)

Best for: clients who can fund delivery; you want the cleanest margin and least collections risk.

Payment shape

ComponentBilling
BuildMilestones (e.g. 40% sign / 40% beta / 20% handoff) or 50/50 sign/handoff
RecurringOptional from handoff; not required for signing build
InfraPass-through monthly ([[Areas/LumenDev/playbooks/monthly-infra-statement-template

LumenCare bonus (generous — default offer)

Pick one primary bundle per deal (document in proposal):

Bonus codeWhat client getsTypical durationCost to LumenDev
A1 — Free FoundationFoundation retainer Rp 03 months after handoff~3 × retainer (e.g. 3 × 600k = 1,8 jt)
A2 — Tier upliftBill Foundation, operate Growth inclusions for SLA cadence6 monthsTime-boxed; no net-new modules
A3 — Annual prepay kickbackIf client prepays 12 months recurring at sign: +2 months free (14 for 12)From prepay dateOnly if cash collected upfront

Stacking rule: A1 or A2, not both; A3 stacks only with paid recurring (not with full free period overlapping A1).

After bonus ends: recurring at agreed tier (Foundation/Growth/Scale) + infra; downgrade only by mutual written change.

Client-facing one-liner

“Bayar pembangunan sekali (atau termin). Setelah live, opsional langganan pemeliharaan — kami beri bonus [3 bulan gratis Foundation / uplift 6 bulan] kalau deal ditandatangani sesuai paket standar.”


Path B — Lower upfront + build installments + recurring

Best for: UMKM/nonprofit with low cash at signature but stable monthly budget after launch.

Payment shape

ComponentRule
Upfront (deposit)30–40% of Build_Fee at contract sign (floor Rp 5 jt unless build < Rp 12 jt → min 40%)
Build installmentsRemainder in 3–6 equal monthly payments; first installment due at beta or +30 days from sign, last by handoff
Recurring (mandatory)LumenCare + infra from handoff month (not optional on this path)
Financing premium+5–10% on Build_Fee or +1 month recurring equivalent — whichever keeps TCV ≥ TCV_min

Example (museum-scale)

Assume internal Build_Fee = Rp 16 jt, Foundation retainer = Rp 600k/mo, infra ≈ Rp 240k/mo, min commitment 6 months recurring:

  • TCV_min ≈ 16 jt + (0,84 jt × 6) ≈ Rp 21 jt (infra included in 0,84)
  • With +8% financing on build: Build billed = Rp 17,28 jt
  • Deposit 35% = Rp 6,05 jt upfront
  • 5 installments × Rp 2,25 jtRp 11,23 jt (adjust last cent in contract)
  • From handoff: Rp 840k/mo × 6 minimum term

LumenCare bonus (moderate)

Bonus codeOffer
B1 — On-time install discount1 month Foundation free if all build installments paid by due dates
B2 — Commitment sweetener2 months Foundation free if client signs ≥ 12 months recurring commitment (can still pay monthly)

No A2-style tier uplift on Path B unless client moves to Path A pricing on renewal.

Guardrails

  • Pause rule: installment > 14 days late → pause non-critical work; > 30 days → handoff blocked, SLA clock stops.
  • Scope lock: installment plan tied to fixed v0 scope; change requests reset timeline and may need repricing.
  • Early termination: client pays remaining build installments + 2 months recurring (or through min term, whichever is higher).

Client-facing one-liner

“DP lebih ringan, sisa biaya pembangunan dicicil [3–6] bulan, setelah live ada biaya bulanan pemeliharaan + server. Bonus [1–2 bulan] LumenCare kalau cicilan dan komitmen bulanan tepat waktu.”


Path C — Full subscription (minimum term)

Best for: clients who want zero or near-zero build invoice and accept 12–24 month commitment.

Payment shape

Treat build as financed internally and recovered through subscription.

InputSymbol
Quoted build (from framework)B
Monthly recurring at tier (retainer only)R
Monthly infra (pass-through or bundled)I
Min contract monthsN (12 or 24)
Financing premiumf = 15–25% of B (higher for longer N or higher risk)
Amortised build per monthB' = B × (1 + f) / N

Monthly subscription (client sees one number):

Subscription_mo = B' + R + I
(or B' + (R+I) with infra itemised in annex — same TCV)

Optional signup fee: Rp 2–5 jt (or 15% of B, cap Rp 5 jt) to reduce N or improve cash flow — not required.

Worked example (same museum anchors)

  • B = 16 jt, f = 20% → financed build = 19,2 jt
  • N = 18 months → B'Rp 1,07 jt/mo
  • R = 600k, I = 240k
  • Subscription_mo ≈ Rp 1,91 jt/mo for 18 months
  • TCV ≈ 1,91 × 18 ≈ Rp 34,4 jt vs Path A TCV_min ~21 jt — premium pays for cash timing + risk.

LumenCare bonus (embedded, not “extra”)

Subscription includes LumenCare for the min term — position as “pemeliharaan sudah termasuk”, not a separate bonus stack.

Bonus codeOffer
C1 — Tier cushionFirst 6 months at Growth response targets while billed as Foundation (time-boxed ops, not new features)
C2 — Prepay subscriptionPay annual subscription upfront → 1 month free (13 for 12)

Guardrails

  • Min term: 12 months (brochure/low change) or 18–24 months (apps, integrations, booking flows).
  • Early termination: Remaining B × (1+f) (unamortised build) + 3 months (R+I) or fee = 40% of remaining subscription value — pick one in MSA; whichever is higher protects margin.
  • Auto-renewal: month-to-month at standard R+I after N unless 30-day written notice.
  • Scope: subscription covers agreed v1; new modules = new B addendum or Phase 2 subscription schedule.

Client-facing one-liner

“Tanpa tagihan pembangunan besar di depan: satu biaya bulanan [X] selama [12/18/24] bulan (sudah termasuk pemeliharaan + server). Komitmen minimum; kalau berhenti lebih awal, sisa nilai pembangunan diselesaikan sesuai kontrak.”


Comparison table (all paths)

Path A Standard buildPath B Installment buildPath C Subscription
Upfront cashHighest (40–100% build)Lowest (30–40% deposit)Lowest (0–15% signup fee)
Build invoiceClear one-time / milestonesDeposit + installmentsHidden inside subscription
RecurringOptionalMandatory from handoffMandatory (bundled)
TCV vs cash timingBaseline TCV_minTCV_min + 5–10%TCV_min + 15–25% on build portion
LumenCare bonusMost generous (A1/A2/A3)Moderate (B1/B2)Included + C1/C2
Collections riskLowestMediumMedium–high (long tail)
Best LumenDev margin qualityBestGood if enforcedGood if min term enforced

LumenCare bonus matrix (quick reference)

PathPrimary bonusSecondaryDo not
A3 mo free Foundation or 6 mo Growth-ops uplift+2 mo on annual prepayUnlimited free support; net-new features in bonus
B1–2 mo free on payment discipline12-mo commitment → 2 moStack A1+A2-level perks
CMaintenance “included” in subscription6 mo response uplift (C1)Price subscription below TCV_min

Bonus cost budget (rule of thumb): keep total bonus value ≤ 12% of Build_Fee on Path A; ≤ 8% on Path B; Path C bonus is priced into f.


Which path to recommend (decision tree)

  1. Can client pay ≥ 40% build at sign without strain? → Path A (+ generous bonus as closing sweetener).
  2. Client needs < Rp 6 jt at sign but can pay ~Rp 800k–2 jt/mo after launch? → Path B.
  3. Client refuses build line item entirely and accepts 12–24 mo contract? → Path C (show TCV comparison so “cheap monthly” is honest).
  4. Nonprofit / museum / cash-strapped UMKM with post-launch budget → B or C, never A with hidden subsidy.
  5. If client asks for free infra or lifetime support → down-tier scope or decline; bonuses are time-boxed months, not perpetual.

Proposal checklist (any path)

  • Internal Build_Fee calculated and saved (even for Path C).
  • LumenCare tier named (Foundation/Growth/Scale) with [[Areas/LumenDev/playbooks/lumencare-tier-matrix|SLA table]] attached.
  • Path letter (A / B / C) and bonus code (A1, B2, etc.) in contract annex.
  • TCV_min and actual quoted TCV shown (Path C: show 18× monthly vs one-time build).
  • Infra: pass-through itemised or bundled “biaya server” — same policy as [[Areas/LumenDev/playbooks/monthly-infra-statement-template|infra template]].
  • Early termination / late payment clauses filled from [[Areas/LumenDev/playbooks/msa-sla-clause-template|MSA template]] brackets.
  • Bonus end date and revert to standard recurring spelled out.

Reference projection — Rp 10 jt build @ Rp 500k/mo ops

Worked example for Foundation-scale delivery. Ops subtotal = single client line Rp 500.000/month (retainer + infra bundled — adjust split internally).

InputValue
B (build)Rp 10.000.000
Ops subtotal ORp 500.000/month
Path B financing+8% → build billed Rp 10.800.000
Path B deposit40%Rp 4.320.000 at sign
Path B installments4 × Rp 1.620.000

TCV summary

Path6 mo ops12 mo ops18 mo ops
A standard13,0 jt16,0 jt19,0 jt
A + A1 (3 mo ops free)14,5 jt
B (+8% build, mandatory ops)13,8 jt16,8 jt19,8 jt
B + B2 (12 mo, 2 mo ops free)15,8 jt
C subscription~17,5 jt (N=12, f=15%)~21,0 jt (N=18, f=20%)
C subscription 24 mo24,0 jt (N=24, f=20%)

Path A — cash & annual

VariantAt signBuild totalYear 1 total
Build only (40/40/20)4,0 jt10,0 jt10,0 jt
Build + 12 mo ops4,0 jt10,0 jt16,0 jt
Build + 12 mo ops + A14,0 jt10,0 jt14,5 jt
Year 2 (ops only)6,0 jt

Path B — cash & annual

VariantAt signMonths 1–4 (install)From handoff (ops)TCV
Min 6 mo ops4,32 jt4 × 1,62 jt6 × 0,5 jt13,8 jt
12 mo ops4,32 jt4 × 1,62 jt12 × 0,5 jt16,8 jt
12 mo + B24,32 jt4 × 1,62 jt2 mo free + 10 × 0,5 jt15,8 jt

Illustrative month 4 handoff month total: 1,62 + 0,5 = 2,12 jt.

Path C — subscription (one monthly line)

Term NPremium fFinanced buildSubscription/moTCV
1215%11,5 jt~1,46 jt~17,5 jt
1820%12,0 jt~1,17 jt~21,0 jt
2420%12,0 jt~1,00 jt24,0 jt

Optional signup fee Rp 1,5 jt (15% of B) at sign — not in TCV above.

Side-by-side (12 mo ops commitment)

Path APath A + A1Path BPath B + B2Path C (12 mo)
TCV16,0 jt14,5 jt16,8 jt15,8 jt~17,5 jt
Cash at sign~4 jt~4 jt4,32 jt4,32 jt0–1,5 jt
Typical month after live0,5 jt0 → 0,5 jt0,5 jt0 → 0,5 jt~1,46 jt

A1 bonus cost at this ops rate: Rp 1.500.000 (3 × 500k). B2: Rp 1.000.000 (2 × 500k).


Reference projection — Rp 10 jt build @ Rp 250k/mo ops (monthly)

Same build/installment rules as above; ops subtotal O = Rp 250.000/month (bundled). Timeline: 3-month build, handoff month 4 (index M0 = contract sign). Tables show cash due that month and cumulative.

Path A — standard build + 12 mo ops (from M4)

Milestones 40 / 40 / 20 (sign / beta / handoff).

MonthEventBuildOpsMonth totalCumulative
M0Sign4.000.0004.000.0004.000.000
M1Build4.000.000
M2Beta4.000.0004.000.0008.000.000
M3Build8.000.000
M4Handoff2.000.000250.0002.250.00010.250.000
M5Ops250.000250.00010.500.000
M6Ops250.000250.00010.750.000
M7Ops250.000250.00011.000.000
M8Ops250.000250.00011.250.000
M9Ops250.000250.00011.500.000
M10Ops250.000250.00011.750.000
M11Ops250.000250.00012.000.000
M12Ops250.000250.00012.250.000
M13Ops250.000250.00012.500.000
M14Ops250.000250.00012.750.000
M15Ops (12th)250.000250.00013.000.000
M16–1713.000.000

TCV (10 jt build + 12 mo ops): Rp 13.000.000 · Peak month: M2 Rp 4.000.000 · Post-live: Rp 250.000/mo

Path A + bonus A1 (3 mo ops free after handoff)

MonthBuildOpsMonth totalCumulative
M04.000.0004.000.0004.000.000
M24.000.0004.000.0008.000.000
M42.000.00002.000.00010.000.000
M5010.000.000
M6010.000.000
M7250.000250.00010.250.000
M8–M14250.000250.000
M15250.000250.00012.250.000

TCV: Rp 12.250.000 (saves Rp 750.000 vs no bonus) · Ops paid M7–M15 = 9 × 250k

Path B — installment build + 12 mo mandatory ops

Build billed Rp 10.800.000; deposit M0; installments M1–M4; ops M4–M15.

MonthBuild / installOpsMonth totalCumulative
M04.320.0004.320.0004.320.000
M11.620.0001.620.0005.940.000
M21.620.0001.620.0007.560.000
M31.620.0001.620.0009.180.000
M41.620.000250.0001.870.00011.050.000
M5250.000250.00011.300.000
M6–M14250.000250.000
M15250.000250.00013.800.000

TCV: Rp 13.800.000 · Heaviest stretch: M0–M2 ≈ 1,6–4,3 jt/mo before ops

Path B + bonus B2 (2 mo ops free, 12 mo commitment)

MonthBuild / installOpsMonth totalCumulative
M04.320.0004.320.0004.320.000
M1–M31.620.0001.620.0009.180.000
M41.620.00001.620.00010.800.000
M5010.800.000
M6250.000250.00011.050.000
M7–M15250.000250.00013.550.000

TCV: Rp 13.550.000 · Build fully paid M4; ops paid 10 × 250k (M6–M15)

Path C — subscription (single line; ops included)

Financed build Rp 12.000.000 at f = 20%. No separate build invoice.

TermSubscription/moM0–M(N-1) each monthTCV
12 mo (f=15%, financed 11,5 jt)~1.208.0001.208.000 × 12~14.500.000
18 mo (f=20%)~917.000917.000 × 18~16.500.000
24 mo (f=20%)~750.000750.000 × 2418.000.000

Path C — 18 mo monthly schedule (recommended compare to B)

MonthSubscriptionCumulative
M0917.000917.000
M1917.0001.834.000
M2917.0002.751.000
M3917.0003.668.000
M4917.0004.585.000
M5–M17917.000
Total M0–M1716.506.00016,5 jt

Optional signup Rp 1.500.000 at M0 → first month effectively lower; not in table.

Snapshot — month 4 (handoff) comparison

PathM4 cash due
A standard2.250.000 (2 jt + ops)
A + A12.000.000 (build only)
B1.870.000 (last inst + ops)
B + B21.620.000 (last inst; ops free)
C (18 mo)917.000

TCV summary @ 250k ops

Path6 mo ops12 mo ops
A11,5 jt13,0 jt
A + A112,25 jt
B11,8 jt13,8 jt
B + B213,55 jt
C 12 / 18 mo~14,5 / ~16,5 jt

A1 / B2 bonus cost @ 250k: Rp 750.000 (3 mo) · Rp 500.000 (2 mo).


Museum project (illustrative only)

Internal build ~Rp 16 jt, recurring Option A ~Rp 840k/mo — see [[Projects/lumendev-museum-ibu-marsinah/context/commercial-pricing-breakdown-v0|build v0]] and [[Projects/lumendev-museum-ibu-marsinah/context/commercial-recurring-budget|recurring budget]].

PathSketch
A16 jt build milestones + bonus 3 mo free Foundation (~1,8 jt value)
B5,6 jt deposit + 5 × ~2,1 jt + 6× 840k mandatory; bonus 2 mo free if 12-mo commitment
C~1,9 jt/mo × 18 all-in (build financed inside); no separate build invoice

Use Friday scope lock to fix B before offering B or C numbers to client.


Related

  • [[Areas/LumenDev/playbooks/lumencare-tier-matrix|LumenCare tier matrix]]
  • [[Areas/LumenDev/playbooks/project-build-pricing-framework|Project build pricing framework]]
  • [[Areas/LumenDev/playbooks/msa-sla-clause-template|MSA/SLA clause template]]
  • [[Areas/LumenDev/playbooks/client-migration-script-wa-email|Client migration script]]
  • [[Areas/LumenDev/LumenDev|LumenDev area hub]]