Sales & PartnershipsFree
RFP Requirements Matrix Extraction Tool
A traceability matrix built from the whole package, with the obligations separated from the descriptions and the ambiguities listed as questions.
Requirements extraction is a recall problem wearing a summarisation problem's clothes. Miss one mandatory line and the bid is non-responsive, so a list that reads well and is missing three rows is worse than no list at all. River reads the whole package, writes one row per requirement with the section and page it came from, and reports what it could not parse rather than quietly leaving it out. A scanned attachment with no text layer is a named gap, not an absence.
Two rows that a generic extractor merges are two different obligations. The buyer's own vocabulary decides: shall and must bind you, and should is defined as an expected course of action to be followed unless inappropriate. Will is usually the buyer describing their own obligation, not yours. Every row is typed by the verb it was written with, so the page budget goes where the scoring does. A requirement changed by an amendment supersedes the original, and both rows stay in the matrix with the amendment number on them.
Built for the proposal manager who has four days and sixty pages, and for the capture lead who has to know today whether the mandatory requirements are clearable. Reach for it the morning the solicitation lands, after the bid decision and before anyone drafts a word. The RFP response pack is the workspace this feeds, and the wider tool index covers the rest of the bid. The pack owns the response; this owns the list.
Why the tidy list is the wrong artifact
An extractor that returns a tidy list has usually done the wrong job. Requirements in a solicitation repeat, because the standard contract format puts the work, the attachments and the scoring in different sections. The same obligation appears in the statement of work, again in the requirements attachment, and again as an evaluation factor, in three different wordings. Merging them into one row loses the fact that you must answer in three places. Keeping them as three rows with a link between them is what a compliance matrix is for.
Worse than a duplicate is a conflict. The narrative asks for a four-hour response time and the requirements attachment asks for two hours, and one of those numbers is going into your price. A merged row picks one silently. Two rows with a conflict reference on both force the decision into the open, where it belongs: either you clarify it, or you bid the stricter figure and say so. The matrix records which of those you chose and on what date.
The second deliverable has an earlier deadline than the first. Buyers set a question window that usually closes weeks before the proposal is due, so an ambiguity you notice while drafting is an ambiguity you have to price around. Every requirement that cannot be answered as written comes out as a drafted question with the paragraph attached and the window's closing date on it. Ambiguity found on day one is a question. Found on day twenty it is a risk.
How it works
Paste the package
Narrative, requirements attachment, instructions, evaluation factors and every amendment. Partial packages work and get flagged.
River reads it all
Every section, not just the one that looks like it holds the requirements list.
Check the gap list
What it could not parse, named by page, so you can supply a readable copy.
File the questions
The clarification list goes out before the window closes, not after somebody notices while drafting.
What you get
- One row per requirement, each carrying the document, the section and the page it came from
- Typed by the verb the buyer used, so shall never sits beside should
- Duplicates kept as separate rows with a link, because you answer in every place
- Conflicting requirements preserved as written, both flagged, neither quietly reconciled into one number
- Anything unparsed reported as a named gap: scanned pages, broken tables, missing attachments
- A drafted clarification question per ambiguity, with the question window's closing date attached
Common questions
What formats does it read?
Paste the text or attach the files. Word, PDF and spreadsheet requirement matrices all work, and a PDF built from a scan is the one case that does not, because there is no text to read. It says so by page rather than skipping it, so you know exactly which pages need a readable copy.
How is this different from asking an AI to summarise the RFP?
A summary optimises for reading. This optimises for recall, which is the opposite instinct. It keeps duplicates, keeps conflicts, keeps the buyer's own numbering, and tells you what it failed to read. A summary of a solicitation is a pleasant document that will not survive the first compliance check.
Does it work on private-sector RFPs?
Yes, and the verb taxonomy matters more there, not less. Public solicitations follow a published format so the sections are predictable. A private RFP arrives as one Word file with requirements buried in paragraphs of context, which is exactly the case where reading only the bulleted list loses rows. Everything else works the same way.
What about requirements that arrive in an amendment?
They supersede, and both versions stay. The original row keeps its identifier and is marked superseded, the new row carries the amendment number and its date, and anything already drafted against the old wording is flagged. Amendments are also where acknowledgement requirements live, and failing to acknowledge one is disqualifying on its own.
Should I run this before deciding whether to bid?
Run the bid decision first, because it needs less of your time and it sometimes ends the conversation. Extraction is the next step once the answer is yes, and the two share the same document. The matrix then feeds straight into the RFP response pack, which owns the drafting. Rows you cannot meet route on to the exceptions matrix.
How does it decide what counts as a requirement?
The verb and the position. A sentence in the statement of work with a binding verb is a requirement. A sentence describing the buyer's current environment is context, and it stays out of the matrix but goes into a background list, because some of it turns out to be assumed constraints when somebody reads it properly.
RFP Requirements Matrix Extraction Tool
Fill in the form and your workspace opens with the work already underway.