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.
A file is not a link
Every attachment entry declares its kind, and the distinction is the point:
kind | What it is | Fields |
|---|---|---|
file | The real document — PDF, statement of work, price matrix, amendment. | name, size_bytes, mime_type, url |
link | A 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 type | Share of index | Carries a file |
|---|---|---|
| r — Sources Sought | 7% | 60% |
| s — Special Notice | 6% | 56% |
| u — Justification | 1% | 52% |
| o — Solicitation | 18% | 49% |
| k — Combined Synopsis/Solicitation | 34% | 39% |
| p — Presolicitation | 8% | 32% |
| a — Award Notice | 24% | 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
| Agency | Solicitations 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:
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
- Filter notice types first. Solicitations and Sources Sought if you want documents; skip award notices.
- Filter agencies if you can. It moves the hit rate more than anything else.
- Budget for the miss rate. Attachments cost one request per notice whether or not the notice has one.
- Store the URLs, not just the files. They are stable, so re-downloading later is possible without re-running.


