River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

RFP Answer Library Template

Three documents and four sheets that hold each answer at three lengths, record what it is true of, and count what gets rewritten.

Free download  ·  No account needed

Library health read, quarter to 4 September

Ellsmere Data, 12 entries, 5 submissions, 214 questions

Questions the bank answered148 of 214
Reuses that went in verbatim6 of 15
Reuses rewritten heavily9 of 15
Hours lost writing answers that missed50, across 10 distinct questions

1. The entry that is not an entry

EntryUsesRewritten heavilyEvery time because
AB-047 uptime commitment43Holds only the Enterprise position
AB-104 support hours11Two tiers collapsed into one paragraph
AB-090 financial stability11Ownership sentence 26 days out of date
AB-014 encryption at rest20Nothing. Both went in as written

2. What the count says to do

AB-047 does not need updating. It needs splitting, because three of its four rewrites did the same thing: restated the position for a buyer who was not on Enterprise. A year of that is invisible without the log.

3. The sentence

Split AB-047 into two entries, then write the tenant isolation answer, which has been asked six times, cost eleven hours and still has nobody's name on it.

Nothing in a year of past submissions would have suggested tenant isolation was the largest gap. It only shows up in the questions that arrived and matched nothing.

Search this and page one has converged on one build. Break past responses into single-topic blocks and arrange them in three levels. Tag each block by region, product and industry, then give it a subject matter expert as owner and a review cadence. Search the result by meaning rather than keyword. One template ships a metadata field called requirement intent. Another ends its ownership step with the words no orphaned content, ever. It is a good build, and it describes the shelf.

Three things happen when somebody reaches for the content, and no taxonomy touches any of them. The answer never fits the box, because their field takes 300 characters and the entry is four hundred words. The answer is true of a slightly different sale: Enterprise rather than Standard, one region, a release this buyer will not be on. And nobody counts the rewriting, so an entry rebuilt from scratch on every use still reports as coverage.

Freshness is a property of the answer rather than of a calendar, so every entry records why it expires. Some expire with a certificate, some the day a release ships. One class expires because representations and certifications last a year from the date they were updated. Then the live bid belongs to the RFP response pack, the parse belongs to requirements matrix extraction, and the rest sits in the template library and the tool index.

The answer at three lengths, what it took to reuse, and what it never covered

Answer Bank with a conditions field and a length ladder, Reuse Log recording how heavily each entry was edited and why, and Miss Log counting the questions that matched nothing.

Answer Bank

Illustrative rows for a fictional analytics vendor. Nine of twelve shown. Held means the version exists and can go out without editing.

IDQuestion intentShortMediumLongTrue only whenOwner
AB-014Encryption of data at restHeldHeldHeldAll plans, both regions, since release 3.0P. Ncube
AB-021Where customer data is storedHeldHeldHeldNot true of the legacy Starter tierP. Ncube
AB-033Single sign-on supportHeldHeldNot writtenSince release 4.2. SCIM is Enterprise onlyJ. Marsh
AB-047Uptime commitment and creditsNot writtenHeldHeldEnterprise only. Standard has no SLAR. Kavanagh
AB-061Independent security audit heldHeldHeldHeldUntil the FY26 report replaces itP. Ncube
AB-068Federal registration and identifiersHeldHeldNot writtenOnly while the record reads ActiveR. Kavanagh
AB-075Accessibility conformanceHeldHeldNot writtenWeb application only. No mobile reportJ. Marsh
AB-090Financial stability of the vendorHeldHeldHeldOwnership changes on any raiseR. Kavanagh
AB-097Insurance heldHeldHeldNot writtenPolicy year to 31 MarchR. Kavanagh

The conditions column is the one no other library has. A tag saying enterprise tells you which answer to pick. A condition saying Standard has no contractual service level tells you the answer you picked is about to become a promise nobody can keep.

Short is written first, deliberately. It is the version that fits a spreadsheet cell and a portal field, and it is the one a proposal manager under deadline actually needs at four in the afternoon.

Reuse Log

Every use with the length that went in, their stated limit, and how much editing it took. Twelve of fifteen shown.

SubmissionEntryLengthTheir limitEditedWhy
Meridian County transitAB-014Short400 charsNoneVerbatim
Meridian County transitAB-047MediumNone statedHeavyBuyer was not on Enterprise
Meridian County transitAB-068Short250 charsLightCut to fit, CAGE code inserted
Brightwater UniversityAB-075Short500 charsHeavyThey asked about the mobile client
Brightwater UniversityAB-081LongTwo pagesHeavyRebuilt around an academic calendar
Halberd CapitalAB-052ShortNone statedNoneVerbatim
Halberd CapitalAB-061Medium200 wordsLightBridge letter sentence added
Halberd CapitalAB-090MediumNone statedHeavyOwnership sentence out of date
Kirkwall RetailAB-033Short300 charsNoneVerbatim
Kirkwall RetailAB-047Medium180 wordsHeavyNon-Enterprise buyer again
Northmoor HealthAB-047LongOne pageHeavyThird rewrite this quarter
Northmoor HealthAB-097Short200 charsLightLimits updated to current policy year

