This page is the live reference for the 11 custom Excel functions XO Report adds to your workbook. Every function fetches data directly from Xero through the installed add-in. Formulas recalculate on input change, spill into multi-cell tables where the return value is tabular, and work identically on Excel for Windows, Mac, and the browser.
The table below is the quick-reference shape: function name, signature, what it returns, and one realistic example. For deeper coverage — parameter edge cases, full return-value structures, error semantics — every function has a dedicated page under /docs/functions. Both the on-page table and the downloadable PDF render from the same typed source-of-truth, so they never drift apart.
All 11 XO Report functions
| Function | Signature | Returns | Example |
|---|---|---|---|
| XO.ORG | XO.ORG() | Table of all connected organizations (Org ID + Org Name). | =XO.ORG() Spills a two-column table into the cell — reference A2 in other formulas to use the first org. |
| XO.COA | XO.COA(org_id, [include_archived]) | 12-column Chart of Accounts table for the organization (Active accounts by default). | =XO.COA(A2) Active accounts for the org in A2. Pass 1 as the second argument to include archived accounts. |
| XO.CONTACTS | XO.CONTACTS(org_id, [include_archived]) | 7-column contacts table (Active contacts by default). | =XO.CONTACTS(A2) Active customers and suppliers for the org in A2. Pass 1 to include archived contacts. |
| XO.TRACKING | XO.TRACKING(org_id, [include_archived]) | 6-column table of tracking categories and their options (Active by default). | =XO.TRACKING(A2) One row per option — useful for cross-checking your tracking taxonomy before filtering balances. |
| XO.TAXRATES | XO.TAXRATES(org_id, [include_deleted]) | 6-column tax-rate table (Active rates by default). | =XO.TAXRATES(A2) All Active tax rates with their type code and percentage. Pass 1 to include deleted rates. |
| XO.CURRENCIES | XO.CURRENCIES(org_id) | 4-column currency table for multi-currency orgs. | =XO.CURRENCIES(A2) Every currency code enabled on the org — useful for FX conversion lookups. |
| XO.BALANCE | XO.BALANCE(org_id, account, start_date, end_date, [category1], [option1], [category2], [option2]) | Single account balance. P&L accounts return activity between dates (≤ 365 days); Balance Sheet accounts return the balance as of end_date. | =XO.BALANCE(A2, "4000", C1, D1) Revenue for account 4000 in the period defined by cells C1 (start) and D1 (end). Signs are auto-adjusted so normal balances are positive. |
| XO.LACCOUNT | XO.LACCOUNT(org_id, account_code, property) | A single property of a GL account (0 = name, 1 = type, 2 = class, 3 = status, 4 = description, 5 = taxType). | =XO.LACCOUNT(A2, "4000", 0) Looks up the account name for code 4000. Pass 2 to get the account class (ASSET / LIABILITY / REVENUE / EXPENSE / EQUITY). |
| XO.LITEM | XO.LITEM(org_id, item_code, property) | A single property of an inventory item (0 = name, 1 = description, 2 = price, 3 = status). | =XO.LITEM(A2, "WIDGET-001", 0) Item-code match is case-insensitive. Pass 2 to get the sales unit price for variance reports. |
| XO.BUDGET | XO.BUDGET(org_id, budget_name, account, start_date, end_date) | Budget amount summed for the account over the date range. Returns 0 when no budget data exists for the period. | =XO.BUDGET(A2, "Overall Budget", "4000", C1, D1) Pair with =XO.BALANCE to build budget-vs-actual variance tables. Xero budgets cover P&L accounts only. |
| XO.PROFIT | XO.PROFIT(org_id, start_date, end_date, [category1], [option1], [category2], [option2]) | Net income from the P&L report for the date range. Positive = profit, negative = loss, zero = break-even. Date range ≤ 365 days. | =XO.PROFIT(A2, C1, D1) Single-cell bottom line — ideal for dashboard KPIs. Add tracking category + option pairs to slice by region or department. |
When to use the PDF vs the live docs
The PDF download is convenient when you want a printable reference, an attachment to share with a colleague, or a screenshot to pin into a workbook for the next analyst. It is a snapshot of the source-of-truth at the moment of regeneration.
The per-function docs under /docs/functions always reflect the latest deployment and cover edge cases the cheatsheet cannot fit — for example, how XO.BALANCEauto-detects P&L vs Balance Sheet accounts, or which budget types XO.BUDGET supports. When in doubt, the per-function page is the canonical answer.
Frequently asked questions
- What are XO Report custom functions?
- XO Report adds 11 custom Excel functions in the XO.* namespace that pull live data from Xero — account balances, budgets, P&L bottom lines, chart of accounts, contacts, tax rates, currencies, and inventory item lookups. They behave like any other Excel formula: they recalculate when their inputs change, they spill into multi-cell tables where appropriate, and they work across Excel on Windows, Mac, and the browser.
- Where do these formulas come from?
- They are added by the XO Report Office add-in. Install the add-in from Microsoft AppSource or the Xero App Store, connect to Xero with one OAuth click, and the functions are available in any workbook you open with the add-in loaded.
- How do I keep the cheatsheet in sync with the latest signatures?
- The page above is generated from the same typed source-of-truth that the downloadable PDF uses. When XO Report adds or changes a function, both surfaces update together — no risk of a stale cheatsheet drifting from the product. The PDF is regenerated and committed in the same change.
- Is the downloadable PDF the same as the on-page reference?
- Yes — both render the same content from the same source-of-truth. The PDF is convenient to print, share, or pin into a workbook for reference; the on-page reference is link-rich and searchable. The on-page version always reflects the latest deployment; the PDF is regenerated whenever the source-of-truth changes.
- What if I need more than the cheatsheet shows?
- Every function has a dedicated page under /docs/functions/* with full parameter tables, return-value structures, edge cases (e.g., P&L vs Balance Sheet behaviour for XO.BALANCE), and worked examples. The cheatsheet is a quick reference for users who already understand the basics; the per-function docs are the canonical depth.
- Does the cheatsheet cost anything?
- No — both the on-page version and the PDF download are free with no email gate. XO Report itself has a 14-day free trial (up to 10 organisations) and paid plans from $9.90/month.
Related reading
Take the cheatsheet with you
Same content as the table above — formatted to print or share with your team.
Download the cheatsheet (PDF)