How Automated Late Fees Are Calculated (And Why They Don't Compound)
In this article
If you've turned on automated late fees and are wondering whether that fee keeps growing the longer an invoice sits unpaid, the answer is no — it applies exactly once per invoice. This article covers exactly how the fee amount is calculated, why it only ever fires a single time, and what actually happens to the invoice total when it does.
The Two Fee Types
Late fees can be configured as either a flat amount or a percentage. A flat fee is a fixed dollar amount added once the invoice qualifies — $25, for example, regardless of the invoice size. A percentage fee is calculated against the outstanding balance, not the original invoice total, which matters if part of the invoice has already been paid down. If an invoice was for $1,000 and $400 has already been paid, a 5% late fee is calculated on the remaining $600, not the original $1,000.
The Grace Period
Every workspace with late fees enabled sets a grace period in days. The invoice's due date has to have passed, and the number of days it's been overdue has to meet or exceed that grace period before a fee is even considered. A zero-day grace period means the fee can apply the moment the due date passes; a seven-day grace period means the invoice has a full week of leeway before it's eligible.
Why It Only Applies Once — Not Every Time the Check Runs
This is the detail most people assume works differently. Every time a late fee is actually applied to an invoice, that event is permanently logged — the workspace, the invoice, and the fee amount, tied together with a database constraint that makes a second entry for the same invoice impossible. Before applying a fee, the system always checks this log first. If an entry already exists for that invoice, the fee is skipped entirely on every subsequent check, no matter how many more days pass. A $50 late fee that was applied 10 days ago stays exactly $50 today, even though the invoice is now 10 days more overdue than when the fee was charged. The system does not compound the fee, does not reapply it weekly, and does not stack additional fees on top of the first one.
If you want an invoice to be penalized further the longer it goes unpaid, the platform's late fee feature isn't designed to do that automatically — it's a one-time deterrent tied to crossing the grace period, not an ongoing interest calculation. Anything beyond that single fee would need to be applied manually.
How the Fee Changes the Invoice Total
When a fee is applied, it's added to a running late-fee total tracked on the invoice, and that amount is folded directly into the invoice's total due. This isn't a separate charge sitting alongside the invoice — the invoice's total balance actually increases by the fee amount, so the client sees one updated number to pay, not a base invoice plus a disconnected penalty line they'd have to add up themselves.
What Statuses Are Excluded
An invoice that's already paid, cancelled, archived, draft, approved, rejected, or converted is never eligible for a late fee, regardless of how overdue its due date is. These are treated as locked states — the invoice's lifecycle has already been decided one way or another, and a background fee sweep isn't allowed to reach in and change the amount owed on something that's already been resolved or is still in a pre-billing state.
How Often the Fee Check Runs
Like the reminder sweep, the late fee check runs every six hours by default. Because eligibility depends on calendar days past the due date and grace period, not hours or minutes, checking more frequently wouldn't change which invoices qualify on a given day — it would just mean more database queries for no practical benefit.
What the Client Is Told
When a fee is applied, the client receives an automatic email notifying them that a late fee was added, along with the updated total. This happens in the same pass that calculates and applies the fee — there's no separate delayed notification step, so the client's inbox and the invoice's actual balance stay in sync.
Frequently Asked Questions
If I manually adjust the invoice after a late fee has been applied, does the fee get removed? No. The fee is folded into the total and logged as a permanent record of what happened and when. Manually editing other parts of the invoice doesn't reverse or re-trigger the fee logic — you'd need to manually adjust the total if you wanted to waive a fee after the fact.
Does a partial payment after the fee was applied change the fee amount? No. The fee amount was calculated and logged at the moment it was applied, based on the balance at that time. Later payments reduce the outstanding balance going forward but don't retroactively recalculate a fee that's already been charged.
Can different clients have different grace periods or fee rates? The grace period and fee type/value are set per workspace, not per client or per invoice, so every invoice from your account follows the same rule. If you need different terms for different clients, that currently has to be handled manually rather than through the automated sweep.
Related Articles
Client Statement vs. Accountant Report: What's the Difference
Two reports pull from the same data but serve opposite purposes — one is safe to hand to a client, the other very much isn't.
How the Reusable Service Catalog Speeds Up Invoicing
Why editing a rate in your service catalog never rewrites invoices you've already sent, and how the save-or-update logic actually works.
What's Actually Inside Your Account Data Export
A full breakdown of what the account data export includes, what it deliberately leaves out, and how it's generated on demand.
How the Accounts Receivable Aging Report Buckets Your Invoices
The exact day thresholds, currency grouping, and client-matching logic behind the aging report — and what it deliberately excludes.
How Discounts Are Applied Before Tax on Your Invoices
Tax is calculated on the discounted amount, not the original subtotal — a discount reduces your tax bill too, not just the price the client pays.