How to Prepare Your Monthly GSA Sales Reporting (TDR) Upload File
ExcelGurus is not affiliated with, endorsed by, or acting for the U.S. General Services Administration (GSA). This guide describes GSA’s published instructions as of MAS TDR User Guide v2.0 (September 2026), as read on October 22, 2026; GSA updates them, so check its current pages before you report. It is not legal or tax advice.
To prepare the monthly TDR upload file for a MAS services contract, download the current Excel template from the FAS Sales Reporting Portal (SRP), fill its MAS Data sheet with a row for each labor category on each order, and check every row against SRP’s rules before you upload it: prices include the Industrial Funding Fee (IFF), each total equals the quantity times the unit price to the cent, and units, customer codes and SINs come from GSA’s own lists. Upload it in SRP under Report Data within 30 calendar days after the month ends. The IFF is paid in SRP quarterly, or monthly if you choose. A month with no sales is reported by Form Entry, not by file. EG TDR Reporter, an Excel workbook for Windows, prepares and checks the file from your invoice export; the steps below work by hand or with it.

One month’s report in six steps, from importing your sales to marking the file uploaded. Screen from EG TDR Reporter, the Excel workbook that prepares and checks this file, with sample data.
Before your first month: what you need on hand
You will type these once and use them every month.
- Your MAS contract number, as GSA assigned it, without dashes. It begins with 47 or GS and has at most 16 characters.
- The SINs awarded on the contract. GSA eLibrary lists them under your contract number.
- Your GSA price list: each service’s title exactly as it is on the price list, its unit, its UCID if your catalog has them (contracts on the FCP Services Plus File do), and the price in effect, which includes the IFF.
- Your task orders: the agency’s order number (PIID) for each, the SIN it was ordered under, whether the customer is federal or an eligible non-federal entity, and for a federal customer the two-character Treasury Agency Code of the agency that funded it. For a fixed price order, also its award date and its total contract value.
- Your reporting basis: invoice date or payment date. GSA lets you choose either, and asks you to use the same one every month.
- Access to SRP, to upload the file (the template itself is linked on SRP’s home page as FAS SRP Excel Template). You register with the email address your contract file lists, as a point of contact on the contract, and log in at least every 90 days to keep access. EG TDR Reporter never asks for your SRP password.
The columns, for a services row
The template’s MAS Data sheet has 18 columns, A to R. The template marks ten of them with an asterisk; treat every other field as required too wherever it applies to the row, and leave blank only what the table says is blank. Type numbers as plain figures, without a $ sign or commas. For services:
| Column | What goes in it |
|---|---|
| A Contract/BPA Number* | Your MAS contract number, without dashes. |
| B Order Number/PIID* | The agency’s order number (PIID), as the order shows it. Never your MAS contract number. If no PIID was issued, GSA allows the invoice number as a last resort. |
| C Description of Deliverable* | For an hourly labor category without a UCID, the title exactly as on your GSA price list. With a valid UCID in column Q, still enter the title, but it need not match character for character. For a labor category under the Service Contract Labor Standards (SCLS), the User Guide’s format, punctuation included: LCN:<title>, WD:<wage determination number>, REV:<revision>, from the wage determination that applies to the task order. For a fixed price order, the description on your invoice. At most 1,000 characters. |
| D Manufacturer Name, E Manufacturer Part Number, H Universal Product Code | Blank on services rows. |
| F Unit Measure* | An approved code from SRP’s unit list (Table 1), exactly as listed. Standard hours on an hourly labor category are HR, and non-standard hours, overtime for example, are OT. Avoid EA on hourly labor: the User Guide says it may cause a rejection. A fixed price line takes the unit on the invoice, or 1I when the invoice gives none. Returns are RTN; volume and prompt payment discounts are VD and PPD. |
| G Quantity of Item Sold* | Hours as invoiced, or the quantity on a fixed price invoice. Negative on returns and discounts. SRP keeps two decimals. |
| I SIN Number* | The SIN the task order was placed under, awarded on your contract. For an order under several SINs, the SIN with 51% or more of the order’s value. |
| J Price Paid per Unit (US$)* | As invoiced, IFF included, in two decimals: SRP rounds a price to two decimals when it processes the file. Positive on returns and discounts. |
| K Total Price (US$)* | The quantity times the unit price, rounded to the cent. SRP checks it, and rejects the file when it is wrong. |
| L Non-Federal Entity* | Exactly SCP, SDP, OTH or N/A. A federal customer is N/A. |
| M Federal Customer | When L is N/A, the funding agency’s two-character Treasury Agency Code from SRP’s Table 3. When L is SCP, SDP or OTH, NA (no slash): that is what User Guide v2.0 says, and its version history notes that the earlier guide said to leave the field blank. GSA’s Help with TDR page still says to leave it blank. EG TDR Reporter writes NA. |
| N Order Date*, O Ship Date, P Zip Code Shipped To | Blank on services rows. SRP’s upload instructions say not to enter anything in them when reporting services; the template stars Order Date because products need it. |
| Q UCID | Exactly as on your FCP Services Plus File when the labor category or service has one. Blank when it has none, on a fixed price solution put together for one order, and on discount rows. |
| R Cloud Service Type | Only on the cloud SIN 518210C (SRP’s instructions include SINs that begin with it, such as 518210CSTLOC): IaaS, PaaS, SaaS or LCAT, and a labor category is LCAT. Blank on every other SIN. The User Guide asks for the type in this column; SRP’s upload instructions also still ask for the designation in the Description. |
A row for each labor category on each order. GSA asks for each labor category on its own row (User Guide Table 5.5). EG TDR Reporter keeps one row per labor category, per order, per invoice, and puts two lines of the same labor category, order, invoice and price into one row only when the merged row still totals exactly.
What SRP rejects
GSA’s pages name these as reasons SRP rejects a file:
- A total off by a cent. Column K must be exactly G times J, rounded to the cent. One way it happens: a rate or quantity carried to more than two decimals in your books and rounded to two in the file.
- An earlier month not reported. SRP takes months in order. If an earlier month of a contract in the file has not been reported, the upload is rejected. Report the missing month first, by file or, for zero sales, by Form Entry.
- A required field left blank. The User Guide’s tables say a blank contract number, order number, description, unit, quantity or price results in a rejection. The SIN and the non-federal entity are required columns too, and a task order set up in a hurry is where they go missing.
- EA on an hourly labor category, which the User Guide says may cause a rejection.
When SRP rejects an upload, it says so in the upload’s status and by email, and its File Upload page gives the reason. Fix the file and upload it again.
Also from GSA’s instructions
- Units come from SRP’s list, as approved abbreviations only.
- Two codes are easy to swap: N/A, with the slash, is the federal value in column L; NA, without it, is what User Guide v2.0 puts in column M for a non-federal customer.
- The signs: a return or discount row has a negative quantity, a positive unit price and a negative total.
- The template as GSA issues it. Download the current one each time you report, and do not add tabs, formulas or macros, or change its formatting, its column names or its column order.
Some rows can pass SRP and still draw a compliance flag from GSA later: a description that is not the exact title on your GSA price list, on a row without a UCID, or a SIN that is not awarded on your contract. They are worth a look before every upload. EG TDR Reporter also holds back the file while a row billed above the price on your GSA price list waits for you to check it.
One more upload sits outside the file. For a fixed price service order over $1 million in total contract value awarded after July 1, 2026, User Guide Table 5.4 asks for the government’s PWS, SOO or SOW, as the government wrote it, to be uploaded once in SRP; GSA’s Help with TDR page words it as orders made after July 1, 2026. EG TDR Reporter’s reminder counts from July 1 itself, so an order awarded that day is not missed.
Each month, step by step in EG TDR Reporter
The tool does the filling and the checking; you do the upload and the payment. Each step below is a button on its Month page. The steps show the full product: what a license gives every month, and what each GSA contract gets for one free month without one. The first time you run the checks on a month with sales, the workbook asks “Start your free month with September 2026?” Starting it sends the contract number and the month to excel-gurus.com, which keeps one free month per contract, so a new copy of the workbook does not start another; Not now leaves the month on the count, and the Start free month button on Review starts it later. The free month shows every finding and makes the GSA upload file, for 60 days from the day you start it. Every other month, and the free month after its 60 days, shows only the number of findings, for example “2 blocks and 1 warning on 3 of 15 rows”, with no rows and no file, until you buy a license. A license that ends falls back to the same count; your data and past files stay.
Once: Setup
On the Setup page, type or paste what you gathered above: the company and its reporting basis, the contract with its first TDR month, the awarded SINs, the price list (or import it from a file, GSA’s FCP Services Plus File included) and the task orders. For a federal customer, choose the funding agency by name from the Federal customer list (A to Z, or by code); the GSA file gets only its two-character code. For a fixed price order, add its Awarded date and its Order value (ceiling), so Review can remind you about supporting documents. Each entry is checked as you type it, and a refused entry says why.
Each month
- Home shows the next report due, its contract, its due date and the days left. Click Start report. The Month page opens with the month as its title, for example “September 2026 sales”.
- Import sales. Click Import file, then open the month’s invoice export from your accounting system (CSV or Excel), or paste the rows. Title rows, subtotals and totals are skipped, and the rows read are compared with the file’s own total.
- Map columns. The first time, check that each column was found: invoice number, date, order, labor category, hours, rate and amount. The layout is saved under a name, so next month this step is done for you.
- Match labor categories. For each name your books use that is not on your GSA price list, say which GSA labor category it is (“Sr. Systems Engineer” is Senior Systems Engineer). The answer is remembered. Choose Leave out for lines that are not on your price list, travel for example, and add an unknown order number as a new task order with one click.
- Run checks. Open Review lists every finding, grouped by where you deal with it: FIX ON SETUP (a task order or price list problem, with the number of rows it affects; Fix opens Setup at the cell), CONFIRM PRICES (rows billed above your GSA price: check the invoice, then tick I’ve checked this on the row, or correct the invoice or the price list), FIX IN YOUR EXPORT, MONTH (the month as a whole) and OTHER FINDINGS, with the rows themselves under ROWS. Each finding names the row, the field and where the rule comes from. A Block stops the file; a Warning does not, except a price above your GSA price, which waits for its tick.
- Make GSA upload file. First download this month’s template from SRP. Then choose it, and the folder where you keep your GSA files. The tool writes the rows into a new copy and saves it as, for example,
TDR 47QTCA26D00AB 2026-09 generated 2026-10-22.xlsx. The template you downloaded is not changed. The message tells you the reporting period to choose in SRP (the file does not carry it), the rows, the total, an IFF estimate, and the route: Report Data for a first report, Adjust Data for a correction. - Upload it in SRP yourself. In SRP, choose Report Data, File Upload, pick the reporting period, browse to the file and choose Upload, then tick the box that confirms your data and choose Submit.
- Mark uploaded. After SRP shows the upload as Submitted (Resubmitted, for a correction), click Mark uploaded on the Month page. Home moves on to the next month, and the Archive keeps the file with its rows, total, IFF estimate and status.
A month with no sales: click No sales in (the month’s name) on the Month page. The tool makes no file; report the month by Form Entry in SRP, which is the only way SRP takes a month of zero sales.

