The Invoice Tracker Template That Flags Overdue Payments Before They Become Bad Debt
Table of Contents
The Invoice Tracker Template That Flags Overdue Payments Before They Become Bad Debt
Lead: There are 110,000 monthly searches for "invoice template." Most of those people end up with a blank document that looks like an invoice but works like a Post-it note — no client history, no payment status, no way to answer the question that actually matters: who owes us money, and how late are they?
The gap between an invoice document and an invoice tracker is where cash flow goes to die. A PDF with your logo on it does not tell you that Invoice #1042 crossed the 60-day mark yesterday. A spreadsheet row with "Sent" in column F does not ping anyone when the payment lands. And none of the popular templates from Airtable, Notion, or Smartsheet ship the three features you need together: a relational client-invoice-payment model, an overdue formula that fires automatically, and an aging rollup that sorts your receivables by how late they are.
We built all three into a single Baserow template. It is free, it is open source, and the overdue flag works in the Starter tier — no upgrade gate.
Here is what we took from each source, what we left behind, and why.
Why most invoice templates fail within 30 days
Most teams start with a template that models the document — line items, totals, a place for the client name. That works for invoice number one. By invoice number fifteen, the problems surface:
No payment lifecycle. The invoice exists in two states: blank and filled out. There is no Sent, no Partially Paid, no Overdue. You track status in your head or in a separate spreadsheet.
No client entity. The client name is a text field, not a linked record. When you need to see everything owed by Meridian Consulting, you search. And search misses the row where someone typed "Meridian" instead of "Meridian Consulting."
No aging visibility. Overdue is a feeling, not a formula. Nobody knows the total outstanding AR at 30, 60, or 90 days without exporting to Excel and doing the math.
No partial payment handling. Real invoices get paid in installments — a 50% deposit, a net-30 remainder, a disputed line item settled later. Templates that only support Paid/Unpaid force you to create workaround records.
The template you need is not an invoice form. It is an invoice system — one that tracks the full lifecycle from draft to reconciliation and tells you, without asking, what is overdue and by how much.
What the big three give you (and where each stops)
Airtable — Order Tracking and Invoicing
Airtable's template is the strongest relational model in this category. Three linked tables — Orders, Products, Customers — with rollup fields that calculate order totals from line items. The Page Designer extension turns any record into a printable invoice layout, which is genuinely useful for teams that need branded output.
What it does not do: track whether anyone paid. There is no Status field with a Paid/Unpaid/Overdue lifecycle. There is no due date. There is no aging calculation. The template models the creation of invoices, not the collection of payments. You get a beautiful document and no way to know if the money arrived.
Notion — Invoice Generator & Payment Tracker
Notion's template is the cleanest single-database accounts receivable pattern available. One database with Paid/Unpaid status, due dates, and a gallery view that makes the whole thing feel lightweight. For freelancers tracking ten invoices a month, it works.
The limitations show at scale. The client name is a text field, not a linked relation — so you cannot roll up total outstanding by client without manual filtering. There is no aging formula. Status changes are manual: you open the record, change "Unpaid" to "Paid," and hope you remember to do it the day the payment clears. There is no Partially Paid state, which means installment invoices require creative workarounds.
Smartsheet — Invoice Receiving & Routing
Smartsheet's template models the other side of invoicing — accounts payable, not accounts receivable. It tracks incoming bills: who submitted them, who needs to approve them, where they are in the review workflow. The automation layer is strong: intake forms, assignee notifications, approval routing.
But it does not model what most people searching "invoice template" actually need. It is a payables workflow, not a receivables tracker. The data model is a single sheet, not a relational structure. And the approval routing — the best part — requires a Business plan.
Comparison: invoice tracking features across platforms
| Feature | Airtable | Notion | Smartsheet | OSAI Pro Starter | |---|---|---|---|---| | Relational Client → Invoice model | ✓ | ✗ (text field) | ✗ (single sheet) | ✓ | | Invoice → Payment link (partial pay) | ✗ | ✗ | ✗ | ✓ | | Payment lifecycle (Draft → Paid) | ✗ | ◐ (Paid/Unpaid only) | ◐ (AP approval states) | ✓ (6 statuses) | | Overdue formula (auto-flag) | ✗ | ✗ | ✗ | ✓ | | Days Outstanding / Aging rollup | ✗ | ✗ | ✗ | ✓ | | Printable invoice / PDF output | ✓ (Page Designer) | ✗ | ✗ | ✗ (honest limitation) | | AP intake & approval routing | ✗ | ✗ | ✓ | ✗ (AR-focused) | | Free tier available | ◐ (limited records) | ✓ | ✗ (Business plan) | ✓ (full features) |
The rebuild: what we kept, what we added, what we left out
The Baserow Invoice & Payment Tracker (DB 854) uses three tables: Clients (6 fields), Invoices (15 fields), and Payments (5 fields).
What we kept
From Airtable: the relational model. Clients link to Invoices, Invoices link to Payments. Rollup fields on Clients show total outstanding and total paid — no filtering required.
From Notion: the zero-friction status tracking. A single-select Status field on Invoices with six states: Draft, Sent, Partially Paid, Paid, Overdue, Cancelled. Board view gives you a kanban of your entire AR pipeline.
From Smartsheet: the operational routing shape. While we scoped this as an AR tracker (not AP), the Overdue flag uses the same At_Risk / SLA_Breach pattern that Smartsheet's approval routing relies on — a formula that fires when a condition crosses a threshold.
What we added (that none of them ship)
Overdue formula. Due_Date < today() AND Status not in (Paid, Closed, Draft). Fires automatically. No manual status changes needed for the flag — if it is past due and not resolved, it is flagged.
Days Outstanding. date_diff from Issue_Date, zeroed for Paid invoices. This is what powers the aging rollup — sort descending and your worst receivables float to the top.
Partial payment support. The Payments table links to Invoices with amount and date. An invoice with a $10,000 total and a $6,000 payment shows as Partially Paid with $4,000 remaining. None of the three source templates model this.
Aging rollup view. A grid view sorted by Days_Outstanding descending. Your 90-day receivables are at the top. Your 30-day receivables are in the middle. Paid invoices are zeroed out and sink to the bottom. This is the view you open on Monday morning.
Negative-proof test data. The template ships with 15 invoices: 4 deliberately overdue, 11 clean — including Paid invoices with past due dates (should not flag), future-due invoices (should not flag), and a Cancelled invoice (should not flag). The formula handles all of them correctly.
What we left out (honestly)
PDF rendering. Baserow does not have a native PDF renderer. You cannot click a button and generate a branded invoice document the way Airtable's Page Designer allows. If printable invoice output is a hard requirement, this template will not replace that workflow. You will need an external tool — a Documint integration, a Make/Zapier automation that feeds data to a PDF service, or a simple mail merge.
We state this because it matters and because pretending otherwise would waste your time. This is an invoice tracker, not an invoice generator. It answers "who owes us money and how late are they," not "make me a PDF with my logo."
AP workflow. This template is AR-focused. If you need accounts payable intake, approval routing, and vendor payment tracking, Smartsheet's model is purpose-built for that. We may add an AP layer in a future Operational+ add-on, but the Starter ships AR only.
What open source buys you here
Invoice data is sensitive. Client names, payment amounts, outstanding balances — this is the kind of information that makes finance teams nervous about SaaS platforms they do not control.
Baserow is open source and self-hostable. Your invoice data lives on your infrastructure, under your backup policy, inside your security perimeter. No vendor has read access. No pricing change forces a migration under pressure.
The template itself is open. Every formula is inspectable. Every field is editable. If your aging buckets should be 15/45/75 instead of 30/60/90, you change them. If your payment lifecycle needs a "Disputed" status, you add it. The template is a starting point, not a locked product.
Lifecycle: where this template sits
Draft → Send → Track Payment (Paid / Partially Paid / Overdue) → Reconcile → Report
The Starter template covers Draft through Track Payment. Reconciliation (matching payments to bank statements) and Reporting (period-end AR summaries) are roadmap items for the Operational+ tier.
Five-question evaluation checklist
Before you adopt any invoice tracking template — ours or anyone else's — ask these five questions:
- Does the client exist as a linked entity, or just a text field? If text, you cannot roll up outstanding AR by client without manual work.
- Does the template distinguish Partially Paid from Unpaid? If not, installment invoices will break your workflow within the first quarter.
- Is overdue status calculated or manual? Manual means someone forgets. Calculated means the formula does not forget.
- Can you sort by aging (days outstanding)? If not, you are guessing which receivables need attention first.
- Where does the data live? If the answer is "someone else's servers with no export path," your invoice history is a hostage.
[VIDEO EMBED: Pattern of the Week --- The Invoice & Payment Tracking Workflow]
[VIDEO EMBED: Teardown --- What Airtable's Order Tracking and Invoicing Template Gets Right (and Doesn't)]
Get the Starter template
The Invoice & Payment Tracker Starter is a free Baserow template. Three tables, fifteen example invoices, six client records, and a formula-driven overdue flag that works out of the box.
Download it, duplicate it into your workspace, and replace the example data with your own. The overdue formula and the Aging Rollup view work immediately.
[DOWNLOAD CTA: Get the free Invoice & Payment Tracker Starter template →] (Email-gated download. You'll also get our weekly pattern breakdown — one reusable workflow pattern, every week, no filler.)
OpenSource AI Pro covers open source tools and AI adoption for higher education, healthcare, and legal teams. The Template Intelligence series analyzes commercial workflow templates and rebuilds the best patterns as open source deliverables.
Ready to try it yourself?
Download one of our 42 free, AI-powered templates and see the difference formula-driven logic makes.
Browse TemplatesRelated Posts
The Commission Tracker Template That Recalculates Itself When Rates Change
Most commission tracker templates give you a column for the rate and a column for the total. Ours gives you a rate table that every deal reads from live. We analyzed the commission-tracking templat...
The Expense Report Template That Flags Policy Violations Before Finance Has To
Most expense report templates give you a place to log a receipt. Ours gives you an answer to "is this within policy" before a manager has to open a single attachment. We analyzed the official busin...
The Timesheet Template That Rolls Up Hours and Flags Over-Budget Projects on a Schedule
Every professional services firm tracks time. Almost none of them know a project is over budget until the invoice goes out. The timesheet tells you hours were logged. It does not tell you that Proj...