Federal Recompete Finder — Expiring Contracts by NAICS avatar

Federal Recompete Finder — Expiring Contracts by NAICS

Pricing

$20.00 / 1,000 expiring contracts

Go to Apify Store
Federal Recompete Finder — Expiring Contracts by NAICS

Federal Recompete Finder — Expiring Contracts by NAICS

Federal contracts ending in the next 3–18 months by NAICS, PSC, state or agency: incumbent, agency, value, option runway, recompete signal with reasons, incumbent profile link. First 25 rows free, then $0.02/contract.

Pricing

$20.00 / 1,000 expiring contracts

Rating

0.0

(0)

Developer

Record Foundry

Record Foundry

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

Federal Contract Recompete Finder — Expiring Contracts by NAICS

Find U.S. federal contracts whose current period of performance ends in the months ahead. These are the contracts an agency must extend, re-award or let lapse. Filter by NAICS, product/service code (PSC), place of performance and awarding agency. Each row shows the incumbent business, the agency, the obligated and potential value, the option end date, the set-aside and a link to the official USAspending.gov award page. It also gives a recompete signal with plain-English reasons (option time left, follow-on under a vehicle, recent changes, DoD reporting delay) and a snapshot of each incumbent.

The first 25 contracts in every run are free.

Who it's for

  • Small government contractors building a pipeline of work that ends 3–18 months out.
  • BD and capture consultants producing target lists of expiring work, incumbents and values for clients.
  • Teaming and subcontracting: see who holds the work in your NAICS today and which vehicle it sits on.

What you get

  • One row per contract, earliest end date first, ready to export as CSV, Excel or JSON.
  • A recompete signal on every row (recompeteSignal): one of May extend via options, Follow-on may stay on vehicle, Recently modified, Likely recompete or Option status unknown, with short reasons (signalReasons). Fixed rules on published data, no scores or probabilities (see Recompete signals).
  • Option runway: current end date, potential end date if all options are exercised, optionPeriodRemaining, and optionRunwayMonths (whole months of option time left). Also months and days until the end date, set-aside type, extent competed and solicitation ID.
  • Incumbent and vehicle: recipient name, UEI, parent company and a link to the incumbent's USAspending.gov recipient profile (recipientProfileUrl). For task/delivery orders, the parent IDV (parentAwardId), such as a GSA schedule or agency IDIQ.
  • A run summary (key-value record OUTPUT): filters used, completeness, totals by agency, counts by recompete signal, an incumbent snapshot (top 25 incumbents with their contracts in the list, obligated and potential totals, earliest end date, top agencies, NAICS codes and profile link), counts by months-until-end, and coverage notes.

Quick start

The input form is prefilled with an example: IT services (NAICS 541512) performed in Virginia, ending 3–18 months from today.

{
"naicsCodes": ["541512"],
"placeOfPerformanceStates": ["VA"],
"endsAfterMonths": 3,
"endsBeforeMonths": 18
}

More examples:

{ "naicsCodes": ["561720"], "placeOfPerformanceStates": ["TX"] }
{ "naicsCodes": ["236220"], "minValue": 1000000, "maxResults": 2000 }
{ "awardingAgencies": ["Department of Veterans Affairs"], "pscCodes": ["S2"], "includeIdvOrders": false }

Input

FieldDefaultMeaning
naicsCodes—2, 4 or 6-digit NAICS codes. Shorter codes match every code beginning with them ("5415" covers 541511–541519). USAspending rejects 3- and 5-digit codes, so the Actor does too.
pscCodes—1–4 character PSC codes ("R425", "DA01"). Shorter codes match every code beginning with them ("S2" covers S201, S205, S208…).
placeOfPerformanceStatesall2-letter codes ("VA", also DC, AS, GU, MP, PR, VI). Several states are combined with OR. Leave empty for all locations, including places of performance outside the U.S.
awardingAgenciesallTop-level agency names as USAspending lists them ("Department of Veterans Affairs") or their abbreviations ("GSA"), case-insensitive. Unknown names are rejected, with suggestions when a close match exists.
endsAfterMonths3The window starts this many months from the run date (UTC).
endsBeforeMonths18The window ends just before this many months from the run date. The window can span at most 24 months.
minValue100000Minimum obligated to date in USD (USAspending "Award Amount"). Use 0 for no minimum. Potential value is reported but not used for this filter.
maxResults2001–2,000. Earliest-ending contracts are returned first.
includeIdvOrderstrueInclude BPA calls and task/delivery orders placed under IDVs (IDIQs, GWACs, schedules, BPAs). Set to false for standalone purchase orders and definitive contracts only.

