TenderMatrix
Menu
Compliance matrix · draft 01

Every “shall” in the RFP, one row each, with section and page.

Upload the RFP. Get a matrix you can filter, assign and export, so the bid/no-bid review and the owner assignment start in minutes, not after a day of highlighting.

Free: 1 file per day, up to 10 pages, no account. Pro reads files up to 150 pages.

Sample outputsection · page · requirement · type
  1. 3.1.1 p3

    The Contractor shall provide a service desk available 24 hours a day, 365 days a year.

    Mandatory
  2. 3.2.2(a) p4

    The Contractor shall: encrypt County data at rest and in transit using AES-256 or stronger

    Mandatory
  3. 2.3 p2

    Bidders should identify any subcontractors in the proposal.

    Desirable
  4. 3.4 p5

    Describe your approach to transition-in and knowledge transfer during the first 90 days.

    Question

Matrix desk

Free: 1 file per day, up to 10 pages, no account. Longer RFPs: see plans.

Drop the RFP PDF here Section, page, requirement text and type come back as rows. The file is deleted after conversion.
No file at hand? Load a sample, built by running the same code:
Paste text instead
Runs in this browser, not on our servers. Up to 30,000 characters (about 10 pages of text).

A code is used only when the free allowance cannot cover a file: more than 10 pages, or a second file in a day.

What is an RFP compliance matrix?

A compliance matrix lists every requirement in a solicitation, one per row, with where it came from, whether it is mandatory, who answers it and where the answer lives. Proposal managers, bid coordinators and pre-sales teams use it to decide bid or no-bid on the mandatory rows, to give each requirement one named owner, and to show the evaluator that nothing was skipped.

Building it by hand means reading a 50 to 300 page PDF and copying each shall, must and numbered clause into a spreadsheet. TenderMatrix does the copying and the first classification. You do the judging.

ColumnWhat it holds
Req IDThe RFP's own ID when it has one (REQ-101, T-04), otherwise R-001 in document order.
Section, PageWhere to find it: clause number, heading number, Section 3 or Appendix B, and the PDF page when known.
RequirementThe text, trimmed to 600 characters with a note when cut.
TypeMandatory, desirable, informational or question, with the wording that decided it.
Owner, Status, ResponseEmpty in the export until you fill them. Owner and status can be typed in the desk.

From PDF to assigned requirements in five steps

  1. Upload the RFP PDF Drop the file on the matrix desk. No account for the free allowance. Prefer to test first? Load a sample or paste a few pages of text.
  2. The document is read into rows Headings and clause numbers give each row its section. Shall, must, should and may sentences, list items and requirement tables become rows; contents pages and page footers are left out.
  3. Check the mandatory rows Filter to Mandatory and read them against the PDF using the section, page and source line on each row. That list is your bid/no-bid evidence.
  4. Assign owners and statuses Type an owner into any row, or filter to a section and apply one owner to every row shown. Edits stay in your browser tab.
  5. Download the matrix Matrix CSV, mandatory-only CSV, Excel with a stats sheet, or JSON. Your owner and status entries are written into every file.

What turns into a row, and how it is typed

In the RFPTypeNotes
shall, must, is required to, will provide, M, Mandatory, Y under a Mandatory columnMandatoryProhibitions (shall not, must not) are mandatory too.
should, are expected to, preferred, desirable, DDesirableA conditional “Should the Contractor fail...” is not a requirement.
may, optional, for information, O, buyer obligationsInformational“The Authority shall...” binds the buyer, so it is informational.
Ends with ?, Describe, Explain, Provide detailsQuestionA question that also says shall or carries an M flag is typed mandatory.

Read the full list of cues and the limits of the approach before you rely on the types.

Manual highlighting, generic PDF-to-text, or TenderMatrix

Building a compliance matrix three ways
What you need Manual highlighting Generic PDF-to-text TenderMatrix
Time to a first matrix Hours of reading, highlighting and re-typing; grows with every page. Seconds, but you get a wall of text, not rows. Rows appear when conversion finishes, so the first review can start the same hour.
Section and page on each row Typed by hand; drifts when the RFP is re-issued. Lost: the text has no row structure. Section from headings and clause numbers. Page when the converted text carries page markers; blank when it does not.
Mandatory vs desirable A judgement per sentence, consistent only if one person does all of it. Not classified. Rules on shall, must, should, may and table flags (M/D/O, Y/N, priority). A reviewer confirms.
Requirement tables Re-keyed into your own template. Flattened into text lines. One row per table row, with the document's own Req ID and its M/D/O flag.
Contents pages, footers, repeats Skipped by eye. Included as noise. Contents lines and page footers are left out; repeated boilerplate is merged and noted.
Owner and status In whatever spreadsheet you started. Not available. Typed in the browser, filtered by section, exported with the matrix.
Risk of a missed requirement One tired afternoon on page 140. Nothing is flagged for you. Wording without a modal verb can be missed. Every row shows its source line so you can check.

Questions bid teams ask

What does TenderMatrix produce from an RFP PDF?

A compliance matrix with one row per requirement. Each row carries an ID, the section, the page when page markers exist, the requirement text, a type (mandatory, desirable, informational or question), empty owner and status fields you fill in the browser, and the source line. You can download it as CSV, a mandatory-only CSV, Excel or JSON.

How does it decide what counts as a requirement?

By wording. Sentences with shall, must, is required to, will provide (when the bidder is the subject), should, are expected to or may become rows, as do list items under a lead-in, questions, and rows of requirement tables with a Req ID, Requirement or M/D/O column. The shall-statement page lists every cue and where it fails.

Will each row show the page number?

Only when the converted text contains page markers. If it does not, the Page column is blank and a note says so. Section and source line are filled either way. Do not quote a page number in a bid response without checking it in the PDF.

Is my RFP stored or used to train anything?

Files are processed in memory and deleted after conversion. Pages that need a second look may be sent to Google's Gemini API, where Google can retain data for up to 55 days under its terms. Uploads are not used for training. The privacy page lists the sub-processors.

How much can I convert for free?

Free: 1 file per day, up to 10 pages, no account. A file over 10 pages is not refused: it is converted up to page 10, and the desk says how many pages were converted. Pro handles files up to 150 pages, 40 RFPs a month. A 300-page RFP is above the 150-page cap, so only its first 150 pages are converted; split it by volume or section.

Are the owner and status I type saved?

No. They live in your browser tab and are written into the files you download. Closing the tab loses them, so download before you leave. This also means a confidential team roster never reaches our servers.

What about scanned RFPs?

The conversion engine can read scanned pages, and the result says when OCR was used. Accuracy then depends on the scan: a skewed or low-resolution page can drop words, and a dropped shall is a missed requirement. Check scanned documents row by row.

Does this replace reading the RFP?

No. It removes the copying, not the judgement. Rules can miss requirements written without a modal verb, split one requirement across rows, or type a row differently from the buyer's intent. Treat the matrix as a first pass and read every mandatory row against the source.

Why is a sentence starting 'The Authority shall' marked informational?

Because it binds the buyer, not the bidder. Those rows are kept as informational so dependencies and assumptions are visible, but they are not counted as mandatory work for your team.

Does it work for RFQs, ITTs and RFIs?

Yes, as long as the text carries requirement wording or a requirement table. RFQ spec tables tend to extract cleanly; RFIs are mostly questions. The RFP vs RFQ vs RFI page shows what the matrix looks like for each.

Start with the sample, then your own RFP

The quickest way to judge the output is to open the IT services sample or the procurement RFQ, filter to Mandatory and compare each row with the text beneath it. When the format fits your documents, pick a plan for longer files or take the blank template.