What goes in a cash flow and runway dashboard?
A cash flow and runway dashboard combines bank or treasury balances with categorized cash movements and a clearly defined burn rate. It should show today's liquidity separately from forecast assumptions.
Which cards belong on this dashboard?
- Available cash by account and currency
- Base-currency cash balance
- Weekly inflows, outflows, and net cash flow
- Net burn and gross burn
- Cash runway in months
- 13-week cash movement and forecast
- Largest unexpected cash movements
- Restricted cash and transfers in flight
What data does this dashboard need?
- Daily account balance snapshots with native currency
- Posted bank or wallet transactions with consistent inflow/outflow signs
- Approved FX rates for the reporting date
- Budget or forecast cash movements for the forward-looking view
- Restricted-cash and minimum-balance classifications
How do you build it?
- Sync the source systems into a database and retain raw IDs, timestamps, status, and currency.
- Build reconciled models at the business grain this dashboard requires.
- Create one saved question per card and certify the shared models and definitions.
- Add dashboard filters for Legal entity, account, currency, cash category, date range.
- Show refresh time and the latest complete or reconciled period.
Example card SQL
WITH monthly_cash_flow AS (
SELECT
date_trunc('month', movement_date) AS month,
SUM(reporting_currency_amount) AS net_cash_flow
FROM modeled_cash_movements
WHERE is_posted = TRUE
GROUP BY 1
), burn AS (
SELECT AVG(-net_cash_flow) AS average_monthly_net_burn
FROM monthly_cash_flow
WHERE month >= date_trunc('month', CURRENT_DATE) - INTERVAL '3 months'
AND net_cash_flow < 0
)
SELECT
SUM(reporting_currency_balance) AS available_cash,
burn.average_monthly_net_burn,
SUM(reporting_currency_balance)
/ NULLIF(burn.average_monthly_net_burn, 0) AS runway_months
FROM latest_cash_balances
CROSS JOIN burn
WHERE is_restricted = FALSE
GROUP BY burn.average_monthly_net_burn;