Give at least one of naicsCodes, pscCodes or awardingAgencies. Filters combine with AND, and values within one filter combine with OR. Unknown fields and malformed values are rejected with a clear message before any contract data is fetched.

Why orders are included by default: in the Virginia IT test run, 176 of 199 expiring contracts (88%) were orders under an IDV. Excluding them would hide most of the market and its incumbents. Every row says whether it is an order (isIdvOrder) and names the parent vehicle (parentAwardId), so you can filter in your spreadsheet. Follow-on work for an order may be placed under the same vehicle, which can limit who may compete.

Output

Each dataset row has these fields. Values not published by USAspending are null.

FieldMeaning
awardIdContract or order number (PIID)
generatedInternalId, usaspendingUrlUSAspending award key and official award page
recipientName, recipientUei, parentRecipientNameIncumbent business, its SAM.gov UEI and parent company
awardingAgency, awardingSubAgency, fundingAgencyAgencies as published
naicsCode, naicsDescription, pscCode, pscDescriptionClassification codes
descriptionAward description (contact details removed, see Privacy)
awardType, isIdvOrder, parentAwardIdBPA CALL, PURCHASE ORDER, DELIVERY ORDER or DEFINITIVE CONTRACT; parent vehicle PIID for orders
startDate, currentEndDate, potentialEndDatePeriod of performance (YYYY-MM-DD)
optionPeriodRemainingtrue if the potential end date is after the current end date, so the agency could extend by exercising options
daysUntilEnd, monthsUntilEndFrom the run date to the current end date
totalObligated, potentialValueObligated to date, and base plus all options, in USD
setAside, extentCompeted, solicitationIdFrom the award's latest transaction
placeOfPerformanceState, placeOfPerformanceCityPrimary place of performance
lastModifiedDateWhen the award record last changed
detailsRetrieved, recipientWithheldData-quality and privacy flags (see below)
sourceRetrievedAtWhen this run collected the data (UTC)
optionRunwayMonthsWhole calendar months from currentEndDate to potentialEndDate, rounded down. 0 when they are equal or the potential end date is missing (then optionPeriodRemaining is null)
recompeteSignalPrimary recompete signal (see Recompete signals)
signalReasonsShort plain-English reasons: every rule that applies, the primary one first
recipientProfileUrlThe incumbent's USAspending.gov recipient profile page; null when the recipient is withheld

Fields added in version 0.2 (the last four) come after the original fields; no field was renamed or removed.

Sample output

Rows from version 0.2 live runs on 2026-09-25 (USAspending data last updated 2026-09-25):

EndsAward IDIncumbentAgency / sub-agencyTypeObligatedPotential valuePotential endRecompete signalSet-asidePlace
2026-12-2775FCMC19F0001GENERAL DYNAMICS INFORMATION TECHNOLOGY, INC.Health and Human Services / Centers for Medicare and Medicaid ServicesDelivery order under HHSM500201600012I$111,465,470.00$111,465,470.002026-12-27Follow-on may stay on vehicle—FAIRFAX, VA
2026-12-281333BJ23C00280001BLACKWATCH INTERNATIONAL CORPORATIONCommerce / U.S. Patent and Trademark OfficeDefinitive contract$50,224,893.60$68,661,345.542028-03-28May extend via options (15 months)NO SET ASIDE USED.MCLEAN, VA
2026-12-2970RCSJ25FR0000045DECISIONPOINT CORPORATIONHomeland Security / Office of Procurement OperationsDelivery order under 47QTCH18D0013$4,000,752.94$10,481,745.682028-09-29May extend via options (21 months)—ARLINGTON, VA
2026-12-31140D0424C0021METAPHASE CONSULTING LLCInterior / Departmental OfficesDefinitive contract$3,485,436.04$6,822,874.342026-12-31Recently modified8(A) SOLE SOURCEHERNDON, VA
2026-12-31W9115122C0002CW RESOURCES, INC.Defense / Department of the ArmyDefinitive contract$15,568,733.99$16,066,887.222026-12-31Likely recompeteNO SET ASIDE USED.FORT CAVAZOS, TX
2027-02-28W912BV23P0050withheld (sole proprietor)Defense / Department of the ArmyPurchase order$173,285.00$216,025.002028-02-29May extend via options (12 months)SMALL BUSINESS SET ASIDE - TOTALPOWDERLY, TX

