Noetic

Scoring Methodology

How Opportunity Scout ranks state, county, and municipal solicitations for a commercial trade contractor

← Back to Scout

Overview

Opportunity Scout scores each ingested solicitation and pre-solicitation on a 0–93% Win Likelihood scale. This is not a statistical win probability — it's a relative priority rank that surfaces the best-fit, lowest-friction work for a mid-market commercial trade contractor (HVAC, electrical, plumbing, painting, roofing, facility maintenance) in Maryland, Virginia, and the D.C. metro.

Scoring runs entirely server-side in the Cloudflare Worker. All scores are computed fresh on each scan and are refined by Claude's read of the actual solicitation documents.

Sources & taxonomy

Every opportunity carries a source tag: state-md (Maryland eMMA), state-va (Virginia eVA), or state-dc (D.C.). When a NIGP or UNSPSC commodity code is present it is auto-detected and stands in for a profile-code match at Step 3. Virginia opportunities are pulled automatically each day from the eVA portal; Maryland and D.C. records are loaded from commodity-code alert emails or a fixed-column upload.

Win Likelihood = Base(25) + Eligibility + Value + Set-aside + Bond + Keyword − No-match penalty + Classification credit − Complexity penalty − Red-flag penalties → clamped 8%–93% Sort rank = (Win Likelihood² ÷ Complexity²) × Trade-tier weight

Step 1 — Exclusion Filter

Before scoring, any opportunity whose title matches an exclusion pattern is flagged "off-profile" and scored 5% (hidden from the ranked view by default). The list is deliberately narrow so building trade work always passes — it screens out only structurally out-of-scope categories.

CategoryExample keywords
Heavy civilroad / highway / bridge / dam / dredging / earthwork / site grading / paving
Aviation / aerospaceaircraft, aviation, airframe, rotor, helicopter
Weapons / ordnanceweapon, ordnance, ammunition, missile, artillery
Nuclear / CBRNnuclear reactor, radiological, biological agent, chemical agent
Non-construction servicescatering / dining / meal preparation / agriculture / livestock
Electronics manufacturingcircuit board, PCB, semiconductor, cable assembly
Marine vesselsvessel, ship, submarine, destroyer
Materials-supply packagesmaterialman, supply only, furnish and deliver only, equipment procurement package, "no on-site installation" — buyer wants equipment made and delivered, not a contractor to install it

Note: "Roof replacement", "HVAC upgrade", "electrical service", "building renovation" etc. are not excluded — commercial building trades are the target.

Step 2 — Base Score & Adjustments

Base

Every non-excluded opportunity starts at 25%.

Eligibility (set-aside / preference)

ConditionAdjustment
Eligible now — SB / unrestricted / SBR (MD) / SWaM (VA) / SBE / CBE (DC) / MBE / DBE+16%
Future eligible — WOSB / SDVOSB / 8(a) / HUBZone (cert gap)+3%
SB set-aside or unrestricted channel (overlaps the row above — kept small)+6%
Bonding requirement (bid / performance / payment bond) — screens out undercapitalized bidders+4%

Contract value

Calibrated for mid-market trade contract sizes. A first pass — per-client bonding-capacity limits refine this once client profiles are added.

Contract valueAdjustmentRationale
Unknown / $0+4%Unpriced
≤ $50K+8%Small job — thin estimator ROI for a mid-market firm
$50K – $250K+16%Mid-market sweet spot
$250K – $1M+14%Solid project size
$1M – $3M+4%More bonding, more competition
$3M – $6M−8%Large
> $6M−18%Favors regional / national primes

Complexity

Complexity (Low −0% / Medium −5% / High −14%) is decoupled from raw dollar value.

CategoryComplexity rule
Janitorial, Grounds/Lawn, Painting — labor-scalable, low code/permit frictionLow up to $2M; Medium above — never High from size alone
HVAC, Electrical, Plumbing, Roofing, Facility Maintenance, unclassifiedValue tiers: Low <$500K, Medium $500K–$2M, High >$2M
Any category with a Design-Build, Multi-Site, or Abatement red flag+1 complexity level (capped at High)

Complexity also drives sort order — the ranked list is ordered by (WinLikelihood² ÷ Complexity²) × TradeTierWeight, so a High-complexity job ranks well below a Low-complexity one at the same win likelihood, and (see Step 3) a premium-trade job outranks a commodity-trade job that is otherwise equal. The tier weight affects sort order only — never the displayed win likelihood.

