AAuditPro Suite· Finance manual
Finance manual Reports + KPIs

The 4 finance reports

1Revenue by Client
M15

Per-client total billed (Σ tax-invoice grand_total) · paid · outstanding · advance held. Sortable by any column. CSV/PDF export.

2AR Aging Detail
M15

Per-invoice 4-bucket aging. Days past due. Last-contact date. Promised payment date. Filter by client/bucket/manager.

3Payments Received
M15

Per-payment list with allocations. Filter by date range / client / method. Reconciles to bank statement totals.

4Quote Conversion
M15 Sales

Quote pipeline: sent · accepted · rejected · expired. Acceptance % by fee bracket. Avg days lead-to-quote.

Dashboard panels (not reports — live KPIs)

1 · 13-week cashflow forecast

Chart.js stacked bar covering next 13 weeks (Sunday-anchored):

Visible to partner + accountant + super_admin only. Hidden if no upcoming activity.

2 · AR Aging tile

Total firm-wide AR + 4-bucket breakdown (current / 1-30 / 31-60 / 60+). Click any bucket → drill into AR Aging Detail filtered to that bucket.

3 · Pipeline Conversion (4-tile band)

Last 90 days:

Click stuck count → deep-link to /leads?stuck=1 with auto-filter applied.

The 7 KPIs every audit-firm partner watches

KPIHealthyWarningCrisis
Total AR / monthly revenue< 1.5× monthly1.5-3×> 3×
AR in 60+ bucket< 5%5-15%> 15%
Days Sales Outstanding (DSO)30-45 days45-60> 60
Quote acceptance rate30-50%20-30% / 50-70%< 20% / > 70%
Lead win rate30-50%20-30%< 20%
Advance held (un-allocated)< 10% of monthly revenue10-30%> 30%
Avg cycle (lead → paid)60-90 days90-150> 150

Custom reports

The M15 catalogue is firm-wide; if your firm needs custom reporting (e.g. partner-specific revenue book), add a row to ReportService::catalogue():

The runner UI auto-generates filter form + result table + CSV/PDF export from the catalogue entry.

Step-by-step — the Friday-morning routine

  1. Open Dashboard

    Glance at: Pipeline Conversion (any stuck items?), AR Aging tile (any new 60+?), 13-week forecast (next 4 weeks healthy?).

  2. Open Reports → AR Aging Detail

    Sort by days_overdue descending. Top 5 are this week's collection focus.

  3. Walk each top row

    Last contact? Promised date? Status? With the accountant, decide: chase / payment plan / partner letter / write-off.

  4. Update Collection log

    For each row, log the action taken. Drives next week's review.

  5. Open Reports → Quote Conversion

    Any stuck quotes? Reach out, refresh, or write off.

  6. Open Reports → Revenue by Client

    Top 10 clients by revenue. Any concentration risk? Any going down YoY?

Total time: 30 minutes per week. This single hour is the highest-leverage activity for firm cashflow + revenue stability.

Exporting to CSV/PDF

Every report has 2 export buttons: CSV (RFC-4180 with UTF-8 BOM) + PDF (dompdf-rendered branded A4 landscape). Filters from the current view propagate to the export URL. Each export audit-logged at m15.report.export.{csv|pdf}.

Try this

Run Reports → Revenue by Client for the current FY. Export to CSV. Open in Excel / Google Sheets. Add a sparkline column showing each client's monthly billed amount. You'll spot trends instantly — clients quietly winding down before they tell you, clients ramping up before you notice on the dashboard.

Watch out

Don't substitute reports for the dashboard panels — both serve different purposes. Dashboard panels are real-time, partner-facing, summary. Reports are detailed, filterable, exportable. If you only look at reports, you're working last week's data; if you only look at the dashboard, you're missing the long tail of small-client risk. Use both.

Tip — partner monthly review

First Monday of each month, partner reviews: top 10 clients revenue (Reports → Revenue by Client) · AR > 60 days (Reports → AR Aging Detail filter 60+) · stuck quotes (Pipeline → stuck filter) · cashflow forecast (Dashboard panel). 60 minutes. Drives the firm's monthly leadership conversation.