Write an RFP for better software.

Your next system should be better than your last one. Your RFP should give better companies a chance to build it.

See what to ask for

Raise the standard. Open the competition.

Keep the requirements that protect your agency. Replace shortcuts that screen out capable companies before you see their work.

Three installations of the same kind of system

Comparable complexity and demonstrated ability

Evaluate sensitive data, financial accuracy, integrations, public access, and operational scale. Let vendors show how relevant experience transfers to your work. Check references for the people who will actually build your system.

A polished slide deck

Your workflow, demonstrated

Give every finalist the same realistic tasks and anonymized sample data. Watch a correction, an exception, an approval, and an export. Ask what works today and what still needs to be built.

A promised go-live date

Working software before the deadline

Ask for an early usable release, regular demonstrations, and acceptance criteria for each milestone. Check original schedules and budgets against actual delivery, including later amendments and charges.

A low first-year price

The full cost of a working system

Compare implementation, all historical data, integrations, hosting, support, upgrades, and exports over the same term. Require vendors to identify exclusions and explain what happens when something doesn't meet the requirements.

Security and accessibility checkboxes

Evidence for the system you'll use

Ask for applicable controls, current test results, manual accessibility review, a demonstrated restore, and a process for correcting findings. Check which claims cover the application and operations, rather than only the cloud provider.

Put teeth in the contract.

A missed deadline should have consequences. Your agency should have more than a revised schedule and another invoice. Tie payment to accepted work, put a cost on avoidable delays, and keep the right to act when the vendor doesn't deliver.

Set these terms before award. Have your procurement and legal team define the amounts, triggers, exceptions, and remedies for your project and applicable law.

Pay for accepted work, not promises

Tie milestone payments to requirements the agency has tested and accepted. Keep a meaningful final payment until conversion, performance, training, and launch criteria pass, followed by an agreed period of stable operation. Define what restarts that period, the review process, and payment deadlines. Using the system to keep services running should not automatically mean accepting unfinished work.

Make late delivery cost the vendor

Consider daily or weekly liquidated damages for vendor-caused delay to critical milestones. Base the amount on a documented, reasonable estimate of likely agency costs, such as extended legacy operations and additional staffing. State when damages start, any limits, and how agency-caused delays or other excused events are handled. An arbitrary penalty is no substitute for a remedy the agency can enforce.

Require a recovery plan at the vendor's expense

Set a deadline for reporting a missed commitment and submitting a recovery plan with named owners and dated actions. Require regular progress reports and escalation to someone authorized to fix the problem. The vendor should fund recovery from its own failures. A new schedule should not silently erase damages or other remedies already due.

Make service credits automatic

Define how availability, response, and restoration commitments are measured, including exclusions. Require credits on the next invoice when a commitment is missed, without making staff chase a claim. Repeated or serious failures should trigger escalation and termination rights. A small credit should not become the agency's only remedy for a system that repeatedly fails.

Incomplete conversion is unfinished work

Make every required record type part of conversion acceptance. Require counts by category, field comparisons, control totals, attachments, and linked history, with exceptions individually documented and approved. For a vehicle system, test recreational vehicles, boats, and trailers separately. An overall record count can hide a whole category that never made it across.

If a required category is missing, withhold acceptance and its milestone payment. Require the vendor to complete the conversion, reconcile the results, and repeat the tests at its expense. Requiring agency staff to type those records back in does not fulfill the conversion requirement.

Make the vendor pay for the workaround

If vendor failures force staff to reenter records, work overtime, or keep a legacy system running, the agency should not absorb those costs by default. Agree on recoverable costs, rates, evidence, notice, and approval in the contract. Keep a record of hours, affected records, and additional invoices.

For example, if an omitted record type requires manual reentry, require the vendor to fund the approved recovery work as well as fix the conversion. State how reimbursement interacts with delay damages and credits, without recovering the same loss twice.

Charge failed retesting to the vendor

A failed acceptance test should lead to correction and another test, with no increase in price. Set who pays for repeated agency or independent testing when vendor defects cause the failure. Apply this to the agreed accessibility, security, performance, integration, and conversion requirements.

If the vendor does not correct the failure within the stated process, reserve the right to have the required work completed elsewhere and recover the permitted costs. Define notice, cure, access, and cost-recovery rights before the problem occurs.

