Procurement

How to score website proposals without drowning in them

When the City of Golden, Colorado put its website redesign out to tender, it received 33 proposals. Every one of them will have said it understood municipal websites, took accessibility seriously, and offered excellent support. This page is a method for telling them apart — a weighted matrix you can copy, a way to force incomparable prices into one comparable number, and the handful of questions where the answer actually tells you something.

The short version

  • Set your weights before you open the envelopes. Weighting after you have a favourite is how you get an indefensible award.
  • Nothing in the pricing sections is comparable as written. Convert every proposal to a five-year total cost of ownership, including any contractual annual increase, before you score cost at all.
  • A low build fee with a high escalating annual fee routinely overtakes a higher one-time cost by year four.
  • Six written questions separate serious vendors from the rest. The most revealing is: what does it cost to get a full export of our content and our code?
  • Score the evidence, not the assertion. Every vendor claims WCAG conformance. Ask for the report.

Why the pile is so big

The City of Golden's experience is worth sitting with for a moment. Golden opened its website redesign RFP on 14 April 2023, closed it on 12 May, and — in the city's own words — "received 33 proposals from vendors across the US and Canada." A selection was not announced until 16 August, four months after the RFP opened.

Thirty-three proposals is not an anomaly; it is what happens when a municipal website RFP hits a market with a very large number of vendors chasing it. If you are a clerk in a town of six thousand, you may well get a dozen. They will arrive in different formats, quote in different shapes, and answer different questions — because each vendor has answered the question it wanted to be asked.

The work in front of you is therefore not reading the proposals. It is building a frame that lets you read them all the same way, and doing it before you start, so that when someone asks "why did you pick them?" the answer is a spreadsheet and not a feeling.

1. The weighted scoring matrix

Copy this. Score each proposal 1–5 on each criterion, multiply by the weight, and add. The weights below sum to 100 and are a starting point, not scripture — the whole point of the exercise is that you set them, in advance, to reflect what your council actually cares about.

A suggested weighted scoring matrix for a municipal website procurement. Weights sum to 100; adjust them to your priorities before proposals are opened.
Criterion Weight Score 1 looks like Score 3 looks like Score 5 looks like
Total 5-year cost (normalised) 20 Cannot be normalised without guessing; renewal priced at "then-current rates". All costs disclosed; five-year total is mid-field. Every cost disclosed and fixed; lowest defensible five-year total.
Ownership & exit terms 15 Vendor owns everything; export "for a fee to be quoted"; no exit path stated. You own content; platform is licensed; export available in a documented format. Source code and content delivered to you; you can leave and the site keeps running.
Accessibility, with evidence 15 Claims compliance; offers an overlay widget; no report. Provides a VPAT / ACR; some known exceptions listed honestly. Current VPAT/ACR plus a named third-party audit and a remediation commitment in the contract.
Ease of use for non-technical staff 15 Editing requires HTML or a support ticket. Usable admin; training required; some tasks need the vendor. Your clerk publishes an agenda unaided in the demo, on the day, without a script.
Demonstrated municipal experience 10 Generic agency work; no government clients. Municipal clients, mostly much larger or much smaller than you. Multiple live sites for towns of comparable size and structure; understands agendas, minutes, ordinances, FOIA.
Implementation timeline & risk 10 Open-ended; scope defined as "as needed"; change orders likely. Clear phases; typical range quoted; migration scope roughly bounded. Fixed scope, fixed price, named dates, and what happens if they slip is written down.
Support model 10 Ticket portal only; no response-time commitment; support bundled into a fee you can't drop. Business-hours support with a stated response target. Named contact, written response times, and support you can buy or decline without losing the site.
References from comparable municipalities 5 No references, or only references the vendor hand-picked from very different clients. Two or three references of roughly your size. References of your size plus a willingness to name a client who left.

