How Small Agencies Should Scope a Software RFP Without Overbuying

May 2025

Every small-agency procurement eventually produces the same artifact: a requirements matrix, 47 rows long, one column per vendor. Every vendor checks every box. Supports configurable workflows — check. Robust reporting — check. The matrix sorts nothing, and the scope it represents fits no budget the agency actually has. It got that long for an understandable reason: an RFP feels like a once-a-decade chance, so every department's wish list goes in. There is a calmer way to do this.

A Must-Have Is a Failure You Can Name

A must-have is something without which the work cannot be done correctly. The test for each row: what do we do today, and what did it cost us last year? Two rows can look identical on the matrix and be nothing alike. Track annual test due dates might mean the utility clerk's spreadsheet mostly works — she sorts by due date every Monday morning and it has failed her once in four years. That row can wait for phase two. Or it might mean we missed a compliance deadline last year because the one person who knew that the asterisk column meant overdue was out for two weeks. That row is the core. Most small agencies have five to ten rows of the second kind. The other forty are how overbuying starts.

Buy the Core, Prove It, Then Extend

  • Phase one: the system of record and the single most painful workflow
  • Phase two: the next workflow, informed by what phase one taught you
  • Phase three: portals and public-facing features, once the data underneath is trustworthy

Phasing is not just budget protection. It is how you avoid putting a public portal on top of records you have not cleaned yet — and letting customers be the ones who find the wrong addresses.

Write the Integration Assumptions Down

The most expensive sentence in any scope is the one nobody wrote: it'll talk to our billing system. Unwritten, it becomes a change order — the billing system turns out to offer only a nightly batch export, the vendor quotes a custom connector, and the integration everyone assumed was free now has its own line item and its own schedule. List every system the new software must touch, which direction the data flows, and how often. Make vendors price against that list. Integration is available is not a price.

Migration Is Scope, Not a Detail

Your records are in spreadsheets, an aging database, and someone's email. Getting them out is real work — often a third of the project — and it gets ugly in specific ways. The old system allowed blank tester certification numbers. The same service address was entered three different ways, so one property is three accounts. Inspection history is keyed to meter IDs from two systems ago that nothing else references. An import can pass on record counts and still fail on identity matching, and the dashboard will look fine until a shutoff notice goes to the wrong account. The RFP should say what data exists, roughly how much, and what condition it is in. Then ask the question that matters: what happens to records that fail migration — who reviews them, in what queue, by when? Vague answers here predict a painful go-live better than any other signal.

Define Acceptance Before You See a Demo

Acceptance criteria written after a demo describe the demo. Write them first, from your own files: ten real cases entered and processed end to end, including the two weird ones — the assembly replaced mid-year during a remodel, the vacant service that still shows up in the compliance rate. Three reports produced from migrated data, not sample data. Each staff role doing its actual job without a workaround. That turns it mostly works into a finish line someone can refuse to sign.

Ask About Support Like You'll Need It

Because you will. Who answers when something breaks, how small changes are priced after go-live, and what happens to your data if the contract ends. Get it in writing while you still have a procurement's worth of the vendor's attention.

The goal of an RFP is not to buy everything you might ever need. It is to buy the system your staff will actually run, and to grow into the rest on evidence instead of hope. Before adding row 48, ask what that gap cost you last year. If the answer is nothing, it is not a requirement yet.