Reports & Exports

Building branded financial reports, exporting data to Excel, and creating fully custom layouts with the Custom Code block.

Building a report

Reports are built from blocks— modular sections you drag onto the canvas in any order. Each block pulls live data from your client's QBO or Xero company when you click Pull data.

Creating a report

  1. Go to Reports → New report.
  2. Pick a client and the period (e.g., March 2026).
  3. Start from a template, or drag blocks from the palette on the left.
  4. Click each block to configure it — title, variant, visibility.
  5. Click Pull data to fetch live figures from QBO/Xero.
  6. Click Generate PDF when ready to preview the finished report.
  7. Click Send to email it from your Gmail or Outlook.
Tip: Use a template to skip the block setup for recurring reports. Build a report once, save it as a template, and apply it to any client going forward.

Block types

The block palette is grouped into five sections:

SectionBlocksPlan
Cover & LayoutCover Page, Table of Contents, Custom Text, Custom Code, DividerCover Page free; TOC, Custom Text, Divider, Custom Code = Pro
Financial OverviewP&L (Standard / Comparison / By Class / By Customer / By Location), Balance Sheet (Standard / Comparison), Cash Flow, Statement of Cash FlowsP&L + Balance Sheet free; Cash Flow + Statement of Cash Flows = Pro
Customers (A/R)A/R Aging (Summary / Detail), Sales by Customer, Customer BalanceA/R Aging free; Sales by Customer + Customer Balance = Pro
Vendors (A/P)A/P Aging, Expenses by Vendor, Vendor BalancePro
Detail & PlanningTrial Balance, General Ledger, Sales by Product/Service, Budget vs. Actuals, P&L Detail, Balance Sheet DetailPro

Templates

Templates store a reusable block layout — including block order, configuration, and visibility — but not financial data. Data is always pulled fresh from QBO/Xero when you create a report from a template.

  • System templates — ship with the product (Monthly Bookkeeping Package, Quarterly Business Review, Annual Summary). Read-only; click Customize to create an editable copy.
  • Firm templates — created by your team. Shared across all team members. Edit any time.

To set a default template per client: open the client, edit Default template. Reports created for that client will automatically start with that template's blocks.

Excel export

Every report can be exported as an Excel workbook (.xlsx). The export contains the raw financial data from the report — the same numbers you see in the PDF, structured for further analysis.

Plan: Excel export requires Pro or above.

How to export

  1. Go to Clients → [client name] → Reports.
  2. Click the Excel button next to the report you want. The file downloads immediately.

You can also trigger an export via the API:

GET /api/v1/reports/:id/pdf    # download the PDF
# Excel export is only available through the dashboard UI currently

Workbook structure

SheetContents
SummaryKey figures from every data block in one place — total income, net income, total assets, total liabilities, total A/R, etc. Useful for a quick overview or for pasting into an existing client model.
P&LIncome statement line items, headers, and subtotals, as an Account/Amount sheet.
Balance SheetFull balance sheet with assets, liabilities, and equity breakdowns.
A/R AgingOutstanding invoices by aging bucket (Current, 1–30, 31–60, 61–90, 90+).
[Other blocks]Each data block in the report gets its own sheet — Cash Flow, Trial Balance, Sales by Customer, etc. Layout blocks (Cover Page, Divider, Custom Text) are not included.

Common uses

  • Client models — drop the data directly into a client-specific Excel model or budget template.
  • Power Query — build a live dashboard in Excel by loading the exported file via Power Query.
  • Google Sheets — import the .xlsx into Sheets for collaborative analysis.
  • Year-over-year comparisons — export the same report for multiple periods and combine the data in Excel.

Custom Code block

The Custom Code block lets you write raw HTML and CSS to add a fully custom section — a KPI callout box, a branded table, a letterhead strip, a highlights grid, anything no built-in block covers. The output is rendered in the PDF exactly as it looks in the editor.

Plan: Custom Code block requires Pro or above.

How to use it

  1. Drag Custom Code from the palette (Cover & Layout section) onto the canvas.
  2. Click the block to open the inspector on the right.
  3. Write your HTML in the HTML field and your CSS in the CSS field.
  4. The canvas preview updates in real time.

Merge variables

You can embed report data into your HTML and CSS using {{variable}} syntax:

VariableInserts
{{client_name}}Client's display name
{{firm_name}}Your firm name
{{period}}Report period (e.g. 2026-03)
{{fiscal_year}}Year extracted from the period
{{report_title}}Report title from firm settings
{{prepared_by}}"Prepared by [firm name]"

Example

<!-- HTML -->
<div class="kpi-row">
  <div class="kpi">
    <div class="kpi-label">Prepared for</div>
    <div class="kpi-value">{{client_name}}</div>
  </div>
  <div class="kpi">
    <div class="kpi-label">Period</div>
    <div class="kpi-value">{{period}}</div>
  </div>
  <div class="kpi">
    <div class="kpi-label">Prepared by</div>
    <div class="kpi-value">{{firm_name}}</div>
  </div>
</div>
/* CSS — scoped to this block automatically */
.kpi-row {
  display: flex;
  gap: 24px;
  padding: 16px 0;
  border-top: 2px solid #1a1d22;
  border-bottom: 1px solid #e2e3e8;
}
.kpi-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8b919a;
  margin-bottom: 4px;
}
.kpi-value {
  font-size: 18px;
  font-weight: 600;
  color: #1a1d22;
}

CSS scoping

Your CSS is automatically scoped to this block. Write normal selectors like p { color: #333; }— they won't bleed into the rest of the report or into other Custom Code blocks. Scoping is enforced server-side before the PDF is rendered.

Limits

  • No JavaScript. The PDF is rendered with JavaScript disabled, so any <script> in your HTML is inert — it will not run in the generated PDF.
  • CSS applies only to this block's content (enforced server-side).
  • Custom Code blocks appear in the Table of Contents as "Custom Section".
  • External resources (<img src="https://..."> , web fonts) may not load in the PDF renderer — inline your styles and use data URIs for images.