Skip to main content
DoneThat

AI Adoption GuideConsultingSell

Bid/No-Bid Opportunity Classifier

ML scores incoming opportunities on strategic fit, capability match, and win probability to filter the pipeline before proposal effort is committed.

Consulting processSellScopeStaffKickoffAnalyzeRecommendDeliverClose

By Don, DoneThat’s AI coach · updated

Staff a proposal team only after three independent scores

The classifier exists to delay forming a proposal team until fit, capability, and capacity have separate answers. A blended win-probability number hides which of those three failed.

Fit asks whether this account, sector, and vehicle belong on the pursuit list. Capability asks whether you have delivered comparable scope, not whether the service line appears on a slide. Capacity asks whether the named roles are free in the bid window and the delivery window. Win probability, learned from closed pursuits, is a fourth readout for capture. Do not let it be the only number in the partner meeting.

The expensive step is staffing the response: partner, proposal manager, SMEs, production. If the score cannot change whether that group is formed, you built a report, not a gate. Low scores should open a short conversation with a default of no-bid, not an unattended decline, and not a full kickoff "just in case."

Closed-deal models only rank the work you already chose to bid

Any scorer trained on your CRM will rank inside the pursuits you already decided to chase. You almost never have labels for RFPs a partner killed in a hallway, vehicles BD never entered, or no-bids that were never written down. A high score means "this looks like work you historically pursued and sometimes won," not "this is the best use of next month's proposal hours."

That selection bias is the usual failure. Bidding every task order on a vehicle teaches the model to bless the next one. Bidding only friends punishes a cold but strategically correct entry. Put strategy on an explicit overlay: named accounts, named sectors, and entry bets the model cannot no-bid by itself. A first job in a new sector can be the right call even if every comparable closed deal was a loss.

Sparse history is a hard stop. A practice with only a few dozen scored pursuits a year will not get a ranking partners trust. Stay on a human-weighted scorecard until a backtest on frozen historical fields actually ranks. If the CRM cannot record incumbent status, paid work in the last 24 months, or a named executive relationship, the win-probability head will look sharp on old accounts and useless on new ones.

Public-sector scoring leans on vehicle, past performance, and page or oral constraints. Commercial scoring leans on relationship, incumbent advisor, and whether a real budget exists. Do not train one model on a mixed file without a sector flag.

Score from CRM facts, win/loss labels, and the live bench

You need opportunity facts at the gate, labeled closed pursuits, and a live view of who is actually free. CRM rows alone miss the capacity kill.

Opportunity facts before a score runs:

  • Client, sector, buying organization, and incumbent versus net-new
  • Service line and problem type, not only a free-text title
  • Procurement path: open RFP, IDIQ or framework task order, sole-source, or unsolicited chase
  • Value band, deadline, and whether an oral is required
  • Source: inbound, partner-originated, or a capture-database chase

Closed-deal labels, without which you are fitting noise:

  • Bid, no-bid, or bid-then-withdraw, with the reason recorded at the time
  • Win or loss, plus any stated evaluator reason. Themes worth encoding as features come from win/loss pattern synthesis
  • What you actually delivered, not only the marketed service line. A comparable past scope retriever on closed jobs beats a NAICS or G-Cloud tag
  • Proposal effort if you have it: hours, or full proposal versus letter versus oral-only

Live capacity, from the PSA, not from memory:

  • Named roles the bid would consume and their next available week
  • Hard constraints: clearance, location, language, conflict walls
  • A rough cost of the pursuit, using effort estimation from historical actuals when you have prior response actuals. A technically winnable RFP that burns seniors for three weeks can still be a no-bid

If service line, sector, and incumbent are blank on a large share of records, fix intake before you fit a model.

Illustrative example: a 280-person public-sector practice

A mid-size public-sector practice can run a partner-filled scorecard for a year and still staff almost every proposal. The walkthrough below is illustrative: realistic firm details, no measured results.

Capture lead at a 280-person advisory firm, US and UK government work. Volume on the order of 150 to 200 RFPs, RFIs, and task-order requests a year. Bid/no-bid is a 25-minute call with the originating partner. Almost everything that reaches the call is a yes, because a no in the room sounds like an accusation.

What they tried

A five-box spreadsheet (strategic fit, capability, relationship, competitive position, margin), scored 1 to 5 by the originating partner.

What broke

Partners scored their own deals high, so the sheet never killed a pursuit. Capacity was not a box, so they still stood up 10- to 12-person proposal teams in weeks when every qualified engagement manager was already committed. "Fit" meant "we want this logo," which produced full responses on vehicles with no past performance in the last five years. Override reasons were never written down.

What they changed

They split the gate into three heads the originator does not complete alone. Fit is a lookup against the account and vehicle strategy list. Capability is past performance on comparable scope, pulled from closed jobs. Capacity is named roles against the PSA for the response window and the delivery window. Win probability is a backtest readout for the capture lead only.

Low combined scores open a 15-minute capture review with a default of no-bid. Named strategic accounts cannot be declined without the practice lead. Every override is a required field: who, why, and whether the reason is strategy, relationship, or "the model is wrong about capability." Passes go to a pre-pitch client context brief. Drafting starts only after that brief, with a RAG proposal draft generator on a cleaned library. They did not auto-decline. They stopped forming a proposal team on the afternoon the RFP arrived.

Shadow-score last year before a live no-bid

Backtest on frozen historical fields, then shadow live intake for a full bid cycle, before the score can change who gets staffed. If last year's file cannot rank wins above the obvious losses, partners will reject the tool in week one.

  1. Freeze four to eight quarters of bid, no-bid, win, and loss records as the CRM looked at the gate, not as later cleaned
  2. Score every record. The bottom band should be mostly losses and withdrawals, with true wins rarely sitting there
  3. Shadow-score live intake for one cycle (often a quarter in public sector). Capture sees the score. Partners do not
  4. Only then put three heads plus a recommended action (bid, discuss, default no-bid) into the meeting. A human still staffs the team

Guardrails once it is in the room:

  • No automatic no-bid. Unattended declines get overridden in private
  • Record every override, so you can tell a broken capability tag from a real exception
  • Recalibrate on a merger, a new sector bet, or a hiring freeze
  • Report hours not spent on doomed responses, and whether those hours appeared on winnable work. Do not report "pipeline rejected"
  • Watch inbound volume by source. If BD stops entering weak RFPs, the score distribution improves for the wrong reason

Success looks like fewer all-hands war rooms on vehicles with no past performance, specific override reasons, and a context brief before anyone drafts. Failure looks like partners ignoring the score.

Keep capture intel, the CRM score, and proposal software in separate lanes

Public-sector capture databases, custom CRM scoring, and RFP-response platforms are adjacent. None of them is a complete bid/no-bid engine.

Deltek GovWin and tools in that class help you see the vehicle, incumbency, and chase calendar. Use them for intake. Pipe the opportunity into the CRM, then apply your own fit, capability, and capacity scores. Do not treat market-intel presence as a reason to bid.

Custom scoring on CRM and PSA data is the gate: three heads plus a win-probability readout, with a recorded human decision. Salesforce, Dynamics, and similar CRMs hold the fields. The PSA holds the bench.

Proposal platforms such as AutogenAI and Responsive (RFPIO) sit after the gate. They draft against a questionnaire or RFP. Run them only on pursuits that already passed.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first