You're spending 5 hours a week on SAM.gov. Searching, filtering, opening listings that turn out to be useless. At $150/hour — a reasonable rate for a BD director or fractional consultant — that's $37,500/year just to find opportunities. And you're still missing most of the relevant ones.

That's the math we ran when we built AwardEdge. The results were embarrassing: manually monitoring SAM.gov means you see roughly 1 in 5 relevant opportunities. The other 80% get buried before you ever find them.

This isn't a pep talk about "you need to work smarter." It's a walkthrough of exactly how automated scoring works — with real numbers, real code, and the specific filters that separate worth-bidding from waste-of-time.

2,847
Active opportunities currently tracked
80%
Miss rate with manual SAM.gov monitoring
$37,500
Annual cost of manual monitoring at 5 hrs/wk

The Problem With Manual SAM.gov Monitoring

SAM.gov publishes tens of thousands of active solicitations at any given time. A small defense contractor with 6 NAICS codes, SDVOSB eligibility, and a $5M–$25M contract value range might be genuinely qualified for 40–80 of them. The rest is noise.

The problem isn't finding opportunities. It's finding the right opportunities without spending your entire week doing it. Here's what manual monitoring looks like in practice:

The result: you either over-search (wasting hours) or under-search (missing deals). There's no calibration for how much time to spend, because there's no way to rank what's actually worth your attention.


How Automated Scoring Works

Automated scoring starts with a company profile — your NAICS codes, set-aside eligibility, preferred contract values, past performance categories, and keywords. That profile becomes a scoring engine that evaluates every new SAM.gov solicitation in real time.

The three-layer filter

Every opportunity passes through three scoring layers before it reaches your desk:

  1. Eligibility filter — Does this opportunity match your set-aside status? Is your NAICS code in scope? Is the dollar value in your range?
  2. Capability match — How well does the NAICS description align with your capabilities? Is this a core competency or a stretch?
  3. Strategic fit — Keywords, agency history, competition level, and timing windows all factor into a final score between 0 and 100.

Only opportunities that pass all three layers with a score above your threshold reach you. The rest stay in the database, scored and ranked, available if you want to browse — but not filling your inbox with noise.

"The eligibility filter alone eliminates 60% of all SAM.gov solicitations for an SDVOSB contractor. That's 60% of the noise, gone before any human has to look."


Scoring in Practice: Real Code, Real Data

Here's what an opportunity looks like when it comes through the scoring engine. This is the JSON payload returned by our API for a single solicitation:

API Response — Scored Opportunity
{
  "notice_id": "FA8330-26-Q-00018",
  "title": "Electronic Warfare Support System Maintenance",
  "department": "Department of the Air Force",
  "naics": "334290",
  "naics_description": "Communications Equipment Manufacturing",
  "set_aside": "SDVOSB",
  "base_nsps_value": 1450000,
  "response_deadline": "2026-06-15T14:00:00Z",
  "score": 87,
  "score_breakdown": {
    "eligibility": 1.0,
    "naics_match": "exact",
    "set_aside_match": 1.0,
    "value_fit": 0.9,
    "keyword_relevance": 0.85
  },
  "verdict": "BID — strong SDVOSB fit, clear requirements, $1.45M within range",
  "compete_factor": 0.72,
  "days_remaining": 18
}

The score of 87/100 is the composite result of the eligibility and fit layers. Here's the pseudocode for the scoring algorithm that generates that number:

JavaScript — Scoring Pseudocode
// Score an opportunity against a company profile
function scoreOpportunity(opportunity, profile) {
  let score = 0;
  let weights = { eligibility: 0.35, naics: 0.25, value: 0.15, keywords: 0.25 };

  // Layer 1: Eligibility check — fail fast if ineligible
  if (!profile.set_asides.includes(opportunity.set_aside)) {
    return { score: 0, verdict: "INELIGIBLE — set-aside mismatch" };
  }
  if (opportunity.base_nsps_value > profile.max_value
      || opportunity.base_nsps_value < profile.min_value) {
    return { score: 0, verdict: "INELIGIBLE — value out of range" };
  }

  // Layer 2: NAICS match (exact > parent > grandparent)
  let naicsScore = scoreNaicsMatch(opportunity.naics, profile.naics_codes);

  // Layer 3: Keyword relevance from description + title
  let keywordScore = scoreKeywords(
    opportunity.title + " " + opportunity.description,
    profile.keywords
  );

  // Composite score (0–100)
  score = Math.round(
    (weights.eligibility * 1.0) +
    (weights.naics    * naicsScore) +
    (weights.value    * scoreValueFit(opportunity.base_nsps_value, profile)) +
    (weights.keywords * keywordScore)
  * 100);

  return {
    score,
    verdict: score >= 70 ? "BID" : score >= 40 ? "REVIEW" : "SKIP"
  };
}

What 2,847 Opportunities Actually Look Like

Here's the breakdown of opportunities in our current SAM.gov feed, filtered to small-business-eligible solicitations with values between $250K and $50M:

2,847
Total small-business-eligible opportunities
1,240
SDVOSB/VOSB set-aside only
$8.2M
Average contract value

Set-aside breakdown

The numbers reveal a pattern: SDVOSB contractors who focus on SDVOSB-only set-asides face roughly 1/3 the competition of total-small-business opportunities. That directly affects win probability — and it's something manual search rarely surfaces because most contractors never drill into the set-aside breakdown.


The Manual Monitoring Failure Mode

Here's what manual monitoring costs in practice. A contractor searching "defense maintenance" on SAM.gov might return 200 results. They'll open the first 20. The highest-value ones will be at the top of the list. But SAM.gov ranking isn't relevance ranking — it's posting date. So you're optimizing for freshness, not fit.

Our data shows that among opportunities scoring 80+ (the highest tier, the "bid now" signals), 43% had posted more than 14 days before being discovered. For a 30-day RFP window, that means 2 weeks of bidding time was already consumed before a human ever found it.

With automated monitoring, every new posting is evaluated within minutes. High-scoring opportunities are flagged immediately. You see them the same day they post, not two weeks later.


What You Can Do Today

If you're still doing manual SAM.gov searches, here's the minimum viable improvement:

  1. Lock in your NAICS codes — exact matches score 1.0, parent codes score 0.75. Know the difference.
  2. Filter to set-aside first — SDVOSB or VOSB only. Total-small-business competitions are 3x more competitive.
  3. Set a value floor — below $250K, the administrative overhead of bidding rarely pays. Filter it out.
  4. Sort by response deadline — opportunities closing in under 10 days need immediate attention.
  5. Score before you open — if the NAICS code doesn't match, don't read the description. Move on.

That's manual scoring. It's better than nothing. But you still have to do it every day, and you still miss opportunities that post between your search sessions.

The automated version does all of this continuously — and surfaces only the ones worth your time.


See what automated scoring finds for your profile

Configure your NAICS codes, set-aside eligibility, and value range. Get scored opportunities delivered daily.