- Entry date
- 1 August 2022
- Category
- Tooling
- Access
- 🔓 Public
The first attempt at automating a genuinely painful manual process in the rail sector — tender pricing and pack assembly — and the first real lesson in how hard document generation actually is.
- Django 4.0.6
- tender quote calculator
- 2
- months apart: Jul 2022 quotes, Aug 2022 pack assembly
Honest evaluation
Neither prototype reached production; document generation from structured data was explicitly harder than 2022's tooling could handle — an honest miss, not a shipped result.
What would prove or disprove it further
What would prove or disprove it further: rerunning the same pack-assembly step with the tooling available years later (structured templating, LLM-assisted document generation) against the same class of tender pack would show directly whether the original bottleneck — document generation from structured data — has actually been solved, or just moved.
The evidence — full reasoning behind the verdict
Verdict: disproven. The implicit bar these two prototypes were built against was becoming part of a real tender process — and the report says plainly that neither did: "both prototypes stayed prototypes. Neither reached a production tender process." Measured against its own goal, this one missed.
The pricing calculator showed real, immediate value as a rough tool, but the harder half — turning structured pricing data into a correctly formatted, submittable .docx tender pack — ran into a genuine technical wall: document generation from structured data was harder than the 2022 tooling could comfortably manage. That's a specific, named mechanism for the miss, not a vague "it didn't work out."
The honest negative is the actual value of this entry: it located exactly where the pain and the difficulty lived, which is what later, more capable document- and tender-automation systems in the same domain were built on. A disproven result that names its own failure mode precisely is more useful than a vague partial success would have been.
Tender pricing in the rail sector is exactly the kind of process that looks simple from outside and is genuinely painful from inside: dozens of line items, changing rates, and a document pack that has to be assembled correctly every time. This was the first attempt to automate any of it.
What it was
Two small, related prototypes for a safety-critical / global rail & metro tender process, built about a month apart: a Django tool for calculating tender quotes (July 2022), and a document-generation system for assembling tender packs from templates (August 2022).
What we built
ResearchThe pricing tool was a Django 4.0.6 application for computing tender quotes —
turning line-item rates and quantities into a priced tender. The pack
assembler was a separate Python tool that took .docx templates and
populated them from structured data, aiming to turn a pricing output into a
complete, submittable tender pack without manually copying numbers into a
document by hand.
What we learned — including the honest negative(s)
Two things stood out, and neither is flattering to the state of 2022 tooling.
First: tender pricing is a genuinely painful manual process, and even a
rough, early automation of it was clearly worth building — the value was
obvious immediately. Second: document generation from structured data is
much harder than it looks. Getting a .docx template to reliably reflect
live pricing data, formatting and all, outran what the tooling available at
the time could comfortably do.
Both prototypes stayed prototypes. Neither reached a production tender process. That's the honest state of this entry — the value wasn't in what shipped, it was in seeing exactly where the pain and the difficulty actually lived, which is knowledge that later, far more capable systems were built on.
Where it went / status
Both tools were early prototypes and were not carried forward as-is. But this is explicitly the seed for much more capable AI-powered tender and document-generation systems built years later in the same domain, once both the tooling and the underlying approach had matured. The client and specific tender process are never named here — this refers only to a safety-critical / global rail & metro tender process.
What is still open — kept visible
The honest edges, next to the wins. This is what turns 🔬 into 🟢 — honestly.
- Both stayed early prototypes — neither reached production use.
- Document-generation complexity from structured data outran what 2022's tooling could comfortably handle.
- The client is never named: this refers only to a safety-critical / global rail & metro tender process.
Sources
- vocabotics project audit — railway tender quote calculator + tender pack document generator, Aug 2022vocabotics internal project history · as of August 2022