The Blackwatch, DecisionPoint and Army purchase-order rows have option time left, so the agency could extend them instead of recompeting. The General Dynamics order has no option time left, but a follow-on may be ordered under the same vehicle. The CW Resources contract is a standalone contract with no option time left and no change in the last 90 days, so it is labeled Likely recompete; its reasons also note the DoD reporting delay. The Metaphase contract also has no option time left, but its record changed 17 days before the run, so check what changed first.

One complete row as delivered (version 0.2 live run):

{
"awardId": "140D0424C0021",
"generatedInternalId": "CONT_AWD_140D0424C0021_1406_-NONE-_-NONE-",
"recipientName": "METAPHASE CONSULTING LLC",
"recipientUei": "ZH8ACM4ZWDL7",
"parentRecipientName": "METAPHASE CONSULTING LLC",
"awardingAgency": "Department of the Interior",
"awardingSubAgency": "Departmental Offices",
"fundingAgency": "Department of Commerce",
"naicsCode": "541512",
"naicsDescription": "COMPUTER SYSTEMS DESIGN SERVICES",
"pscCode": "DA01",
"pscDescription": "IT AND TELECOM - BUSINESS APPLICATION/APPLICATION DEVELOPMENT SUPPORT SERVICES (LABOR)",
"description": "WEBSITE SERVICES SUPPORT FOR THE BUREAU OF ECONOMIC ANALYSIS ESTIMATED INFORMATION TECHNOLOGY SYSTEM (BEA-EITS)",
"awardType": "DEFINITIVE CONTRACT",
"isIdvOrder": false,
"parentAwardId": null,
"startDate": "2024-01-01",
"currentEndDate": "2026-12-31",
"potentialEndDate": "2026-12-31",
"optionPeriodRemaining": false,
"daysUntilEnd": 97,
"monthsUntilEnd": 3,
"totalObligated": 3485436.04,
"potentialValue": 6822874.34,
"setAside": "8(A) SOLE SOURCE",
"extentCompeted": "NOT COMPETED UNDER SAP",
"solicitationId": "140D0424Q0005",
"placeOfPerformanceState": "VA",
"placeOfPerformanceCity": "HERNDON",
"lastModifiedDate": "2026-09-08",
"detailsRetrieved": true,
"recipientWithheld": false,
"usaspendingUrl": "https://www.usaspending.gov/award/CONT_AWD_140D0424C0021_1406_-NONE-_-NONE-",
"sourceRetrievedAt": "2026-09-25T19:42:59+00:00",
"optionRunwayMonths": 0,
"recompeteSignal": "Recently modified",
"signalReasons": [
"Award record modified 2026-09-08 (17 days before this run): recent agency activity, check what changed",
"No option time left: the potential end date is also 2026-12-31",
"Standalone contract, not an order under an IDV"
],
"recipientProfileUrl": "https://www.usaspending.gov/recipient/46ab4a7b-cf07-7227-8022-2024d8e16c57-C/latest"
}

Run summary (OUTPUT)

The summary covers exactly the rows delivered. It includes the filters and window used, totals by awarding agency, the top 25 incumbents by obligated value (grouped by UEI), counts by months until end, and counts of orders versus standalone contracts and of rows with option time remaining. It also records USAspending's data-update date and these completeness counts:

  • sourceRecordCount: search rows read from USAspending.
  • matchedRecordCount: contracts in the window that were collected.
  • deliveredRecordCount: rows in your dataset.
  • truncatedAtMaxResults, completeThroughEndDate, nextUnreturnedEndDate: whether the result cap cut the list, and up to which end date it is complete.

Added in version 0.2:

  • byRecompeteSignal: contracts and obligated dollars for each recompete signal, in precedence order (every signal is listed, including zero counts).
  • incumbentSnapshot: the top 25 business-entity incumbents by obligated value, grouped by UEI. Each entry has contractCount (contracts in this list), totalObligated, potentialValue (total potential), earliestEndDate, topAgencies (up to 3, by obligated), naicsCodes, signalCounts and recipientProfileUrl. Withheld recipients are never included.
  • counts.optionRunwayCount (rows with at least one whole month of option time) and counts.dodAwardCount (DoD awards, see the reporting delay below).
  • delivery.freeCount and delivery.chargedCount: how many delivered rows were free and how many were charged.

An incumbent snapshot entry from the Virginia IT test run:

