Simple Smooth Safe
Case study · SSS DocGen

Twelve templates, and no release queue between a wrong invoice and a corrected one.

A multi-office firm was paying roughly $5,500 and a development cycle every time a document changed. Here is what moved, what it cost, and what we would tell you before you copy it.

Anonymised at the client’s requestPublished 10 August 2026
About this case study

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.

▚ BEFORE — compiled templating
  • 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
▶ AFTER — SSS DocGen
  • 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

MeasureResult
Firm sizeMulti-office
Legacy templates converted12
Change turnaround, before → afterWeeks → days
Compiled-code releases required per template change0
Azure resources the firm now runs for it1 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.

LineCompiled templatingWith DocGen
Platform / licence$8,500
Changes included04 (one per quarter)
Chargeable changes6 × ~$5,5002 × $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

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.