Financial Widgets
Financial Widgets
Financial widgets provide detailed insight into your organisation’s monetary health — from cash flow trends and payment collection efficiency to profit and loss summaries and aged receivables breakdowns. These widgets are restricted to users with financial access permissions, typically CoreAdmin and CoreManager roles.
Access requirements
Financial widgets are classified separately in the WidgetPermissionService. The following widget types require financial permissions: cash_flow_chart, profit_loss_summary, payment_collection_rate, revenue_by_category, and overdue_invoices. If a user without financial access attempts to add these widgets, they will not appear in the Widget Library. The widget category itself can be enabled or disabled organisation-wide via Dashboard Settings using the enable_financial_widgets setting.
Cash Flow Chart Widget
The CashFlowChartWidget (backed by CashFlowChartCalculator) tracks income versus expenses over time as a bar or area chart. The widget configuration supports a configurable time period — the default in the Executive Dashboard template is last_12_weeks grouped by week. Income data is sourced from paid invoices (invoices.total where status is paid), while expenses are sourced from the expenses table.
The chart renders with summary cards below showing total income, total expenses, and net cash flow for the selected period. Grouping options include week, month, and quarter, allowing you to zoom in on short-term fluctuations or zoom out for longer-term trends. Use this widget to spot cash flow issues early — a consistent gap between income and expenses signals potential trouble that requires attention before it affects operations.
Payment Collection Rate Widget
The PaymentCollectionRateWidget (backed by PaymentCollectionRateCalculator) displays a gauge-style visualisation showing the percentage of invoiced amounts collected on time. The calculator analyses invoices issued within the selected date range and determines:
- On-time payment percentage — invoices where paid_date is on or before due_date
- Average days late — mean delay for late payments
- Collection efficiency — on-time value as a percentage of total invoiced value
The gauge is colour-coded: green when above 80%, amber between 50% and 80%, and red below 50%. The DashboardStatsService.calculatePaymentCollectionRate() method provides a simpler version comparing total invoiced this month against total paid this month. The widget also includes an aging bucket breakdown (current, 1–30 days, 31–60 days, 60+ days) and a monthly trend chart showing collection rate over time. Configurable date ranges include last_30_days, last_90_days, this_month, this_year, and custom date ranges.
Profit & Loss Summary Widget
The ProfitLossSummaryWidget (backed by ProfitLossSummaryCalculator) presents a P&L overview card showing total revenue, total expenses, and net profit or loss. The time period is configurable — month, quarter, or year. The widget displays trend arrows showing the percentage change from the previous equivalent period (e.g., this month vs last month). A positive net figure is highlighted in green; a loss is shown in red. This widget is placed in the Financial Dashboard template alongside the Aged Receivables chart in row 4.
Revenue by Category Widget
The RevenueByCategoryWidget (backed by RevenueByCategoryCalculator) breaks down revenue by equipment category, project type, or client segment. It renders as a pie or bar chart depending on the chart_type configuration. In the Financial Dashboard template, this widget appears as a pie chart showing “Revenue by Client” with the top 10 clients by revenue for the current year. Use this widget to identify your most profitable business areas and focus your sales efforts accordingly.
Aged Receivables
Aged receivables data is available via DashboardStatsService.getAgedReceivables() and displayed as a stacked bar chart in the Financial Dashboard template. The breakdown uses five age brackets:
- Current — invoices not yet past their due date
- 1–30 days — overdue by up to 30 days
- 31–60 days — overdue by 31 to 60 days
- 61–90 days — overdue by 61 to 90 days
- 90+ days — overdue by more than 90 days
Each bracket shows the total outstanding amount. The data is queried from invoices with statuses of sent, partial, or overdue. This widget is critical for credit control — a growing balance in the 60+ day bracket requires immediate attention.
Financial stats from DashboardStatsService
The DashboardStatsService.getFinancialStats() method returns a consolidated set of financial metrics available to the Financial dashboard view type. These include the payment collection rate data (invoiced this month, paid this month, collection percentage), aged receivables breakdown, overdue invoice total, and outstanding invoice total. These stats power both the KPI tiles and the detailed financial widgets.
Financial Dashboard template
The pre-built Financial Dashboard (template ID: financial_dashboard) is designed for finance teams and accountants. Its layout includes:
- Row 1 — 4 KPI tiles: Revenue This Month, Profit Margin, Overdue Invoices, Cash Flow
- Row 2 — Revenue vs Expenses combo chart (bars for revenue, line for expenses) alongside the Payment Collection Rate gauge
- Row 3 — Overdue Invoices list (with critical highlight at 30+ days) and Revenue by Client pie chart
- Row 4 — Aged Receivables bar chart (grouped by age_bracket) and P&L Summary card
Subrental Profitability Widget
The SubrentalProfitabilityWidget is a specialised financial widget for tracking the profitability of subrentals — temporary equipment hired from third parties for specific projects. It displays four key metrics:
- Total subrental revenue — income generated from subrented items
- Total subrental cost — what you paid to the third-party supplier
- Overall profit margin — shown as a percentage
- Top 5 most profitable subrentals — ranked by margin
This widget requires financial permissions and is hidden when the user lacks access. It is particularly valuable for companies that regularly subrent equipment to fill gaps in their own inventory, helping you track whether those arrangements are genuinely profitable.
Tips for financial widgets
- Use the Financial Dashboard template as your starting point — it covers the most important financial metrics out of the box
- Monitor the Payment Collection Rate gauge daily to catch collection slowdowns before they become cash flow problems
- Review the Aged Receivables chart weekly and follow up on any invoices entering the 31–60 day bracket
- Combine the P&L Summary with the Revenue by Category chart to understand which business areas drive profitability
- Set up email subscriptions on your Financial Dashboard for automated weekly reports delivered to your inbox
Was this article helpful?