Budget model and vendor evaluation
Written by a person. Last read by a person on 2026-09-07, 1 day ago. Its facts were checked by the eval suite on 2026-09-07.
You are checking whether the money is real, or you want to see weights set before submissions rather than after.
Scenario-based sample. Halden Systems is invented, and so is every figure about it.
Bottom line. $2.1M over 3 years against a gap costing Halden Systems $6.1M a year. We recommend buying the platform and building the content, because the content is the capability and the platform is not. The evaluation weights below were fixed before any vendor was approached.
Total cost of ownership, 3 years
Internal time is in the model. A buy that removes a license cost and adds 0.5 of a person has moved the money rather than saved it, and a model that leaves internal effort out is the standard way that gets hidden.
| Year 1 | Year 2 | Year 3 | Total | |
|---|---|---|---|---|
| Platform licences | $180,000 | $195,000 | $210,000 | $585,000 |
| Implementation and migration | $145,000 | $145,000 | ||
| Content authoring, internal | $310,000 | $180,000 | $150,000 | $640,000 |
| Program staff, 2.5 FTE | $220,000 | $230,000 | $240,000 | $690,000 |
| Local expert time, 9 sites | $0 | $0 | $0 | $0 |
| Total | $855,000 | $605,000 | $600,000 | $2,060,000 |
The zero row is deliberate and is the number a reviewer should push on. Local expert time is real and it is not new money: those people already answer these questions, at 760 engineer hours a week. The program moves that time rather than adding it, and if it does not, the model is wrong and gate 4 will show it.
Consolidating the $410,000 of duplicate regional spend covers most of year 2 and year 3 on its own. We have not netted it off above, because a saving counted inside the cost of the thing producing it is how a budget stops being checkable.
Build against buy
| Build | Buy | |
|---|---|---|
| 3-year cost | $1.74M | $2.06M |
| Time to first site live | 11 months | 4 months |
| Ongoing engineering ownership | 1.5 FTE, permanently | none |
| Accessibility conformance | ours to prove | contractual, and testable |
| Exit cost | none | 1 quarter of export and re-platforming |
We recommend buying. Building is cheaper on paper and the paper is wrong in 2 places. It assumes the 1.5 FTE of permanent engineering ownership is available, which it is not while those same engineers are absorbing 760 hours a week. It also puts an internal team between every content change and the people who need it, which is the exact shape of the problem we are trying to fix.
The content is the opposite case and we build it. It encodes how our systems actually work, it is where the capability lives, and a vendor writing it would produce material that teaches a generic tool rather than ours.
Evaluation matrix, weights fixed 2026-09-07
These weights were set before any vendor was approached, and this file's history shows it. Weights chosen after seeing submissions are a justification rather than an evaluation, and a procurement reader can tell the difference immediately.
| Criterion | Weight | Why it carries that weight |
|---|---|---|
| Level 2 reporting: can it show understanding, not completion | 25 | The whole program turns on this measure |
| Accessibility conformance, evidenced | 20 | Non-negotiable, and cheaper to demand than to retrofit |
| Asynchronous delivery across 17 hours | 15 | No shared working hour exists |
| Identity integration and revocation | 15 | A security boundary rather than a convenience |
| Export and exit cost | 10 | The clause nobody reads until they need it |
| Content migration effort | 10 | Real, and one-off |
| License cost | 5 | The number everybody optimizes and the smallest line |
License cost is weighted last on purpose. It is 28% of the model and the easiest thing to negotiate after selection, and weighting it heavily selects for the vendor best at discounting rather than the one best at level 2.
Scorecard after signature
Reviewed monthly by the Director of Enablement, reported quarterly to the COO. This is where the money is actually lost.
| Measure | Target | Trigger |
|---|---|---|
| Support tickets we raise, resolved within SLA | 90% | 2 consecutive months below triggers escalation |
| Platform availability during any site's working hours | 99.5% | Any month below triggers a service credit |
| Reporting accuracy: figures we did not have to correct | 100% | Any correction is logged and reviewed |
| Roadmap items delivered against commitment | 70% | 2 quarters below opens the exit clause |
| Accessibility regressions | 0 | Any regression pauses the next payment |
The last row has no tolerance because a regression there breaks a commitment we made to our own staff, and a target with a tolerance is a target that will be spent.