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?