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
- Python sync scripts pull data from Xero API endpoints
- Raw data stored as TEXT in PostgreSQL (Render cloud)
- SQL transforms clean and type-cast into canonical tables
- Metric views aggregate for dashboard consumption
- Evidence caches metric results and renders this report
Sync Cadence
- Before board meetings: Run
make syncto pull latest data (~120 API calls, ~2 minutes) - Sample mode:
make sync-samplepulls 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.