project-build-pricing-framework

activetype/area-docdomain/commercialdomain/finance

Project build pricing framework

TL;DR

Price the build in transparent blocks: base effort (features + requirements) + risk/complexity + deadline multiplier + service add-ons + infra/third-party actuals. Always show these blocks separately so clients can see exactly what drives the number and what can be reduced by changing scope or timeline.

Pricing structure (what client pays)

| Block | Purpose | Billing model | |---|---|---| | Build fee | One-time delivery of agreed scope | Fixed fee per approved scope | | Service add-ons | Optional non-core services (copywriting, SEO setup, analytics setup, etc.) | Fixed per add-on or pass-through + admin fee | | Infra + third-party | Hosting, domain, API, WhatsApp/email credits, SaaS tools | Pass-through actuals (use statement template) | | Maintenance (optional/ongoing) | Post-go-live support and SLA operations | Monthly recurring (LumenCare tier) |

Build fee formula

Build Fee = (Feature Effort + Requirement Effort) x Complexity Multiplier x Deadline Multiplier + PM/QA Buffer

Use this formula as internal calculation, then present client-facing quote in line items.

Step 1 - Feature effort points

Use points first, then convert to IDR so estimation stays consistent.

| Feature size | Example | Points | |---|---|---:| | XS | Static section, simple CRUD screen, basic form | 1 | | S | CRUD + validation + role check | 2 | | M | Module with workflow/state transitions | 3 | | L | Multi-step flow, reporting, dashboard with filters | 5 | | XL | Complex integration-heavy module | 8 |

Conversion anchor (starter):

  • 1 point = IDR 750,000 to IDR 1,250,000 depending on project type.
  • Pick one anchor per proposal and keep it consistent inside that quote.

Step 2 - Requirement effort points

Add non-feature requirements that still consume build time.

| Requirement factor | Low | Medium | High | |---|---:|---:|---:| | Integrations (payment, WA, ERP, etc.) | 1 | 3 | 5 | | Data migration/cleanup | 1 | 3 | 5 | | Auth/security requirements | 1 | 2 | 4 | | Reporting/export needs | 1 | 2 | 4 | | Compliance/audit trail | 1 | 3 | 5 |

Requirement Effort = Sum of selected points x point price

Step 3 - Complexity multiplier

Apply after effort totals so risk is explicit, not hidden.

| Complexity profile | Multiplier | |---|---:| | Straightforward (low unknowns) | 1.00 | | Moderate uncertainty | 1.15 | | High coupling/legacy constraints | 1.30 | | Critical + high unknowns | 1.45 |

Step 4 - Deadline multiplier

Charge urgency explicitly. Fast timeline means extra coordination cost and context switching.

| Delivery pressure | Rule | Multiplier | |---|---|---:| | Normal | Feasible capacity, no weekend push | 1.00 | | Tight | Needs priority over other work | 1.15 | | Urgent | Requires overtime/weekend buffers | 1.30 | | Crisis | Major schedule compression | 1.50 |

Step 5 - PM/QA buffer

Always add delivery hygiene buffer to protect quality.

  • Default: 10% - 20% of subtotal after multipliers.
  • Includes: sprint planning, demos, revisions within scope, QA cycle, release prep.

Step 6 - Service add-ons (separate from build)

Keep add-ons outside core build fee so client can opt in/out.

| Add-on | Example billing rule | |---|---| | Product discovery/workshop | Fixed session pack | | Copywriting/content entry | Per page/item or fixed bundle | | SEO setup | Fixed setup + optional monthly | | Analytics/dashboarding | Fixed setup + integration effort | | Training/handover | Per session |

Step 7 - Infra and third-party billing

Never hide infra inside build fee for production systems.

  • Bill at pass-through actuals + agreed admin fee.
  • Use [[Areas/LumenDev/playbooks/monthly-infra-statement-template|monthly infra statement template]] for transparency.
  • State assumptions in proposal (estimated monthly usage, excluded overage, who owns vendor accounts).

Client-facing quote layout (recommended)

Use this exact order in proposal:

  1. Scope summary (in-scope vs out-of-scope)
  2. Build fee breakdown:
    • Feature effort subtotal
    • Requirement effort subtotal
    • Complexity/deadline adjustments
    • PM/QA buffer
  3. Add-ons (optional)
  4. Infra/third-party estimate + billing policy
  5. Post-go-live maintenance options (LumenCare tier)

This order makes price logic auditable and avoids "angka asal" perception.

Example (quick)

Assumptions:

  • Feature points: 18
  • Requirement points: 9
  • Point price: IDR 1,000,000
  • Complexity: 1.15
  • Deadline: 1.15
  • PM/QA buffer: 12%

Calculation:

  • Base effort = (18 + 9) x 1,000,000 = IDR 27,000,000
  • Adjusted subtotal = 27,000,000 x 1.15 x 1.15 = IDR 35,707,500
  • PM/QA buffer (12%) = IDR 4,284,900
  • Build fee = IDR 39,992,400 (round to quotation policy)

Client explanation (short): "The fee is driven by 27 total effort points, then adjusted for integration complexity and a compressed timeline. Infra and third-party usage are billed separately at actuals, so you only pay based on real consumption."

Negotiation guardrails

  • If client asks lower price, reduce scope first (points down), not margin blindly.
  • If deadline is fixed and short, keep multiplier; offer phase split instead.
  • If budget is capped, create Phase 1 (must-have) and Phase 2 (later) pricing.
  • Put revision limits in writing (for example, 2 rounds included).
  • Expire quote validity in 7-14 days for volatile scope/cost assumptions.

Proposal checklist before sending

  • Point assumptions documented and traceable to features.
  • In-scope/out-of-scope written explicitly.
  • Deadline assumption and multiplier explained.
  • Infra + third-party marked as pass-through actuals.
  • Maintenance model linked to [[Areas/LumenDev/playbooks/lumencare-tier-matrix|LumenCare tier matrix]].
  • Payment milestone terms clear (for example 50/30/20 or 40/40/20).
  • If client needs lower upfront or subscription pricing, link [[Areas/LumenDev/playbooks/commercial-payment-models|commercial payment models]] (Paths B/C) and show TCV_min vs financed TCV.

Related

  • [[Areas/LumenDev/playbooks/commercial-payment-models|Commercial payment models]]
  • [[Areas/LumenDev/playbooks/lumencare-tier-matrix|LumenCare tier matrix]]
  • [[Areas/LumenDev/playbooks/monthly-infra-statement-template|Monthly infra statement template]]
  • [[Areas/LumenDev/playbooks/msa-sla-clause-template|MSA/SLA clause template]]