Get prepaid money back for undelivered work

Specify refunds for prepaid services or deliverables that remain undelivered when the vendor defaults. Define the treatment of unusable partial work and how accepted, usable work is valued. Set the refund deadline, any permitted invoice offsets, and transition obligations. The agency should not have to pay a second company to finish while the first keeps payment for work it never delivered.

Keep the right to terminate and finish the work

Define material failures, written notice, any cure period, and termination for cause. Require access to current source code, build instructions, documentation, and complete usable data throughout delivery. Set transition obligations and any right to recover completion costs where permitted. Review liability caps and exclusive-remedy clauses so they do not undo the protections you negotiated.

Federal examples: Liquidated damages policy · Acceptance and termination terms · Correction and recovery of costs. These illustrate procurement tools; state and local authority varies.

You shouldn't pay twice for the requirements.

Reporting a bug shouldn't start a new sales conversation. Neither should discovering that required work was left out of the implementation price.

These examples give your procurement team a starting point for the solicitation and contract.

Accept equivalent experience

The proposer may demonstrate relevant experience through systems of comparable complexity, data sensitivity, integration requirements, and operational scale. Experience need not be in an identical product category. Identify the proposed delivery team's role, the results achieved, and references who can verify those results.

Include defect correction in the price

The contract price includes correcting defects and failures to satisfy the agreed requirements during implementation and the stated warranty or support term. Reporting, investigating, or correcting those failures does not incur a separate charge. The proposal must state the covered term, severity levels, response commitments, and escalation process.

Bring the whole history forward

The implementation price includes conversion of the identified historical records, attachments, and relationships, with no surcharge based on the age of a record. Define reconciliation checks, exception handling, and agency approval of the converted data before cutover.

Demonstrate progress and control the budget

Propose an early working release and regular demonstrations against agreed acceptance criteria. State milestone dates, dependencies, and total costs. Explain how staff feedback and evolving priorities will be incorporated within the agreed budget and delivery dates.

Keep support and access usable

Identify ongoing charges, after-hours and holiday support, escalation contacts, and restoration commitments. Demonstrate end-user data exports and provide the API specification. State source-code and data ownership, access rights, and any transition charges before award.

Go-live is a public service commitment.

A launch can be technically complete while staff and residents are still waiting. Readiness needs to cover the work at the counter, the accuracy of converted records, and the support available when something goes wrong.

In South Dakota, 605Drive launched on February 17, 2025. On March 7, the Department of Revenue reported title-processing times of three to four months, citing testing and training in preparation for the new system.

DOR launch announcement · DOR's March 2025 backlog notice

Teacher certification tells a similar story. In August 2023, five months after a new system launched, South Dakota education officials reported about 1,600 pending applications. KELO reported software glitches, difficulty handling transcript details, and overtime and reassigned staff to work through the backlog.

KELO's August 7, 2023 certification report

A public agency should not have to absorb the cost of unfinished software. Test the difficult cases before acceptance, agree on a recovery plan, and make the vendor responsible for the added work its failures cause.

Make readiness something you can test.

  • Reconcile converted records, totals, and relationships.
  • Run real staff workflows, including exceptions and corrections.
  • Test unusual records, credentials, and approval rules with the people who handle them every day.
  • Measure performance at expected transaction volumes.
  • Rehearse cutover, restoration, and a fallback plan.
  • Confirm training, support coverage, and who can authorize a fix.

Good vendors welcome accountability.

We welcome clear acceptance tests, realistic deadlines, and fair consequences. A company that stands behind its work should be willing to put those commitments in writing. Hold us to that standard, and look at what we've delivered.

A two-year plan. Bill drafting delivered in one.
Early delivery for South Dakota LRC left year two for the Legislature's public website. We also brought forward records reaching back to Dakota Territory.See the legislative work
Conversion, ownership, and support.
Data conversion is included. Clients own their source code and data, with full end-user exports, documented APIs, and assigned emergency support available on holidays.See how we work
Quality you can examine.
Application controls, financial workflows, accessibility, security, and reliability are part of our engineering. Public tests are one visible part of that work.Explore the Trust Center

Make room for better.

Bring us your difficult requirements, your deadline, and your budget. We'd welcome the chance to show you what we can do.

Talk about your RFP