The client is anonymised at their request. Everything below — the estate, the template count, the turnaround and the arithmetic — is real; the firm's identity, its branding and its remittance details are not disclosed. A named reference is available under NDA at the point in a conversation where it matters.
The $5,500-per-change figure used in the comparison is a modelled input drawn from the client's own historical change costs, not an industry benchmark. It is the number the whole argument rests on, so we say where it came from.
The firm
A multi-office professional services firm running a vertical Dynamics 365 solution. Documents — statements, invoices and client correspondence — were generated by a compiled templating stack: Aspose.Words driving LINQ-based templates, built into the application itself.
The problem was not the documents. It was the release.
The output was fine. What the firm could not live with was what it took to change it.
- A partner asks for a line to move on a statement
- A platform consultant edits compiled C# templating code
- 15–40 hours of build, test and deploy for that one change
- Billed time and materials, per change
- The change waits in the vendor's release queue
- An Aspose.Words OEM licence and annual support on top
- A partner asks for a line to move on a statement
- Someone edits template.html — Handlebars markup
- Preview locally: npm run preview <code>
- Ship by seed — an idempotent alternate-key upsert, no code release
- Live in every channel that calls the API
- One change per quarter included in the licence
The change is that a template stopped being code. Under DocGen a template is configuration: Handlebars markup plus FetchXML datasets, held as rows in the firm's own Dataverse. Editing one is an edit, not a build.
What was migrated
| Measure | Result |
|---|---|
| Firm size | Multi-office |
| Legacy templates converted | 12 |
| Change turnaround, before → after | Weeks → days |
| Compiled-code releases required per template change | 0 |
| Azure resources the firm now runs for it | 1 container app |
The engine runs scale-to-zero in the firm's own Azure subscription, billed by Microsoft directly to them at under $1,000 a year. Nothing about the documents leaves their tenant, and nothing is stored unless a call asks for it.
The arithmetic, at six changes a year
Six is what this firm actually averaged — a rebrand, a new remittance block, a regulatory line, and a few fields partners wanted moved.
| Line | Compiled templating | With DocGen |
|---|---|---|
| Platform / licence | — | $8,500 |
| Changes included | 0 | 4 (one per quarter) |
| Chargeable changes | 6 × ~$5,500 | 2 × $850 |
| Year total | $33,000 | $10,200 |
$22,800 a year, or 69% less for the same six changes — and the gap widens with change frequency, because one side is a fixed licence and the other is billed per change. At two changes a year DocGen still wins; at twelve it wins by roughly triple.
The number the firm cared about more was the one that does not appear in the table: there is no longer a development queue between a wrong invoice and a corrected one.
What we would tell you before you copy this
- It is worth it because the documents change. A firm whose templates have not moved in three years will not see this return. The saving is entirely in change frequency.
- The Azure subscription is yours to run. One scale-to-zero container app — but it is on your bill and in your subscription, and the first request after an idle period cold-starts in 10–20 seconds.
- Business logic stays out of templates by design. Totals, aging buckets and credit-balance detection live in the Enricher, server side. That is what keeps a template safe to hand to someone who is not a developer — and it means genuinely new logic is a chargeable change rather than a text edit.
- Migration is real work. Twelve templates were converted, not lifted. That is a fixed-price line on the price list, quoted before you approve it.
See it against your own documents
The most useful version of this conversation is not a demo tenant. Send us one of the documents you generate today and roughly how often it changes, and we will tell you what it would take to move it — including if the answer is that it is not worth moving.
SSS DocGen →
The product page, with the full rate card, the engine architecture, sample renders and a recorded template change.