> ## Documentation Index
> Fetch the complete documentation index at: https://zenofirm.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Your first questions

> Sync a local copy of one client's books, ask it a question, then ask the whole practice at once

Posting has [its own walkthrough](/docs/quickbooks-desktop/first-batch). This one is the read side: copy one client's books into a local database, ask it something QuickBooks has no report for, then ask every client on the workstation the same question — with QuickBooks closed.

Claude is the client in the examples; ChatGPT and Codex drive the [same tools](/docs/quickbooks-desktop/clients) the same way.

## Syncing a copy

The [company setup walkthrough](/docs/quickbooks-desktop/setup-companies) builds an initial copy and proves it with a harmless question. To add another date range later, ask:

*"Sync the mirror for 2025 and 2026."*

The assistant calls `qb_sync_mirror`, which copies the file's lists and that range of transactions into a local database — one file per company, under `%LOCALAPPDATA%\Zeno\qb-mcp\mirror\`. Lists come over fresh on every sync; transactions are added to what's already there, so syncing another year later leaves you with both. A registered company with **always allow** permission can sync while its QuickBooks window is closed.

A long range takes minutes, because reading transactions out of QuickBooks is slow. Start with the years you'll actually ask about.

## Asking

Once the copy exists, ask in plain language:

*"Which five vendors did we spend the most with last quarter, and how does that compare to the quarter before?"*

*"Show me every expense account with no activity this year."*

*"What's the average days-to-pay on our bills, by vendor?"*

Claude writes SQL against the copy and reads the answer back. You don't need to see the query, though you can ask for it. Answers are capped at 500 rows and flagged when truncated, and amounts are stored as integer cents so totals come out exact — [asking questions](/docs/quickbooks-desktop/questions) has the detail.

The copy is opened read-only. A query can't write to it, can't reach the company file, and can't reach the run journal, so the worst a wrong query does is return the wrong rows.

If you don't know what to ask, say *"Suggest useful next steps for this company."* `qb_help` uses setup progress, mirror freshness, open plans, rules, knowledge, and playbooks to suggest specific work instead of returning a generic feature list.

## When a report is the answer

Anything a client would recognise as a statement — a P\&L, a balance sheet, a trial balance, an aging — shouldn't be rebuilt from transaction lines. Ask for [the report](/docs/quickbooks-desktop/questions#running-a-report) instead: `qb_report` runs QuickBooks' own report engine against the open file, so the numbers match the client's screen.

The copy is for what no report covers: joins, rankings, comparisons across periods, and everything below.

## The whole practice at once

Everything that touches a company file is bound by QuickBooks' [one-file-at-a-time rule](/docs/quickbooks-desktop/companies#one-file-at-a-time). The copies aren't. Once each client has been synced, a question can span all of them while QuickBooks sits closed.

Get there once: [register](/docs/quickbooks-desktop/companies) each client, open each file, sync it, move to the next. Then:

*"Across every client on this machine, what did we spend with Atlas Insurance in 2026?"*

*"Which clients have bills more than 60 days old, and how much?"*

One query answers it. Every synced company is attached at once and read through views named `all_transactions`, `all_vendors`, and so on, each row carrying the company it came from — so a practice-wide total is one statement, not an afternoon of opening files.

Three boundaries worth knowing:

* Asking across companies is included with [Practice and Enterprise](/docs/quickbooks-desktop/plans). On Core, every registered company is still fully queryable one at a time — pass `company` and run the same question per client; what Core leaves out is the aggregation, not the data. An unlicensed evaluation has it too.
* A single query reaches eleven clients at most, and refuses past that rather than answering about a subset. A bigger practice splits the question in two.
* A client that's never been synced is skipped, and the answer names it, so you know who it doesn't cover.

## Staleness

The copy answers as of its last sync — anything posted since is missing, including batches you posted five minutes ago.

*"How fresh is the mirror?"*

That reports each table, when it was filled, and the date range it covers. Sync again before relying on an answer that has to include this morning's work, and check any figure you'll act on — a payment run, a client report — against QuickBooks itself. See [checking how stale it is](/docs/quickbooks-desktop/questions#checking-how-stale-it-is).