Step 3 — Trade Tier, Keyword Boost & No-Match Penalty

The opportunity title is scanned for trade keywords. Every matching trade is recorded (a job can be "Electrical and Plumbing Upgrades"); the highest-tier match applies its boost, labels the opportunity, and sets its tier — which also weights the sort order (Step 2). Two matched trades add +4%, three or more +6% (broader scope). A client counts as "in trade" if any matched trade is in their profile.

TierTradeTrigger keywords (sample)BoostSort weight
Premium
higher ticket, license- & bond-gated, fewer qualified bidders
HVAChvac, heating, ventilation, air-condition, chiller, boiler, rooftop unit, RTU, AHU, BAS, DDC, mechanical+22%1.0
Electricalelectrical, switchgear, lighting, generator, transformer, power distribution, conduit, wiring+22%1.0
Plumbingplumbing, piping, backflow, water heater, fixtures, sewer line, domestic water, grease trap+22%1.0
Roofingroof(ing), TPO, EPDM, built-up, membrane, shingle, roof replace/restore/recover/repair, waterproofing+22%1.0
RecurringFacility Maintenancefacility/building maintenance, preventive maintenance, repair services, multi-trade, O&M / operations and maintenance+16%0.9
Commodity
labor-driven, low barrier, incumbent-heavy, price-competitive
Paintingpainting, repaint, coating, surface prep, epoxy floor, protective coating, abrasive blast+12%0.78
Janitorialjanitorial, custodial, cleaning, housekeeping, sanitation+12%0.78
Grounds/Lawnlawn, landscape, grounds, mowing, turf, snow removal+12%0.78
No-match penalty: −12%
If no trade keyword matches the title, the opportunity takes a −12% penalty and a 0.6 sort weight. Vague titles are likely misclassified or out-of-profile — unknown scope defaults to skepticism, and stays out of the top of the brief.
Why "O&M" is a boost, not a flag: operations-and-maintenance language signals recurring, multi-trade facility work — core revenue for a facility-maintenance contractor. (In a services-firm scoring model it would be a red flag; here it is deliberately flipped.)

Classification credit

Records carry a UNSPSC or NIGP code, not a matchable profile-code table. An opportunity whose title matched a trade keyword gets a flat +6% classification credit plus +15 signal points — standing in for a direct commodity-code hit. Applies once, on a keyword match.

Step 4 — Red-Flag Deductions

Title patterns that signal structural disadvantage for a mid-market trade contractor. Total deduction is capped at −30%. Up to 2 flag labels show in the opportunity row.

FlagTrigger keywords (sample)Deduction
Design-Builddesign-build−12%
Abatementasbestos, lead abatement, lead-based paint, hazmat abatement, ACM, mold remediation−12%
Incumbent Signalincumbent, recompete, follow-on, option exercise, continuation of services−12%
PLA/Unionproject labor agreement, PLA, union labor required−8%
IDIQ/JOC VehicleIDIQ, MATOC, JOC, job order contract, indefinite-delivery, BPA−8%
Multi-Site Scopedistrict-wide, campus-wide, enterprise-wide, multiple facilities, portfolio of buildings−8%
Site Utilitywater/sewer main, water distribution system, force main, lift/pump station, manhole rehab, CIPP, sanitary sewer main/collection, utility relocation, stormwater BMP — underground/heavy-civil work that reads as plumbing but isn't a building contractor's scope−16%

Design-Build, Abatement, and Multi-Site also add one complexity level (Step 2).

Score Signal

Each score carries a Signal indicator (High / Med / Low) — how much data supports the score, not whether it's good or bad.

● High signal Strong trade-keyword match plus the classification credit. The score reflects real information about trade alignment.
● Med signal Partial signal — a keyword match is present but weak, or the title is otherwise ambiguous.
● Low signal No trade-keyword match. A conservative structural estimate — treat it as a flag for closer review, not a reliable likelihood.

Claude AI Analysis

On demand (click "Analyze ✦"), Claude reads the solicitation documents and returns the estimator's decision facts:

Analyses are cached 90 days and restored automatically after a re-scan. All analyzed opportunities are stored in the Analysis Archive.

Known Gaps & Limitations

What the score does not capture: