Reports & Analytics
Generate P&L, balance sheet, SA103 auto-fill, and interactive dashboard charts.
Available Reports
| Report | Description | Export |
|---|---|---|
| Profit & Loss | Income vs expenses for any period | PDF, CSV |
| Balance Sheet | Assets, liabilities, and equity | |
| SA103 Auto-Fill | Self-employment supplement data | |
| Transaction Summary | Categorised expense breakdown | CSV |
| UC Assessment | Universal Credit calculations |
Dashboard Charts
Your dashboard includes 4 real-time visualisations:
Profit Trend
Line chart with filled area for net profit and dashed income line over time.
Income vs Expenses
Monthly stacked bar chart comparing incoming and outgoing money.
Expense Breakdown
Doughnut chart showing spending by HMRC category.
Source Breakdown
Transaction count and total by source (NatWest, PayPal, etc.).
Profit & Loss
The P&L report shows:
- Total turnover - all business income
- Expenses by HMRC category - mapped to SA103 boxes
- Net profit - turnover minus total expenses
- Tax estimate - based on current bands
Filter by date range, source account, or category.
API
JavaScript
// Get P&L report
const pnl = await $fetch('https://www.taxmtd.uk/api/reports/pnl', {
params: { periodId: 1 }
})
console.log(`Revenue: £${pnl.totalIncome}, Expenses: £${pnl.totalExpenses}`)
console.log(`Net Profit: £${pnl.netProfit}`)
// Get SA103 data
const sa103 = await $fetch('https://www.taxmtd.uk/api/hmrc/sa103')
Python
# P&L report
res = requests.get(
"https://www.taxmtd.uk/api/reports/pnl",
params={"periodId": 1},
cookies=session_cookies,
)
pnl = res.json()["data"]
print(f"Net Profit: £{pnl['netProfit']}")
# SA103 data
sa103 = requests.get(
"https://www.taxmtd.uk/api/hmrc/sa103",
cookies=session_cookies,
).json()["data"]
PHP
$pnl = Http::get('https://www.taxmtd.uk/api/reports/pnl', ['periodId' => 1])->json();
echo "Net Profit: £{$pnl['netProfit']}";
Rust
// P&L report
let pnl = client
.get("https://www.taxmtd.uk/api/reports/pnl?periodId=1")
.send().await?
.json::<serde_json::Value>().await?;
println!("Net Profit: £{}", pnl["data"]["netProfit"]);
// SA103 data
let sa103 = client
.get("https://www.taxmtd.uk/api/hmrc/sa103")
.send().await?
.json::<serde_json::Value>().await?;
cURL
# P&L report
curl "https://www.taxmtd.uk/api/reports/pnl?periodId=1"
# SA103 data
curl https://www.taxmtd.uk/api/hmrc/sa103