{
"recipientName": "BOOZ ALLEN HAMILTON INC",
"recipientUei": "JCBMLGPE6Z71",
"parentRecipientName": "BOOZ ALLEN HAMILTON HOLDING CORPORATION",
"contractCount": 1,
"totalObligated": 154938140.8,
"potentialValue": 419341814.4,
"earliestEndDate": "2026-12-31",
"topAgencies": [
"National Science Foundation"
],
"naicsCodes": [
"541512"
],
"signalCounts": {
"May extend via options": 1
},
"recipientProfileUrl": "https://www.usaspending.gov/recipient/ffca72e5-fba2-798a-6969-2a6c45e9f985-C/latest"
}

Recompete signals

Every row gets one recompeteSignal and a list of signalReasons. The signal comes from fixed rules on the published data. It is not a prediction, probability or score. Every rule that applies adds a reason, and the first applicable signal in this order becomes recompeteSignal:

PrecedenceSignalRuleWhat it means for you
1May extend via optionsoptionRunwayMonths is 1 or moreThe agency could extend the incumbent by exercising options instead of recompeting. The reason gives the months and the potential end date.
2Follow-on may stay on vehicleOrder under an IDV (isIdvOrder)A follow-on may be ordered under the same IDIQ, GWAC or schedule (parentAwardId), which limits who can compete. Check whether you hold or can team on that vehicle.
3Recently modifiedlastModifiedDate within 90 days of the run dateRecent agency activity: possibly an extension, an option exercise or new funding. Check the award history on USAspending.gov.
4Likely recompeteStandalone contract, no option runway, no recent changeNothing in the published data points to another path. Still not guaranteed: agencies may extend, cancel or consolidate.
5Option status unknownNo potential end date publishedRare; award details were unavailable.

"Likely recompete" is kept for the clean case on purpose. A standalone contract whose record changed recently is labeled Recently modified, and its reasons still say that no option time is left.

Option time of less than one whole month (for example a potential end date 29 days after the current one) counts as no option runway; the reason says "Option time left is under 1 month".

Reasons also flag:

  • Standalone contracts: "Standalone contract, not an order under an IDV".
  • Department of Defense awards: "DoD award: USAspending publishes DoD contract data with a 90-day delay, so recent changes may not appear yet". USAspending states that Department of Defense and U.S. Army Corps of Engineers procurement data is published in FPDS on a 90-day delay (About the Data, pages 9 and 12; Data Sources, pages 5 and 11). This is a note, never the primary signal.

Example reasons from live rows:

["Order under parent vehicle HHSM500201600012I: a follow-on may be ordered under the same IDIQ, GWAC or schedule, limiting who can compete",
"No option time left: the potential end date is also 2026-12-27",
"Award record modified 2026-09-15 (10 days before this run): recent agency activity, check what changed"]

How complete are the results?

  • The whole window is searched. USAspending's date filters only cover signing, action and modification dates. The Actor instead pages through contracts sorted by current end date, starting at the window start. In a cross-check against an independent search method, both returned the same 773 contracts (NAICS 541512, Virginia, 3–18 months).
  • Partial pages are caught. In testing, USAspending sometimes returned a page with rows silently missing. The Actor reads every page twice and accepts it only when both reads match. It re-reads when they differ and fails the run rather than return a partial list. Each of three 2,000-row test runs caught and re-read 2 such pages.
  • The result cap is disclosed. If more contracts match than maxResults, you get the earliest-ending ones. The run status and summary give the end date through which the list is complete (for example "complete for end dates through 2027-03-10"). To see later expirations, raise maxResults or endsAfterMonths.
  • Rows may number slightly fewer than the cap. Contracts held by government entities are dropped after collection (see Coverage), and the summary counts them.

Verified live runs (2026-09-25)

Version 0.2, run through main.py with the Apify SDK, local storage and simulated pay-per-event pricing ($0.02 per expiring-contract):

InputRows deliveredFree / chargedRecompete signalsCoverageRuntime
NAICS 561720, TX, maxResults 604925 / 2431 options, 7 vehicle, 6 recently modified, 5 likely recompeteEntire window, 2026-12-25 to 2028-03-2421.9 s
NAICS 541512, VA, maxResults 606025 / 3540 options, 18 vehicle, 2 recently modified, 0 likely recompeteCap reached; complete through 2027-01-1718.9 s

Version 0.1:

