GSA TDR Sales Report — Controller Guide
A GSA schedule holder tells GSA what it sold under each schedule every period, in the FAS Sales Reporting Portal, and pays the Industrial Funding Fee on what it reported. That is Transactional Data Reporting (TDR). This guide explains the rules the report follows, then walks the exact clicks to build a period's filing, clear what would make GSA reject it, download the upload file, and record that it was filed.
For: controllers and contract administrators · Time: ~15 minutes · You'll need: the Accounting module, and read-write access to Reports to change a schedule's settings or record a filing.
Accounting → Reports, under the Compliance category, on the GSA TDR Sales Report card (/accounting/reports/gsa-tdr). Pick a schedule and a period; the URL carries both (?schedule=…&period=…), so a link to one filing can be shared.
Part 1 — The ideas you need first (read once)
The schedule is the unit
Each GSA schedule the company holds reports on its own. It has its own reporting cadence (monthly under TDR; some schedules reported quarterly before their TDR modification), its own sales basis (invoice date or payment date, never switched), its own due dates (30 calendar days after each period ends) and its own filing history. A company with three schedules files three reports a month. The page is therefore organized by schedule first and period second.
A schedule appears on this page once its Industrial Funding Fee mapping is recorded for the company. Its task orders are found by the schedule number on each contract record. No screen records a new schedule's mapping yet — the schedule number, its fee rate and the accounts the fee posts to are recorded by your Arcvue implementation contact. Once a schedule is listed, Reporting settings on this page changes its cadence and sales basis.
The fee is already on your books
You do not wait for the filing to see the fee. Arcvue accrues the Industrial Funding Fee every month as it recognizes revenue under the schedule's task orders, at the schedule's recorded rate, posting it to the fee account recorded with the schedule and carrying what is owed to GSA as a payable. It is a cost of doing business on the schedule, presented against revenue — never a cost of an individual contract, and never inside a bid's margin.
This report computes the fee on what you report for the period — the figure you pay GSA. The accrual follows revenue as it is recognized and the report follows the schedule's sales basis, so a month's accrual and a month's report can differ in timing; neither is a correction of the other.
What a line is
GSA wants one row per order and deliverable:
- Hourly labor (GSA's Table 5.5): the labor category name exactly as it appears on the GSA pricelist, the hours as invoiced, the hourly rate, under unit HR. Never EA for hours; GSA rejects it.
- Fixed-price services established at the order level (Table 5.4): as invoiced — the description of the service, quantity 1, unit 1I, which is GSA's code for a fixed price with no unit on the invoice.
- A credit or return (Appendix 6.3): the original line copied under unit RTN with a negative quantity, so no fee is paid on it.
- A labor category subject to the Service Contract Labor Standards: the category plus its wage determination and revision in GSA's format,
LCN:<category>, WD:<number>, REV:<revision>.
Two invoices on one order in one period carrying the same category at the same rate report as one line with their hours added, which is how the schedule has always been filed.
Never a person's name. Arcvue's own invoice lines name the employee who worked the hours. The filing names the labor category, resolved from the contract's rate card by CLIN. If the rate card cannot name it, the line says so rather than guessing.
Invoice basis and payment basis
On the invoice basis, an invoice is reported in the period its billing period ends, once it has been issued (approved, submitted or paid). A draft is counted and warned about, never reported. On the payment basis, a receipt is reported in the period it was applied to the invoice, at the amount received. GSA allows either; the one rule is that a schedule never switches.
Imported invoices
An invoice that arrived from the prior system carries a total and no lines. It cannot report by labor category, so it reports the way GSA allows for a fixed-price service at the order level: one 1I line at the invoice total under the order's name, marked imported on the page and in the file. Invoices Arcvue issues itself carry their lines.
Zero sales is a filing
A period with no sales is still owed. GSA takes zero sales through the portal's form, not a file upload, so the page tells you to report zero in the portal and then record it here.
Part 2 — The page
Schedules. The row of cards is labeled GSA schedules for a screen reader. One card per schedule: the schedule number, the company it belongs to, its cadence and basis, and where it stands — the newest period that has ended and is not filed, with its due date, tagged Due or Overdue; once every ended period is filed, the newest of them, tagged Filed. A schedule with no ended period yet reads No sales recorded yet. Click a card to work on that schedule. The page opens on the schedule that most needs attention.
Reporting period. The menu at the top right (its list is labeled Reporting periods) lists every period the schedule has reported or owes since Arcvue began tracking it -- the later of its first reporting setting and its first sale; a note under the menu names the date, and a filing recorded for an earlier period still shows -- newest first, each with its due date and status — months for a monthly schedule, quarters for the months it reported quarterly. The running period is listed too, tagged Open. The menu opens on the newest period that has ended and is not yet filed, or, once every ended period is filed, on the newest filed one. It opens on the running period only for a schedule with no ended period yet.
Reporting settings. A panel to set Reporting cadence (Monthly, Quarterly or Annual), Sales basis (Invoice (billing period) or Payment received), and Effective from, with a Reason (optional). Close puts the panel away without saving. A change to monthly or quarterly is dated at a calendar-quarter start (January 1, April 1, July 1 or October 1), and a change to annual at January 1, so no month falls between the old rule and the new; the panel refuses any other date and says why. Earlier periods keep reporting the way they were due then. History under the form lists every setting the schedule has carried. Save reporting settings applies the change.
Retire this schedule. Under the settings, record the day a schedule stopped reporting — GSA retired it, or its orders moved to another vehicle by modification (block 1 of the SF30 names the new schedule). Set Retired on and click Retire schedule. Periods starting after that day are no longer owed; the period it falls in, and every one before it, still are until filed, and then the schedule leaves the page. Its card reads Retired with the date meanwhile. If an order itself moved, open it under Orders under this schedule, click Order fields, enter the new Schedule number with the modification as the Reason for the move, and Move and save to contract; the change is logged on the contract and the order's sales report under the new schedule from then on.
The four figures. Reported sales for the period on the schedule's basis. IFF on this report at the schedule's recorded fee rate. Due to GSA, with the filing status. Tie-out: whether the SRP lines add up to the invoice register; a mismatch holds the file back.
Download SRP upload file. GSA's own FAS Sales Report template (version 4.2) with this period's lines written onto its MAS Data tab and nothing else changed: no tabs added, no columns renamed or reordered, no formulas. Upload it in the portal as is. The button is disabled, and says why, while a blocking condition stands or the period has no sales.
Download support workbook. The controller's file: the invoice register the filing was built from, grouped by customer with subtotals and the report total; the SRP lines exactly as uploaded with their total; and every condition. Always available.
Mark filed with GSA. A panel to record the filing: Filed on, the SRP confirmation the portal issued, and Notes (optional); Close puts it away without recording anything. Mark filed with GSA inside the panel saves it; the lines as sent are kept with the record and the period reads Filed everywhere. A second filing for the same period is recorded with Record a refiling and keeps the first. Disabled while a blocking condition stands or the period has not ended.
Who can file. Recording a filing and changing a schedule's reporting settings take write access to GSA TDR under Acct: Reports in Admin > Permissions. Administrators, controllers and contracts managers hold it by default. Anyone else who can open the report reads it, downloads both files, and is told where the grant lives in place of those two controls.
Conditions. Everything the report found, worst first.
- Blocks the upload — GSA would reject the file: an order with no SIN, an order with no order number, SRP lines that do not add up to the register.
- Check before filing — imported invoices reported as one line, drafts in the period, a labor category the rate card could not resolve, a Service Contract Labor Standards order with no wage determination, open books, a commercial customer.
- For your information — the Federal Customer code (GSA's trial period runs through December 31, 2026; after that a blank blocks), a partial payment, a receipt recorded only by paid date, a zero-sales period, a schedule with no fee rate recorded.
Where the fix is a field on the order, Enter the order's GSA fields opens it in place: SIN and Treasury Agency Code, saved to the contract with a reason by Save to contract; Open contract goes to the contract itself. The same form opens from Orders under this schedule for any order, condition or not.
SRP lines. Exactly what the upload file carries, grouped by customer with subtotals: Order / PIID, Deliverable, Unit, Quantity, Price per unit, Total, SIN, Federal customer, Source (the invoices the line came from). An imported tag marks a line built from a header-only invoice; category unresolved marks a line the rate card could not name.
Invoice register. Expand it to see the invoices (or, on the payment basis, the receipts) behind the file: Order / PIID, Invoice, Type, Status, Period end, Received or Paid, Amount, Note, with customer subtotals, the Report total and the tie-out verdict.
Part 3 — Common tasks
File a month
- Open Accounting → Reports → Compliance → GSA TDR Sales Report and click the schedule's card.
- Confirm the period menu shows the month GSA is waiting on (it opens there by default).
- Clear every Blocks the upload condition. For a missing SIN, click Enter the order's GSA fields, type the SIN from the RFQ or task order, and Save to contract.
- Click Download SRP upload file and upload it in the FAS Sales Reporting Portal.
- Click Mark filed with GSA, enter the SRP confirmation, and Mark filed with GSA again inside the panel. The period reads Filed.
Record that a schedule moved from quarterly to monthly
- Click Reporting settings.
- Set Reporting cadence to Monthly, leave Sales basis as the schedule has always reported, and set Effective from to the quarter start on or before GSA's modification date.
- Add the modification number as the Reason and click Save reporting settings.
- Open the period menu: periods before the date are still quarters; periods after it are months.
A period with no sales
- Report zero sales for the schedule and period in the portal's form.
- Click Mark filed with GSA, enter the confirmation, and save. The period reads Filed.
A schedule is retired or an order moves to another schedule
- If an order moved, open it under Orders under this schedule, click Order fields, enter the new Schedule number and the modification number as the Reason for the move, then Move and save to contract. Its sales then report under the new schedule.
- On the old schedule, click Reporting settings, set Retired on to the last day it reported, click Retire schedule.
- File anything still owed before that day; the schedule then leaves the page.
A credit memo in the period
Nothing to do. The credit reports as a return line (unit RTN, negative quantity) and the register shows it as credit / return.
Part 4 — If something looks wrong
- A line names a CLIN instead of a labor category. The contract's rate card has no single active category for that CLIN in the period. Fix the rate card; the description follows on the next refresh.
- An invoice is missing from the register. On the invoice basis an invoice reports in the period its billing period ends, once issued; a draft never reports. On the payment basis a receipt reports in the period it was applied.
- The schedule is not listed. Its Industrial Funding Fee mapping has not been recorded for the company. That mapping is what makes a schedule reportable here, and there is no screen for it yet: ask your Arcvue implementation contact to record it, with the schedule number and its fee rate.
- The period is cut the wrong way — a quarter where a month was expected, or the reverse. The schedule's reporting settings or their effective date are wrong; correct them in Reporting settings. The page also says which period the schedule's own calendar expected.
- The SRP lines do not tie to the register. The file is held back automatically. This should not happen; if it does, the support workbook's Conditions tab names the difference.