The AR Aging report shows every unpaid invoice bucketed by how overdue it is. It's the single most useful weekly check for an HVAC shop's cash flow.

Where to find it

Reports → Money → AR aging.

What it shows

Every invoice with a balance > 0, grouped into aging buckets:

BucketMeaning
CurrentNot yet past due.
1–30 days overdueJust past due.
31–60 days overdueWorth a call.
61–90 days overdueWorth a conversation.
90+ days overdueThe high-risk zone.

For each bucket, you see total dollars outstanding and the count of invoices.

What it answers

QuestionHow the report answers
How much money are we owed?Totals per bucket and grand total.
Who owes us most?Sort by customer to see your top debtors.
What's deteriorating?Invoices moving from Current → 30 → 60 → 90 should trigger action.

Aging math

An invoice's aging bucket is based on:

days_overdue = today − invoice.due_date

If today ≤ due_date, the invoice is Current. The platform recalculates aging at each page load.

Common patterns

PatternWhat it usually means
One big customer in 60-day bucketUsually a commercial customer with a slow AP department. Call them; sometimes they're waiting on a PO match.
Many small invoices in 30-dayYour reminders are working but follow-up calls aren't happening. Triage at the next dispatch meeting.
90+ days growingUsually write-offs or you-need-to-sue territory. Decide each one consciously.

Acting on aging

The report is read-only. To act on a specific invoice:

  • Click into the invoice → Send reminder (manual nudge).
  • Call the customer directly using the phone-icon next to their record.
  • For 90+ days you've decided to write off, void the invoice and accept it as a loss.

What's NOT here

  • Automated dunning — there's no escalation system that auto-takes action once aging crosses a threshold. The platform sends invoice overdue reminders automatically; beyond that, follow-up is human.
  • Collection-agency handoff — no integration.