AB-047 appears three times and was rewritten all three. Every rewrite restated the position for a buyer who was not on Enterprise, which means the fix is to split the entry rather than to update it. No taxonomy surfaces that, because the entry is correct.

Six of fifteen reuses went in untouched. That ratio, not the size of the bank, is what decides whether the second RFP is faster than the first.

Miss Log

Questions that arrived and matched nothing. Free to collect, and the only list that says what to write next.

Question as askedNearest entryWhy it missedTimesHoursDecision
How clinical data is segregated from other tenantsAB-021Tenant isolation is a distinct question611Write first
References from three comparable institutionsNoneReference material has never been in the bank57Write
Approach to model transparency and explainabilityNoneNothing covers the analytics engine49Write
Uptime commitment for a non-Enterprise agreementAB-047The entry only holds the Enterprise position44Split AB-047
Dataset destruction on grant closureAB-021Deletion and residency are conflated35Write
Carbon reporting for the last two yearsNoneWe do not produce one33Escalate, product gap
Confirm no material security incidentNoneNobody has agreed what our answer is24Escalate to counsel
What happens to integrations if you are acquiredAB-090Ownership does not address continuity12Hold

Every guide builds the bank from supply. Mine last year's submissions, de-duplicate, goldenise. That produces the entries somebody already thought to write, and it would never have guessed that tenant isolation was the largest gap in this bank.

Two rows are marked escalate on purpose. A question with no answer because nobody has decided one is not a content problem, and it will sit in a content backlog forever if it is filed as one.

What's in the pack

01

Answer Bank

One entry per question intent, indexed by the forms it has really arrived in, held at short, medium and long, with the conditions under which it is true.

02

Owner and Freshness by Answer

A named person and a backup on every entry, with the review date, what the answer depends on, and why it expires rather than only when.

03

Reuse Log

Which entry went into which submission, at which length, against their stated limit, how heavily it was edited and the reason for the edit.

04

Miss Log

The questions that arrived and matched nothing, with a count, the hours they cost, and a verdict of write, split or escalate.

05

Answer Standard

How an entry is written so it can be reused: three lengths, the conditions field, the claim in the first sentence, and no buyer's name anywhere.

06

Review Policy

Intervals set by the volatility of the thing underneath, plus the four triggers that catch what a calendar never does.

07

Library Health Read

One page a quarter: coverage, rewrite rate, the ranked misses, and what has gone past a date. Four numbers and the decisions that follow.

How to use it

  1. 1

    Open in River, or take it blank

    Open the pack in River and send it everything you have submitted, or download the Word documents and CSV sheets and fill them in yourself.

  2. 2

    Send the messy archive

    Duplicates help. Four versions of the same answer written a year apart show which sentence survived and which fact quietly moved.

  3. 3

    Index against their words

    The bank gets keyed to how buyers actually ask, taken from real question sets, rather than to how you would have phrased it.

  4. 4

    Log every use and every miss

    Two columns of bookkeeping per submission, and after one quarter they tell you what to split, what to write and what to retire.

Frequently asked questions

Is this template free?

Yes. Three Word documents and four CSV sheets, downloaded as a zip, no signup. River is the optional half: it reads your submitted responses, builds the bank at three lengths, and works out what each answer is true of. Single-shot jobs live in the tool index.

Indexing by question intent is standard now. What is different?

Agreed, and this page does not claim it. Intent indexing is the shared method and one commercial template ships a field with that exact name. What no library holds is the answer at more than one length, what it is conditionally true of, or a count of how often it gets rewritten.

Why hold three lengths of the same answer?

Because the box is a different size every time. A portal field takes 300 characters and a narrative section takes two pages, so a single canonical entry guarantees a rewrite on every use. Writing the short version once removes that work from every future submission.

What does the rewrite count actually tell us?

Which entries are not entries. An answer rebuilt from scratch on every use is a prompt sitting where content should be, and it reports as coverage while costing the same as writing fresh. The reason column then says whether to split it, shorten it or retire it.

Is the miss log not just a backlog?

It is a ranked one, built from demand rather than a guess. Every guide grows a library by mining past submissions, which produces the entries somebody already thought of. The questions that arrived and hit nothing carry a count and an hours cost, so the order writes itself. A bid you lost adds to the same log through the debrief review.

How do we know an answer is still true?

Each entry records why it expires, not just when. Some die with a certificate, some the day a release ships. A federal registration answer is true only while the record has been marked Active, which is a condition somebody else controls. Turning those conditions into dates checked against a live bid is the content refresh.

Do security questionnaires belong in the same bank?

The answers do, since HECVAT exists precisely to standardise those questions across buyers. The evidence behind each one is a separate job, handled by the security questionnaire response pack, which audits which answers you can actually support.

Find out which answers are not really answers

Take the Word documents and CSV sheets blank, or open this exact pack in River and let it build the bank from what you have already submitted.

Edit with AI