How to Import a QuickBooks Online Trial Balance into UltraTax CS for an 1120-S Return

If your S-corp clients keep their books in QuickBooks Online and you file their returns in Thomson Reuters UltraTax CS, the start of every 1120-S engagement looks the same: open the trial balance in QBO, open UltraTax CS, and start moving numbers across by hand. There's no button that connects the two, and an S-corporation return adds a layer of coding decisions that a straightforward C-corp or Schedule C doesn't.

This guide walks the real QuickBooks-Online-to-UltraTax path for an 1120-S — export, reshape, code, import — and spends most of its time on the parts that quietly cost you: the mechanical limits UltraTax enforces on the import file, and the S-corp-specific coding traps that put numbers on the wrong line of the return.

Why there's no native QBO-to-UltraTax import

This isn't a setting you can switch on. UltraTax CS is built to pull trial balance data directly from the rest of the Thomson Reuters CS Professional Suite — Accounting CS, Trial Balance CS, and Workpapers CS. When the ledger lives in one of those, balances flow in by tax code automatically. QuickBooks Online is an Intuit product with no such hook, so UltraTax treats a QBO trial balance the way it treats any outside data: something you import from a spreadsheet and code by hand.

The structural reasons for that gap — two competitors with no incentive to connect — are covered in our QuickBooks Online to UltraTax CS gap piece. What matters here is the practical consequence for an 1120-S: you own the translation from QBO's chart of accounts to UltraTax's tax codes, and on an S-corp that translation is where returns go wrong.

Why an 1120-S is different from a C-corp or a Schedule C

The mechanics of the import file are the same across entity types. The coding is not. Three things make an S-corp trial balance its own animal:

Separately-stated items don't belong in ordinary income. This is the single most common S-corp coding mistake. On Form 1120-S, ordinary business income (page 1) is only part of the story. Rental real estate income, portfolio interest and dividends, section 1231 gains, charitable contributions, and section 179 expense are separately stated — they bypass page 1, flow to Schedule K, and split out to each shareholder on their Schedule K-1. If you code your client's "Interest Income" or "Rental Income" account to an ordinary-income tax code, it lands in the wrong place and every K-1 is off. Each of these accounts needs its own tax code, not the catch-all.

Distributions, AAA, and Schedule M-2. S-corp shareholder distributions aren't an expense and don't touch ordinary income — they reduce equity and drive Schedule M-2. An S-corporation with accumulated earnings and profits must maintain the accumulated adjustments account (AAA), and the Form 1120-S instructions recommend every S-corp maintain it. In UltraTax CS, Schedule K income and Schedule M-1 tax-exempt interest transfer automatically to Other additions on Schedule M-2, so how you code the equity and distribution accounts feeds directly into whether M-2 and the AAA reconcile.

More-than-2% shareholder health insurance. Health insurance premiums paid for a greater-than-2% shareholder are deductible by the corporation but must also be included in that shareholder's W-2 wages. In the trial balance this usually surfaces as its own expense account, and it can't just be swept into a generic "Insurance" or "Employee benefits" line without breaking the wage reconciliation. It's a small account that causes outsized cleanup if it's coded like ordinary insurance.

None of this is exotic — it's the everyday reality of S-corp prep. But it means an 1120-S trial balance can't be coded on autopilot, and it can't reuse a C-corp's grouping.

The manual workflow, step by step

1. Export the trial balance from QuickBooks Online

In QBO, go to Reports → Trial Balance, set the report period to the client's fiscal year end, and set the accounting method (accrual or cash) to match how you're filing. Export to Excel. Before you touch anything else, delete the Total row at the bottom — UltraTax will try to read a "Total" line as an account with no tax code, and that's the first thing that breaks an otherwise clean import.

2. Reshape the export to UltraTax's expected columns

UltraTax CS reads a trial balance import as a set of columns it can map to its own fields: account number, description, unit, tax code, and amount. The QBO export doesn't arrive in that layout. You'll collapse separate debit and credit columns into a single signed amount, trim the account descriptions, add an account-number column if your QBO chart doesn't use numbers, and add the tax code column. This is also where two mechanical limits bite:

  • Account numbers are limited to 12 characters. If two accounts share a tax group and their numbers only differ past the 12th character, UltraTax treats them as duplicates and the duplicate won't import. QBO's auto-generated sub-account numbering is a common source of this.
  • Account balances are limited to 12 places. A balance longer than that won't import correctly.

3. Assign an 1120-S tax code to every account

This is the judgment step. Each account gets the UltraTax tax code that routes it to the right line of the 1120-S — ordinary income and deductions to page 1, separately-stated items to Schedule K, balance-sheet accounts to Schedule L, equity and distributions to M-2. Thomson Reuters publishes the full mapping in the Tax Code Diagrams guide and Tax Code Listing; the tax code you pick must match the client's entity type, because the Schedule M-1 and M-3 codes UltraTax offers are entity-specific — an 1120-S grouping is not interchangeable with an 1120.

For accounts that shouldn't reach the return at all, UltraTax reserves two exclusion codes: 88888 and 99999. Both keep the balance out of UltraTax; 88888 still prints the account on the Tax Code Groupings report, while 99999 suppresses it. Don't assign a tax code unit to either.

4. Import into UltraTax CS and reconcile

Import the file, then reconcile before you rely on it. Confirm that Schedule L ties to the trial balance, that Schedule M-2 and the AAA move the way you expect, and that separately-stated items actually landed on Schedule K rather than in ordinary income. This reconciliation is where coding mistakes surface — and where the time goes if the coding wasn't right the first time.

The gotchas that cost the most time

Pulling the mechanical traps into one place, because these are the ones that turn a clean import into an afternoon of cleanup:

  • 12-character account numbers. Duplicates under the same tax group silently drop. Watch QBO sub-accounts.
  • 12-place balance limit. Oversized balances import incorrectly.
  • Duplicate accounts under one tax code. Two accounts mapped identically under one tax group can collide and fail to import — give distinct accounts distinct handling.
  • Entity type must match. An 1120-S trial balance needs 1120-S tax codes; a grouping copied from a C-corp client won't map cleanly.
  • The Total row. Delete it before import, every time.

The point of all of it: this is skilled, error-prone work that has to be repeated for every S-corp client, every year, and none of it is the advisory work your firm actually bills for.

The faster path

AccountantSync was built to remove the mechanical middle of this workflow. It connects directly to QuickBooks Online — QBO, Xero, and spreadsheet/CSV upload are all supported — pulls the client's trial balance, and lets you map each account to the correct UltraTax tax code visually, in a browser, with nothing to install.

The first time you set up an S-corp client, you make the coding decisions this article describes: separately-stated items to Schedule K, distributions to M-2, the >2% shareholder health insurance account to its own line. AccountantSync remembers that mapping. Next year you pull the updated trial balance and the coding is already done — and because S-corp charts of accounts tend to rhyme, you can copy a proven mapping to a similar client instead of starting over. It generates a file UltraTax CS ingests directly, on UltraTax's spec, so the 12-character and 12-place limits are handled before they can bite.

The judgment stays yours. What goes away is the re-keying, the spreadsheet gymnastics, and the transposed digit that fails a reconciliation at 9pm in March.

If you want the deeper logic behind the coding step, see mapping QBO accounts to UltraTax tax codes; if your books are in Xero, the Xero-to-UltraTax workflow is the sibling to this one; and if you're weighing tools, our comparison of the trial-balance bridge options lays out the choices.

AccountantSync is free for your first 2 clients — no credit card — which is enough to run a real S-corp through the full workflow with your own data.

Start your free trial →