InputRows deliveredCoverageRuntime
NAICS 541512, VA (defaults)199Cap reached; complete through 2027-03-1033.4 s
NAICS 561720, TX (defaults)49Entire window, 2026-12-25 to 2028-03-2411.5 s
NAICS 236220, all locations, minValue 1,000,000199Cap reached; complete through 2027-01-0367.9 s
Veterans Affairs, PSC S2, standalone only, maxResults 10096Cap reached; complete through 2027-03-3025.1 s
NAICS 236220, all locations, minValue 1,000,000, maxResults 2,0001,989Cap reached; complete through 2027-09-16472 s (earlier identical runs: 471 s and 691 s)

Runtimes depend on how quickly USAspending responds. Repeated test runs of the four smaller inputs took 11–68 seconds, once 122 seconds. Runtime grows with the number of rows, because each contract needs one extra lookup for its potential value, option dates, parent company and set-aside. The full Actor, including the Apify SDK, peaked below 80 MB of memory on the 200-row Virginia input.

Pricing

First 25 contracts in every run are free; then $0.02 per contract. No matches, no charge.

The first 25 rows of every run are delivered without a charge. Each row after that is charged once, as the expiring-contract event. A run that finds nothing, or fails, delivers no rows. If your maximum cost per run is reached, delivery stops with the earliest end dates delivered first; the free rows are always delivered. The run status says how many rows you received and how many were free, for example "Found 49 expiring contracts ending 2026-12-25 to 2028-03-24. The first 25 are free; 24 were charged."

Coverage and limitations

  • What is searched: prime contract awards in USAspending with award types A (BPA call), B (purchase order), C (delivery/task order) and D (definitive contract). IDV vehicles themselves (IDIQs, GWACs, schedules, BPAs) are not listed; their orders are. Subawards, grants and other assistance are not included.
  • Which end date: the current period-of-performance end date as USAspending publishes it. Contracts without an end date are not listed.
  • Filters: NAICS and PSC match the award-level codes USAspending reports. Place of performance is the award's primary place of performance. minValue compares obligated dollars, not potential value.
  • Business entities only: recipients are limited to USAspending's "Business" recipient type. USAspending also tags some cities and counties that way, so recipients it flags as a government entity are dropped. In the Veterans Affairs test run, 4 of 100 were dropped. Recipients it does not flag as government, such as nonprofits, are kept.
  • Not a prediction: an expiring contract is a likely but not guaranteed recompete. Agencies may extend, exercise options, cancel, or consolidate; verify on SAM.gov. recompeteSignal is a rule-based label from published fields, not a forecast. This Actor does not read SAM.gov solicitations or forecasts.
  • Reporting delays: Department of Defense contract data reaches USAspending with a 90-day delay, so a recent DoD extension or option exercise may not show yet. lastModifiedDate records any change to the award record, including funding and administrative changes.
  • Data freshness: every run reads live data. The summary records USAspending's own "last updated" date, which was the run date in all tests. If USAspending publishes an update mid-run, the run stops and asks you to rerun.
  • Source reliability: USAspending sometimes stalls or times out. The Actor retries with increasing timeouts. If the source stays unavailable or inconsistent, the run fails with a clear message and delivers nothing.

Data source and privacy

Sourced exclusively from official U.S. government open data (USAspending.gov). Records describe business entities; contains no personal contact data.

  • The Actor returns only the fields listed above. It does not include officer or executive names, point-of-contact fields or recipient addresses, even where USAspending publishes them.
  • Award descriptions are published free text, and in testing some named government staff. The Actor removes email addresses and phone numbers together with the clause around them. It also drops text after a point-of-contact label ("COR:", "POC:", "CO -", "Contracting Officer's Representative:" and similar) and a person's name at the very end of a description. Free text could still mention a person in some other form, so treat descriptions as published text.
  • Some sole proprietorships are registered under the owner's personal name, as seen in testing. When USAspending classifies a recipient as a sole proprietorship with no separate legal-entity type, or its details could not be checked, the row keeps the contract but sets recipientName, recipientUei, parentRecipientName and recipientProfileUrl to null, with recipientWithheld: true. Withheld recipients are also left out of topIncumbents and incumbentSnapshot.
  • recipientProfileUrl links to the business's public USAspending.gov recipient page, built from the recipient id USAspending publishes with the award. The Actor does not copy anything from that page.

This Actor is not affiliated with USAspending.gov or any U.S. government agency.

Contact

Questions or requests: matthew@goodlifegames.io

Built and maintained with AI agents.