Review before the file exists: each finding names the row, the field and where the rule comes from, and Fix opens Setup at the cell. Screen from EG TDR Reporter, the Excel workbook that prepares and checks this file, with sample data.
Corrections: the whole month again
A month already reported is changed through Adjust Data, not Report Data, and a file uploaded there replaces everything already reported for that month. So a correction is not one changed row: it is a complete new file for the month, with every row, uploaded through Adjust Data, File Upload with a short justification. In EG TDR Reporter, fix the export or Setup, run the checks again and make the file again; the message names Adjust Data when the month is already marked uploaded.
Credits and returns
User Guide Appendix 3 gives the form of a return: a row that repeats the details of the sale, with unit RTN, a negative quantity, the positive unit price and a negative total. Applied to a credit of 2 hours at $150.00, that form gives RTN, -2, 150.00 and -300.00; the User Guide itself speaks only of returns. GSA’s Help with TDR page points to the template’s instructions for credits. EG TDR Reporter writes the credit memos and refunds it reads from your export in the Appendix 3 form; if the month has no sale on that order, Review shows a Warning, “Return without a sale this month”; the Warning’s own advice is that nothing more is needed in the workbook when the sale was reported in an earlier month. GSA’s pages do not all say the same about credits on services; Credits, returns and discounts sets out where they differ.
The IFF
The price paid in column J already includes the IFF: GSA asks for each month’s report to carry the total price with the IFF in it. The fee itself is calculated by SRP from what you report, and SRP shows what is due after you submit. It is remitted quarterly, within 30 days after the quarter ends, unless you choose to pay monthly when you report, and it is paid electronically through pay.gov. The MAS IFF rate is currently 0.75% unless the solicitation says otherwise. EG TDR Reporter shows an estimate, 0.75% of the month’s net total, so you know roughly what to expect; SRP’s figure is the one you pay. The IFF guide covers the fee in full.
Should you file by Form Entry instead?
SRP’s own guide suggests that contractors with fewer than 50 line items per contract may prefer Form Entry, typing the rows into SRP directly, and Form Entry is the only way to report a month of zero sales. If you have a handful of rows each month and they rarely change, Form Entry may be all you need. A file makes sense when the rows come from an accounting export, when several labor categories and orders repeat every month, or when you want every row checked before anything reaches SRP. SRP’s reporting options compares the ways to report.
Common questions
When is the monthly TDR report due?
Within 30 calendar days after the end of the month: October sales are due November 30. Every month counts, including a month with no sales, which is reported by Form Entry. GSA’s grace period (for contracts whose TDR effective date is on or after October 1, 2025) and its trial period (for six newly required data fields on every contract, Federal Customer, UCID and Cloud Service Type among them) both run from July 1 to December 31, 2026. In them GSA does not take enforcement action for good-faith errors in the data fields, but neither excuses a missing report or a late IFF payment. After December 31, 2026, your contracting officer can take enforcement action.
Can I use last month’s template again?
GSA asks you to download the most current template from SRP each time you report, and says more fields (order type, worksite and order discount) are expected later. Fill it without adding tabs, formulas or macros, and without changing its formatting, column names or column order.
I reported the wrong figures last month. What now?
Prepare a complete file for that month, with every row and not only the corrected ones, and upload it through Adjust Data, File Upload with a justification. It replaces everything reported for that month.
Check every row before it reaches SRP
EG TDR Reporter prepares and checks this file from your accounting export. It matches the rows to your GSA price list and task orders, checks every row against GSA’s published reporting rules before a file exists, and fills the template you download from SRP. You upload the file in SRP and pay the IFF yourself. Each GSA contract gets one free month, the first month you check, with every finding and the GSA upload file.
See EG TDR ReporterOne free month per GSA contract, no card needed. Excel for Windows.
Sources
GSA’s own pages, as read on October 22, 2026. They change; the current versions are the ones that count.
- GSA, Help with Transactional Data Reporting (www.gsa.gov), last updated Oct 8, 2026
- GSA, Multiple Award Schedule TDR User Guide, Version 2.0 (PDF) (www.gsa.gov), updated September 2026: sections 2.2 and 2.3, Tables 4.1, 5.4, 5.5 and 5.7, Appendix 3 and the version history
- FAS Sales Reporting Portal (SRP), where the Excel template is linked (srp.fas.gsa.gov), template version 4.2
- SRP user guide, MAS File Upload Instructions (srp.fas.gsa.gov)
- SRP user guide, Report Data by File Upload (srp.fas.gsa.gov)
- SRP user guide, Adjust Data by File Upload (srp.fas.gsa.gov)
- SRP user guide, Data Reporting Options (srp.fas.gsa.gov)
- SRP user guide, MAS Tables (units of measure, non-federal entity and federal customer codes) (srp.fas.gsa.gov)
- SRP FAQs (srp.fas.gsa.gov), questions 7, 8, 15, 16 and 21
- SRP user guide, Report Data by Form Entry (srp.fas.gsa.gov)
- GSAR 552.238-80, Industrial Funding Fee and Sales Reporting, with its Alternate I (www.acquisition.gov)
- GSA Vendor Support Center, MAS and VA FSS Industrial Funding Fee (IFF) Rates (vsc.gsa.gov)
More in this series: GSA TDR Due Dates, Zero-Sales Months and the 2026 Grace and Trial Periods · Why SRP Rejects a TDR Upload File, and How to Fix Each Cause · Correcting a GSA TDR Report: Adjust Data Replaces the Whole Month · All GSA Sales Reporting guides
★★★★★
“Most likely one of the best freelancers I’ve had the opportunity of working with. I would highly recommend David for any complex VBA coding. We’ll be working with him again in the future.”
VBA Development Client · via Upwork, 2020
5.0★ across 230+ client reviews · 100% Job Success on Upwork · Building Excel tools since 2010 · Read the reviews →