Skip to main content

Templates, Clause Library & Pricing

Reusable templates/clauses and how pricing terms map to milestones.

C
Written by Catalin Fetean
Updated over 2 weeks ago

Audience: Legal, Admins, Product, Authors
Outcomes: Faster drafting; billable, enforceable terms

Templates

  • Structure: Header (title, parties), Clauses (scope, IP, confidentiality, liability, payment)

  • Variables: {{company_name}}, {{daily_rate}}, {{currency}}

  • Conditionals: include clause if {{is_retainer}} == true

Sample (YAML)

name: Service Agreement - Standard vars: company_name: "" daily_rate: 0 currency: "USD" is_retainer: false clauses: - id: scope text: "Provider delivers design services as per attached SOW." - id: payment text: "Rate: {{daily_rate}} {{currency}} per day. Deposit due on signature." - id: retainer when: "{{is_retainer}} == true" text: "Monthly retainer billed in advance; unused hours do not roll over."

Clause library

  • Pre-approved blocks with owner and last-review date

  • Mark mandatory vs optional; only Admins/Legal can publish

Pricing models (short reference)

Model

When to use

Notes

Flat price

One-off project

Single milestone or deposit + final

Per-seat

SaaS seats

Qty × seat price

Tiered

Volume discounts

Graduated vs. volume

Usage

Pay-as-you-go

Metering + report schedule

Map to orders

  • Convert paymentTermsmilestones (deposit %, deliverable gates)

  • Example:

{ "deposit": 30000, "milestones":[ {"name":"M1 - Design","amount":60000,"acceptance":"Figma sign-off"}, {"name":"M2 - Delivery","amount":60000,"acceptance":"Live site published"} ], "lateFees":{"afterDays":7,"ratePct":1.5} }

Edge cases

  • Zero-decimal currencies ⇒ no /100

  • Contract currency ≠ settlement currency ⇒ store applied FX rate

QA checklist

  • Mandatory clauses enforced by policy (see Approvals)

  • Payment terms generate correct milestone totals

Runbook: “Template change not reflected”

  • Check template version referenced by draft; update draft to new version


Did this answer your question?