Reading a USAspending Award Page
How to verify a contractor total on IceTracking.org by reproducing the math yourself, using Johns Hopkins Applied Physics Laboratory's CBP contracts as a worked example.
IceTracking.org reports that U.S. Customs and Border Protection has obligated $20.4 million to Johns Hopkins Applied Physics Laboratory (APL) between January 1, 2025 and May 2026. This walk-through shows where that number comes from and how to confirm it from the original government records.
Three things to note:
- APL has four active CBP contracts, not just one. The $20.4M is the combined total across all four. We'll walk through the largest one in detail, then point you to the other three.
- Each contract has a "ceiling" — a maximum the government may spend — and an "obligated" amount, which is what the agency has formally committed. IceTracking, as is common for this type of database, reports obligations. Ceilings can be much larger and are not a reliable indication of what the agency has actually committed to a contractor.
- Obligations are recorded transaction by transaction, often spread across years. To get a window-bounded total, you sum the individual transactions whose action dates fall inside the window.
Step 1: Open the contract page
The contract we'll walk through is 70B02C23C00000035, titled "Mission Engineering and Operational Research Support Services" (MEOR). It's the most recent of APL's four active CBP umbrella contracts. Open the MEOR contract page on USAspending.gov and follow along.
Step 2: Ignore the headline figures
The top of the page displays several large dollar amounts. These are useful for understanding the contract's scope but are not what we sum.
Here's what each of those headline figures means and why we don't use them:
| Field shown on page | What it means | Use for our total? |
|---|---|---|
| Award Amount or Base Exercised Options Value | The ceiling — the maximum the government may obligate over the contract's life | No |
| Base and All Options Value | The ceiling if every optional renewal year is exercised | No |
| Total Obligated Amount | Lifetime obligated total across all transactions on this contract — but it's lifetime, not window-bounded | No |
| Period of Performance | The date range the contract covers | Useful context, not for math |
The reason we don't use the lifetime "Total Obligated Amount" displayed at the top is that this contract was awarded in 2023. Its lifetime total includes 2023 and 2024 obligations that fall outside our reporting window of January 1, 2025 onward. To get a window-bounded total, we have to go to the transactions.
Step 3: Find the transactions table
Scroll down to the section labeled "Transaction History" (sometimes "Modifications," sometimes "Awarding Activity" depending on which page version you're on). It's a table with five columns.
The columns:
| Column | What it means |
|---|---|
| Modification Number | A sequential ID — P00001, P00002, etc. — for each change made to the contract |
| Action Date | The date the obligation was actually committed |
| Amount | The dollars obligated by this specific transaction (positive for adding funds, negative for taking them back) |
| Action Type | A code describing the nature of the modification (see below) |
| Transaction Description | A short narrative — sometimes informative, often boilerplate |
The "Action Type" codes you'll see most often:
- B: Supplemental Agreement for Work Within Scope — added work that fits the original contract description
- C: Funding Only Action — added money to the contract without changing the work
- M: Other Administrative Action — paperwork (updating dates, points of contact); usually $0
For the math, the Action Type doesn't matter. The Amount column is what you sum, regardless of action type. Negative amounts are real — they represent deobligations, where the government took committed money back — and they reduce the total.
Step 4: Sum the in-window transactions
For our reporting window, you sum every row whose Action Date is on or after January 1, 2025. Older transactions (2023 and 2024) are part of this contract but fall outside our window and are not summed.
Here are the 2025+ transactions visible on the MEOR page as of this writing:
| Mod | Action Date | Amount | Running total |
|---|---|---|---|
| P00024 | 06/09/2025 | $531,350 | $531,350 |
| P00025 | 09/10/2025 | $3,700,000 | $4,231,350 |
| P00026 | 09/11/2025 | $900,000 | $5,131,350 |
| P00027 | 09/22/2025 | $2,000,000 | $7,131,350 |
| P00028 | 09/25/2025 | $95,000 | $7,226,350 |
| P00029 | 03/26/2026 | $99,000 | $7,325,350 |
| P00030 | 03/31/2026 | $0 | $7,325,350 |
| P00031 | 04/30/2026 | $200,000 | $7,525,350 |
So the MEOR contract alone has obligated $7,525,350 to APL within our reporting window — assuming there are no additional 2025+ rows below P00024 on the page when you're reading this. New transactions are added as CBP commits more funds, and USAspending lags actual contracting activity by 30 to 90 days.
A few things to notice in this data:
- The September 2025 cluster (P00025 through P00028). Four transactions totaling $6.7M, all between September 10 and 25. This is the federal fiscal-year-end pattern: the federal fiscal year ends September 30, so agencies obligate remaining-year funds before they expire. You'll see this pattern on most long-running contracts. It's normal and expected.
- The $0 administrative action (P00030). Counts toward nothing, but appears in the table because it was a formal modification.
- Most rows are "Funding Only Action" (Type C). That means CBP added money to the contract to keep work going under the existing scope, rather than expanding what APL is doing. This is typical for engineering-support contracts that operate as ongoing relationships.
Step 5: Repeat across APL's other three CBP contracts
The MEOR contract gets us to about $7.5M. The remaining ~$13M of APL's $20.4M total comes from the three other active CBP contracts. Follow the same procedure on each:
- HSBP1014C00005 — awarded 2014, ceiling $65.1M
- 70B02C19C00000093 — awarded 2019, ceiling $52.8M
- 70B02C23C00000003 — awarded 2023, ceiling $25.5M
Open each, scroll to the transaction history, sum the Amount column for every row dated 2025-01-01 or later. Add the four contracts together. The combined total is $20,429,288.03 as of the most recent refresh — the figure published on IceTracking.org.
These four contracts have ceilings totaling $188.5M, of which only about 11% has been obligated within our window. That gap between ceiling and obligation is exactly why we report obligated amounts and not ceilings.
Step 6: How this maps to what we publish
When you open APL's row in the Corporate Network table, the figure displayed is the sum we just computed: $20.4M, combined across all four CBP contracts in our window. The row also shows the contractor's largest individual award (the MEOR contract), the dominant NAICS and PSC codes, and links back to the USAspending records so any reader can do exactly what you just did.
The number changes daily as new transactions are recorded by CBP and posted to USAspending. The site refreshes nightly; the timestamp on the table banner shows the most recent successful refresh.
A note on what's not in this picture
The transaction table shows obligations — money the government has formally committed. It does not show:
- What the money was actually spent on. Each transaction's description is usually generic ("ADD FUNDS," "INCREASE FUNDS"). The specific scope of work assigned in any given task order is often not public at this level of detail. A reporter who wants to know what APL did with, say, the $3.7M obligated on September 10, 2025, would likely need to file a Freedom of Information Act request with CBP.
- Outlays — money that has actually been paid out. Obligations are commitments; outlays are checks cashed. There can be a multi-month gap between the two. USAspending publishes both in some places, but for prime contract obligations, the "Amount" column reflects commitments at the moment of the transaction.
- Subcontracts. If APL hired another firm to do part of the work under any of these contracts, that subcontract is not shown here and is not in our database. First-tier subcontracts are sometimes reported elsewhere on USAspending under "Sub-Awards," but not always — and we don't aggregate those into prime totals.
If you reach a different number
The most common reasons your sum won't match ours:
- You're including the lifetime "Total Obligated Amount" from the page header instead of summing the in-window transactions. This will give you a much larger number — for MEOR specifically, the lifetime total includes all 2023 and 2024 obligations.
- You're summing "Award Amount" or "Base and All Options Value." Those are ceiling figures, not obligated amounts. They will be much larger than what's actually been spent.
- You're only looking at one of the four contracts. APL's relationship with CBP runs across all four; missing any one of them will undershoot the total.
- USAspending has updated since our last refresh. The site lags CBP by 30 to 90 days, and new transactions appear as they're posted. A figure you compute today against live data may be slightly higher than what we last published.
If after working through all four contracts your sum still doesn't reconcile with what we publish, write to us with the contract IDs and the math you got, and we'll either update the figure or explain the difference.
