Invoicing from the source
Generated from contracts, milestones, time, usage, or a schedule, so the invoice matches what was agreed rather than what someone remembered to bill.
Platform · financial core
Every AR system sorts by days outstanding, which is the least useful ordering available. The oldest invoice is often the one least worth chasing, and the account you should call today may be only thirty days late. Ranking by what is actually recoverable is what moves DSO.
Send an AR ageing export. We will rank it by recoverability and show you which accounts to call first.
What it does
Generated from contracts, milestones, time, usage, or a schedule, so the invoice matches what was agreed rather than what someone remembered to bill.
Payments matched to open items automatically including partial payments, deductions, and lump sums covering several invoices. Unapplied cash is an exception, not a monthly project.
By customer, entity, salesperson, and contract, with retainage and disputed items tracked separately rather than buried in the same bucket.
Sequences that check contract status, renewal timing, open support tickets, and payment history before sending. The agent drafts; a person releases.
A customer portal where they see statements and pay by card or ACH. This is where DSO actually moves — most late payment is friction, not refusal.
Limits, holds, and deterioration signals from payment behaviour, so a slipping account surfaces before it becomes a write-off conversation.
An ageing report sorted by days outstanding tells you which invoices are old. It does not tell you which are late, which is a different question — a customer who has paid at seventy days for three years is not late at sixty-five, and a customer who has always paid at thirty is a problem at forty-five.
Sorting by recoverability uses payment behaviour, amount, contract status, relationship signals, and dispute state together. In practice it reorders a typical ageing list substantially, and the top of the reordered list is where a collections hour is actually worth spending.
The reason finance teams are cautious about automated dunning is that they have seen it go wrong — a demand letter to a customer mid-renewal, a chase to an account with an open escalation, a reminder to someone who paid yesterday and whose payment has not been applied.
Because contracts, tickets, projects, and payments are on one graph here, the dunning logic can see all of it. Suppression rules for active renewals, open disputes, and recent unapplied payments are defaults rather than something you have to remember to configure. And the agent drafts rather than sends — outbound communication that reaches a customer is a Level 1 action, always.
Most AR teams spend more time applying cash than chasing it. A lump-sum wire covering eleven invoices with a short-payment on one of them is a twenty-minute puzzle done by hand, several times a week.
Automatic application handles exact, split, and partial matches, proposes fuzzy ones, and holds the genuinely ambiguous. Deductions are classified — short payment, early payment discount taken, disputed line — so the remainder is a real exception list rather than a pile.
In our engagements the largest single improvement is not better chasing. It is self-serve access: a portal where the customer can see the invoice, download a statement, and pay without emailing anyone. Most late payment is friction rather than refusal, and removing the friction is worth several days.
Questions
Send an ageing export and we will rank it by recoverability, with the reasoning attached.