Demo Spark is a fictional company · public demo, no login required

Data Sources

Data Sources

Connected System

System Scope Data Extracted
Xero API (OAuth2 Web App) Read-only Invoices, line items, contacts, payments, accounts, tracking categories, credit notes, P&L report, balance sheet

API scopes: accounting.transactions.read, accounting.contacts.read, accounting.reports.read, accounting.settings.read, offline_access

Data Pipeline

  1. Python sync scripts pull data from Xero API endpoints
  2. Raw data stored as TEXT in PostgreSQL (Render cloud)
  3. SQL transforms clean and type-cast into canonical tables
  4. Metric views aggregate for dashboard consumption
  5. Evidence caches metric results and renders this report

Sync Cadence

  • Before board meetings: Run make sync to pull latest data (~120 API calls, ~2 minutes)
  • Sample mode: make sync-sample pulls page 1 only for development (~10 API calls)
  • No CRM or campaign data — this dashboard is pure Xero financial data

Partial Month Filter

All invoice, payment, and credit note data excludes the current incomplete month. This prevents misleading comparisons between a full month and a partial one.


Back to Methodology