ActorStack.dev

36.7% of federal notices carry a document, and the agency matters more than the type

Measured on a stratified sample covering 96.7% of the active index: Veterans Affairs posts documents on nearly every solicitation, the Department of Defense on about a quarter — and DoD is 63% of the index.

By Oswaldo Carabano8 min read

Short answer

36.7% ± 4.6 of active SAM.gov notices carry at least one downloadable file, measured on a stratified sample of 829 notices across 70 agency × notice-type cells covering 96.7% of the active index. The rate varies by notice type — Sources Sought 60%, Solicitation 49%, Award Notice 14% — and far more by agency: roughly 100% at Veterans Affairs, ~90% at GSA and ~28% at the Department of Defense, which is 63% of the index and posts much of its documentation on its own portals.

Key points

  • 36.7% ± 4.6 of active notices carry a real file, on a stratified sample of 829 notices across 70 agency × notice-type cells.
  • `file` and `link` are distinguished: a link to an agency portal is not the solicitation, and `file_count` and `link_count` are separate fields for that reason.
  • By notice type: Sources Sought 60%, Special Notice 56%, Justification 52%, Solicitation 49%, Combined Synopsis 39%, Presolicitation 32%, Award 14%.
  • By agency: Veterans Affairs ~100%, GSA ~90%, Department of Defense ~28% — and DoD is 63% of the whole index.
  • Average file size is 1.5 MB, and the download URL is stable and unsigned, redirecting 303 to a short-lived signed link.
  • Attachments SAM.gov marks restricted, export-controlled, deleted or non-public are not returned at all, URL included.
On this page7 sections

The most valuable thing in a federal contract notice is usually not the notice. It is the statement of work attached to it — and whether that attachment exists depends far more on which agency published it than on what kind of notice it is.

The number, and its error bar

36.7% ± 4.6 of active notices carry at least one downloadable file. That comes from a stratified sample of 829 notices across 70 agency × notice-type cells, covering 96.7% of the active index. Average file size: 1.5 MB.

The error bar is there because the sample is stratified rather than exhaustive. A single headline number without one would imply a precision the method does not support.

Every attachment entry declares its kind, and the distinction is the point:

kindWhat it isFields
fileThe real document — PDF, statement of work, price matrix, amendment.name, size_bytes, mime_type, url
linkA URL to the agency's own portal, when that is all the agency posted.name, url

file_count and link_count are separate fields on purpose. A link to neco.navy.mil is not the solicitation, and counting it as one would inflate exactly the number people would use to decide whether this dataset is worth having.

By notice type

Notice typeShare of indexCarries a file
r — Sources Sought7%60%
s — Special Notice6%56%
u — Justification1%52%
o — Solicitation18%49%
k — Combined Synopsis/Solicitation34%39%
p — Presolicitation8%32%
a — Award Notice24%14%

Sources Sought at 60% is intuitive once you think about it: an agency asking industry whether something is feasible has to describe what it wants. An award notice at 14% is equally intuitive — the work of describing the requirement is already done.

By agency, which matters more

AgencySolicitations carrying a file
Veterans Affairs~100%
General Services Administration~90%
Department of Defense — 63% of the whole index~28%

This is the finding that should change your run. The DoD is nearly two thirds of the index and posts much of its documentation on its own portals — so it publishes a link rather than a file, and its ~28% rate is what drags the overall figure down to 36.7%.

Which means filtering by agency changes what you get more than filtering by notice type does. A VA-only solicitation sweep with attachments on has a hit rate near 100%; the same sweep across the whole index has one near a third.

Downloading a document

The url is stable and unsigned — it keeps working after the run finishes and you can store it. It returns a 303 redirect to a short-lived signed S3 link, so your client has to follow redirects and finish the download promptly:

the -L is required
curl -L -o sow.pdf "<attachments[0].url>"

Verified: the bytes you get back match the size_bytes reported, exactly. That check is worth running yourself on a sample, because a truncated download that reports success is the failure mode of every redirect-following pipeline.

What is not returned at all

Attachments SAM.gov marks restricted, export-controlled, deleted or non-public are not returned — not the file, and not even its URL, because publishing the URL to a controlled document publishes the document.

Planning a run around the real rate

  1. Filter notice types first. Solicitations and Sources Sought if you want documents; skip award notices.
  2. Filter agencies if you can. It moves the hit rate more than anything else.
  3. Budget for the miss rate. Attachments cost one request per notice whether or not the notice has one.
  4. Store the URLs, not just the files. They are stable, so re-downloading later is possible without re-running.

Frequently asked questions

How many SAM.gov notices have downloadable documents?
36.7% ± 4.6 of active notices carry at least one real file, measured on a stratified sample of 829 notices across 70 agency × notice-type cells covering 96.7% of the active index.
Why does the Department of Defense have such a low rate?
Because it posts much of its documentation on its own portals and publishes a link to them rather than the file. DoD is 63% of the whole index, which is why its ~28% rate drags the overall figure down and why filtering by agency changes what you get more than filtering by notice type does.
What is the difference between a file and a link?
A `file` is the real document — the PDF, the statement of work, the price matrix. A `link` is a URL to an agency portal, which is all the agency posted. `file_count` and `link_count` are separate fields because a link to neco.navy.mil is not a solicitation.
How do I download an attachment?
Follow redirects. The URL is stable and unsigned but returns a 303 to a short-lived signed link, so `curl -L` and finish promptly. The bytes you get back match the reported `size_bytes` exactly.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Operator claimchecked 19 Aug 2026
    SAM.gov Federal Contract Opportunities & Attachments — Actor README and input schemaActorStack / Apify Store
  2. Operator claimchecked 19 Aug 2026
    Contract OpportunitiesSAM.gov (U.S. General Services Administration)
The dome of the United States Capitol against a clear sky.
SAM.govGuide

Opportunity monitoring

A working monitoring pipeline: what to filter, how often to run, which deadline field to schedule against, and where the attachment rate changes your plan.

8 min
The dome of the United States Capitol against a clear sky.
SAM.govGuide

Scrape SAM.gov

A walkthrough of extracting U.S. federal contract notices: which filters actually narrow the index, how to get the solicitation documents, and why there are three deadline fields.

9 min
A desk with stacked legal reference books, loose documents and a newspaper.
SAM.govExplainer

Is it legal?

Federal notices are published because the law requires agencies to publicise them, and U.S. Government works carry no copyright. That settles more than usual — and not everything.

7 min