Two mechanical notes. First, score cost arithmetically, not impressionistically: once you have a five-year total for each proposal (see the next section), give the lowest total a 5 and score the others proportionally — score = 5 × (lowest total ÷ this proposal's total). It is crude, it is transparent, and no one can accuse you of feeling your way to a number.

Second, if a criterion is a genuine pass/fail for you — and accessibility conformance often is, given that the ADA Title II rule sets a hard technical standard and a hard date — then make it a threshold requirement in the RFP itself rather than something a vendor can score a 1 on and still win on price. Our municipal website RFP template shows where that language goes.

2. Normalising cost, which is where most evaluations quietly go wrong

This is the part worth your afternoon. Vendors do not quote in the same shape, and the shapes are not accidental — each one is designed to make that vendor's number look small on the page you are looking at.

You will typically see four:

  • Build fee plus annual fee. A one-time implementation cost, then a recurring licence/hosting/support fee.
  • Low build, high annual. The build is nearly free. The recurring fee carries the whole relationship — and usually escalates.
  • Per-resident pricing. "Pennies per resident per month." Charming, and completely opaque until you multiply it out.
  • Monthly-only subscription. No build fee at all, an auto-renewing term, and renewal "at then-current rates."

To compare them, put every proposal through the same conversion:

The five-year conversion

5-year total = one-time costs + the sum of five escalating annual fees + one-off extras + exit cost. Where annual fee in year n = base annual × (1 + escalator)n−1. Per-resident quotes convert first: rate × population × 12 = annual fee. Monthly quotes convert first: monthly × 12 = annual fee. Then everything is in the same units and the arithmetic is the same for all of them.

Three things get missed, every time:

The escalator. Real, signed public contracts in this market contain language providing for "an annual increase of 5% each Renewal Term." That clause lives in the renewal section, not the pricing section, so it does not appear in the number the vendor put in front of you. Read the renewal clause of every draft agreement and pull the escalator into your spreadsheet. And check what "term" means: if the renewal term is three years, a 5% increase "each Renewal Term" behaves very differently from 5% each year, and you need to know which one you signed.

The one-off extras. Content migration beyond N pages. Additional training days. Document remediation. Redirect mapping. Domain and SSL. Integration with your agenda or payments system. These are frequently priced outside the headline figure, and they are the change orders you will be signing in month four.

The exit cost. One major municipal platform's standard master services agreement provides for a full data export "for a fee to be quoted at time of request." That is a cost of ownership. It belongs in the total, even if the only honest way to enter it is as an unknown — and an unknown in the exit column is itself a finding.

A worked example

The numbers below are illustrative. They are round figures chosen to show the shape of the problem, not quotes from any real vendor. Use them as a template and put your own proposals' numbers in.

Three proposals, all with a 5% annual increase where an increase applies:

  • Proposal A — build $30,000 one-time, then $5,000/year.
  • Proposal B — build $5,000, then $12,000/year.
  • Proposal C — no build fee, $1,500/month ($18,000/year), auto-renewing.
Illustrative cumulative cost of three differently-shaped proposals. Figures are examples only, not real quotes. Annual fees escalate at 5% per year from year two.
End of Proposal A ($30,000 + $5,000/yr) Proposal B ($5,000 + $12,000/yr) Proposal C ($18,000/yr, no build)
Year 1 $35,000 $17,000 $18,000
Year 2 $40,250 $29,600 $36,900
Year 3 $45,762 $42,830 $56,745
Year 4 $51,551 $56,722 $77,582
Year 5 $57,628 $71,308 $99,461

Read the first row and then the last. In year one, Proposal A costs roughly twice what Proposal B does, and that is the comparison a busy evaluation committee makes. At the end of year three, B is still ahead by about $3,000. By the end of year four the lines have crossed, and by the end of year five B costs about $13,700 more than the proposal that looked twice as expensive on day one. Proposal C, which had no build fee at all and therefore no sticker shock, is by then the most expensive of the three by a wide margin — and it is the only one you cannot walk away from without losing the site.

Note also that this comparison flatters the recurring proposals, because it assumes you keep the site for exactly five years and then stop. In year six the escalator is still running. Municipal websites are typically kept for longer than five years, and every extra year widens the gap.

If you would rather not build the spreadsheet, our five-year cost calculator does exactly this arithmetic, and you can put a competitor's real numbers into it. Our own five-year figure and how we get to it are on the pricing page, and the structural argument — buying an asset versus renting one — is laid out on the comparison page.

3. Six questions that separate vendors

Ask these in writing, of every vendor, at the same time, and put the answers in your file. A written answer is a commitment; a verbal answer in a demo is not. The value is not only in what a vendor says — it is in how long they take to say it, and whether they answer the question you asked.

Six written questions and what the answer tells you.
Ask, in writing What you learn
Who owns the source code at the end of the engagement? Whether you are buying an asset or renting access to one. "You own your content" is not an answer to this question.
What does it cost to get a full export of our content and our code? The single most revealing question on the list. A vendor confident in its product quotes zero or a documented flat fee. Anything else is a lock-in disclosure.
Is there an annual increase in the contract, and what is it? Whether the number in the proposal is the number you will pay in year five. Ask them to point you to the clause.
What happens to our site if we don't renew? Whether the thing you paid for continues to exist. For most subscription platforms it does not.
Can you provide a VPAT or Accessibility Conformance Report? Whether the accessibility claim is evidence or marketing. A real ACR is a detailed document that lists partial support honestly.
May we speak to a municipality our size that left you? The uncomfortable one, and the most informative. Every vendor has lost clients. What you are testing is whether they will let you hear why.

4. Answers that should worry you

Red flags

None of these is proof of bad faith. All of them are worth a follow-up question in writing, and a note in your evaluation file.

  • "Custom quote at time of request." Applied to anything you will predictably need — an export, an extra training day, a redirect map — this converts a known cost into an unknown one, at a moment when your leverage is lowest.
  • "Export available for a fee to be quoted." The exit is priced, and priced later. You are being asked to sign a contract whose cost of leaving is deliberately unspecified.
  • Auto-renewal with a short cancellation window. A 30- or 60-day notice period against a multi-year auto-renewing term means one missed calendar reminder costs you a full term. Diarise it the day you sign.
  • An escalator buried in the renewal clause. Not in the pricing table, not in the proposal summary, not mentioned in the demo. If you find it yourself, ask why you had to.
  • Accessibility "guaranteed" by an overlay widget. A JavaScript layer over inaccessible markup does not make the markup accessible, and it has not reliably prevented litigation. Treat a compliance guarantee attached to an overlay as a reason for more scrutiny, not less.
  • Refusal to name a reference that has left. Or the softer version: enthusiastic agreement, followed by silence.
  • A proposal that answers a different question. If your RFP asked for a five-year cost and the response gives you a monthly figure, that is a choice.

5. An honest note about us

Where we stand in our own matrix

We are a vendor, and we would obviously score well on some of these rows. We sell a one-time licence plus a fixed-scope implementation, typically $17,500–$27,500 all-in; the optional annual renewal buys updates only, and if you let it lapse your site keeps running. We deliver the source code to your git repository. Ownership, exit terms and five-year cost are rows we wrote the product to win.

Use the matrix anyway — and weight it for your municipality, not for us.

If your council's real priority is a vendor who will answer the phone on a Sunday, weight support at 30 and cost at 10, say so in the RFP, and score accordingly. If you have one part-time staffer who will publish every page for the next decade, ease of use is your highest-stakes criterion and it deserves more than 15 points. If you are inheriting a site with two thousand load-bearing PDFs, accessibility and migration risk dominate everything else on this page.

A weighted matrix is not a device for producing the right answer. It is a device for making your reasoning visible — to your council, to the unsuccessful bidders, and to whoever is sitting in your chair in five years wondering why the town bought what it bought. Set the weights first, write down why, and the pile of 33 becomes a shortlist of three.

If it would help to have someone walk your proposals through this arithmetic — including ours, and including the case where the answer is that you should choose someone else — we're happy to do that.

Sources

  1. City of Golden, Colorado, Website Redesign — "We received 33 proposals from vendors across the US and Canada." RFP opened 14 April 2023, closed 12 May 2023; vendor selected 16 August 2023.
  2. U.S. Department of Justice, First Steps Toward Complying with the ADA Title II Web and Mobile Application Accessibility Rule — WCAG 2.1 Level AA; compliance dates of 26 April 2027 (population 50,000+) and 26 April 2028 (under 50,000 and all special districts).
  3. GSA, Voluntary Product Accessibility Template (VPAT) — what an Accessibility Conformance Report is and what a credible one contains.
  4. Annual escalator language ("an annual increase of 5% each Renewal Term") appears in real, signed public contracts in this market. Sources held on file and shared on request.
  5. Data-export language ("for a fee to be quoted at time of request") appears in one major municipal platform's standard master services agreement. Source held on file and shared on request.

The cost figures in the worked example are illustrative and rounded, chosen to show how differently-shaped quotes compare over five years. They are not quotes from any vendor, including us. This is a procurement guide, not legal or purchasing advice — follow your own jurisdiction's rules.

Put our proposal through your own matrix

We'll give you a fixed scope, a fixed price, and a written answer to all six questions — before you ask.

Request a demo Run the 5-year numbers →