Net 60 Payment Terms Are Killing My Cash Flow: The Gap Between When I Pay and When I Get Paid

I need to vent and also genuinely ask for help here, because this cash flow situation is getting ridiculous.

Here’s what happened last month: I invoiced a client $5,000 on January 15th with Net 30 terms. Standard, right? Except they didn’t pay until early March—45 days late. Meanwhile, I had to pay:

  • February rent: $1,200
  • Software subscriptions: $400
  • A contractor I hired for overflow work: $1,500
  • My own salary/draw: $2,500

That’s $5,600 in expenses I fronted in February alone, while waiting for that $5K to show up. And this isn’t a one-time thing—I’ve got 20+ clients, and this pattern repeats constantly. I’m basically providing 2-3 months of interest-free financing to my clients while scrambling to cover my own operating expenses.

The worst part: Last month, three of my biggest clients all paid 30+ days late at the same time. I came dangerously close to missing payroll for my part-time assistant. That’s when I realized this isn’t just annoying—it’s a structural problem with how I’m running my business.

And now I’m looking at taking on a new enterprise client who insists on Net 60 terms. Sixty days! That means I’ll invoice them in April and maybe see money in June (if they pay on time, which based on my track record, they won’t). How am I supposed to fund the work I’m doing for them for 2-3 months?

The compound effect is real: I can’t take on new clients as fast as I’d like because so much of my cash is tied up in receivables. I’m working hard, billing properly, doing good work—but I’m cash-poor because I’m waiting for everyone to pay me.

My questions for this community:

  1. How do you track aging receivables in Beancount? I know I should be running reports on who’s 30/60/90 days overdue, but I haven’t figured out a clean way to do this in plain text accounting yet. Are there queries or Fava customizations that help?

  2. What strategies have worked for you when dealing with Net 60 terms from enterprise clients? I don’t want to lose the business, but I also can’t keep fronting months of operating expenses.

  3. For those who’ve solved this: did you require deposits? Change your payment terms? Build cash reserves? Get a line of credit?

I feel like I’m doing something fundamentally wrong here, but I also know from talking to other bookkeepers that late payments are just… normal? That can’t be sustainable though.

Would really appreciate hearing how others handle this, especially if you’ve found Beancount workflows that help with cash flow visibility.

Context: I run a small bookkeeping practice in Austin, TX with ~20 active clients. Mix of small businesses and a few larger accounts. Average invoice is $2K-$5K, Net 30 terms. Actual average payment time is probably 45-50 days.

Sources on the broader issue:

Bob, I want to validate first that this is a real professional challenge, not a sign of mismanagement on your part. What you’re describing—the 2-3 month cash flow gap between when you incur expenses and when you actually get paid—is one of the most common issues I see with small service businesses. You’re not doing anything fundamentally wrong; you’re experiencing the structural tension between accrual accounting (when revenue is earned) and cash basis reality (when money actually hits your bank account).

From a CPA perspective, here’s what I’d recommend:

1. Build an Aging Receivables Report in Beancount

You need visibility into who owes you what and for how long. Here’s the conceptual approach:

  • Track each invoice as an Assets:AccountsReceivable:ClientName entry when you send it
  • Use metadata to tag the invoice date and due date
  • When payment arrives, move from AR to your checking account
  • Run periodic queries to calculate aging: current date minus invoice date

In Beancount, you might structure invoices like this:

2026-01-15 * "Invoice #1234 - January services"
  Assets:AccountsReceivable:ClientA   5000.00 USD
    invoice-date: 2026-01-15
    due-date: 2026-02-14
    invoice-number: "1234"
  Income:Services:Bookkeeping        -5000.00 USD

Then when paid:

2026-03-05 * "Payment received - Invoice #1234" 
  Assets:Checking                     5000.00 USD
  Assets:AccountsReceivable:ClientA  -5000.00 USD
    invoice-number: "1234"

You can query Fava or write custom reports to show open AR balances by aging bucket (0-30, 31-60, 61-90, 90+).

2. Business Strategy: Require Deposits or Retainers

For new clients—especially enterprise clients with Net 60 terms—consider requiring a 25-50% deposit upfront. This accomplishes two things:

  • Improves your cash position immediately
  • Demonstrates client commitment (if they won’t pay a deposit, they’re probably going to be a payment problem)

I implemented this in my practice three years ago and it completely changed my cash flow stress. For a $5K monthly retainer client, I collect $2,500 upfront before starting work.

3. Update Your Engagement Letters

Build payment expectations and late fee policies directly into your engagement agreements:

  • Specify payment terms clearly (Net 30, not “whenever”)
  • Include late payment fees (e.g., 1.5% per month after 30 days—that’s 18% APR, which is reasonable given your cost of capital)
  • Reserve the right to pause services if invoices exceed 60 days past due

I know this feels awkward, but it’s standard professional practice. Lawyers do it, consultants do it, contractors do it. You’re providing professional services that have real value, and payment terms matter.

4. The Cash vs. Accrual Consideration

One thing to be aware of: if you’re on cash basis for tax purposes, you don’t owe taxes on that $5K invoice until you actually receive payment. But if you’re on accrual basis, you owe taxes when you earn the income (i.e., when you send the invoice), even if the client hasn’t paid yet. This can create a secondary cash flow crunch at tax time. Make sure your accounting method aligns with your cash reality.

Bottom line: You’re not alone in this struggle. The statistics you cited are real—56% of small businesses dealing with unpaid invoices averaging $17.5K is a systemic problem, not a you problem. But you can implement structural fixes that reduce your exposure and stress.

Happy to share more specifics about Beancount AR tracking if helpful!

Bob, coming from a FIRE (Financial Independence, Retire Early) perspective, what you’re experiencing is a classic opportunity cost problem. Let me break down the math, because once you see the numbers, it becomes clear why this cash flow issue is more expensive than it seems.

You’re Providing Interest-Free Loans to Your Clients

Net 60 payment terms mean you’re essentially lending money to your clients for 60 days at 0% interest. But money has a time value. If you had that $17,500 in average outstanding receivables (the national average you cited) invested instead of tied up in AR, you’d be earning returns.

Quick calculation:

  • $17,500 in receivables at any given time
  • If invested at a conservative 5% annual return: $875/year in lost investment income
  • If you could get 8% (reasonable historical stock market return): $1,400/year

That might not sound huge, but compound it over 10 years and you’re talking about tens of thousands in lost opportunity cost. And that’s just the investment angle—not counting the stress, time spent chasing payments, or business growth you’re sacrificing.

Cash Flow Forecasting in Beancount

One technique I use that might help: I track future-dated transactions in Beancount to forecast cash flow 90 days out. Here’s the concept:

When I send an invoice, I create TWO entries:

  1. The immediate AR entry (like Alice showed)
  2. A future-dated entry for when I expect to receive payment (based on historical averages, not the invoice due date)

So if you invoice on Jan 15 with Net 30 (due Feb 14), but historically clients pay 45 days late, you’d create a future transaction dated ~March 1:

2026-03-01 * "Expected payment - Invoice #1234" #forecast
  Assets:Checking                     5000.00 USD
  Assets:AccountsReceivable:ClientA  -5000.00 USD

I tag these with #forecast so I can filter them out of actual reports, but include them in cash flow projections. This lets me see my realistic cash position 30/60/90 days out and make decisions accordingly.

Build a Cash Reserve Buffer

Alice’s advice about deposits is spot on. But even with better payment terms, I’d strongly recommend building a cash reserve equal to 3 months of operating expenses. In your case with $5,600/month in baseline expenses, that’s $16,800.

I know that sounds like a lot when cash is already tight, but here’s how I built mine:

  • Set aside 10% of every payment received (before expenses)
  • Don’t touch it except for genuine emergencies (late client payments qualify)
  • Once you hit 1 month of reserves, the stress drops dramatically
  • Getting to 3 months is life-changing

From the FIRE community perspective, we talk a lot about “FU money”—having enough reserves that you can walk away from bad situations. For you, that might mean having enough buffer that you can confidently tell that Net 60 enterprise client “Sorry, we require Net 30 maximum” without worrying about making rent.

The ROI of Saying No

One more thought: sometimes the highest-ROI decision is turning down business that doesn’t fit your cash flow model. A $10K/month client who pays Net 90 (and actually takes 120 days) might generate less value than two $4K/month clients who pay on time, because:

  • You don’t tie up 3-4 months of working capital
  • You spend less time chasing payments
  • Your stress level is lower (which has real health/productivity value)

Run the numbers on that enterprise client with Net 60 terms. Factor in:

  • Your cost of capital (what could you earn if that money wasn’t tied up?)
  • Time spent on collections and payment follow-ups
  • Stress and opportunity cost of constrained cash flow

You might find they need to pay you 15-20% more than your standard rate to make the delayed payment terms worthwhile.

Bottom line: This isn’t just an accounting problem—it’s a business model problem. Fixing it requires both tactical changes (better AR tracking, as Alice suggested) and strategic changes (deposits, reserves, selective client acceptance).

Happy to share more about the cash flow forecasting approach if it’s helpful!

Bob, I’ve been exactly where you are, and I want you to know: this is incredibly stressful, you’re not imagining it, and there ARE solutions.

My Story: The Cash Flow Crisis That Forced Change

About three years ago, I had a similar situation with my rental property bookkeeping clients. I was managing books for 8 small landlords, invoicing monthly, and constantly chasing payments. One particularly bad month, four clients paid 45+ days late simultaneously, and I couldn’t make my mortgage payment on time. That was my wake-up call.

The problem wasn’t that I was doing bad work—clients were happy, renewals were high, referrals were coming in. The problem was my business model didn’t account for the reality that people pay late.

What I Changed (and what worked):

1. AR Tracking in Beancount

When I switched from QuickBooks to Beancount, accounts receivable tracking was one of my core requirements. Here’s my actual workflow:

Each invoice gets recorded as:

2026-01-15 * "Invoice ABC Corp - January services" ^invoice-2026-001
  Assets:Receivables:ABCCorp    2500.00 USD
    invoice-date: 2026-01-15
    due-date: 2026-02-14
    client: "ABC Corp"
  Income:Bookkeeping            -2500.00 USD

I use the ^ link syntax (^invoice-2026-001) to connect the invoice to the eventual payment, which makes it easy to track which invoices are still open.

For aging reports, I have a custom Fava extension that shows me:

  • Current (0-30 days): total outstanding
  • 31-60 days: total + client names
  • 61-90 days: total + client names + BIG RED FLAG
  • 90+ days: COLLECTIONS TERRITORY

This visual dashboard in Fava was game-changing. I check it every Monday morning, and if anyone hits 45 days, they get a friendly payment reminder email that day.

2. Payment Terms Negotiation

After my cash crunch, I changed my standard engagement terms:

  • Net 30 maximum (used to accept Net 45 or whatever clients wanted)
  • 2/10 Net 30 discount: 2% off if paid within 10 days
  • Late fee: 1.5% per month after 30 days (spelled out clearly in engagement letter)

And here’s the script I used with my enterprise client who wanted Net 60:

"I appreciate your business, and I want to make this work. However, Net 60 terms create significant cash flow challenges for a small practice like mine. I have a few options I can offer:

  1. Net 30 terms at my standard rate
  2. Net 60 terms with a 50% deposit upfront and the remaining balance on Net 60
  3. Net 60 terms at a 15% premium to compensate for the extended financing period

Which of these works best for your AP processes?"

Guess what? They chose option 2 (50% deposit). Turns out their AP department was fine with that structure, they just defaulted to Net 60 because that’s their standard. Nobody had ever asked for different terms.

3. Client Filtering Based on Payment History

This sounds harsh, but I track each client’s payment behavior in a simple spreadsheet:

  • Average days to payment
  • Number of times I had to send reminders
  • Whether they’ve ever gone 90+ days

Clients who consistently pay 60+ days late get different treatment:

  • They pay higher rates (20% premium)
  • They’re required to prepay 50% for ongoing work
  • They’re first on my list to replace when I get better clients

I know this feels uncomfortable—we’re taught to serve everyone, be helpful, never turn away work. But Fred’s point about the ROI of saying no is real. I fired two clients last year who were chronically late payers (90+ days consistently), and replacing them with clients who pay on time reduced my stress by 80% while barely impacting revenue.

4. Cash Reserve as Stress Relief

I now keep a 2-month operating expense buffer in a separate savings account. Getting to that number took about 9 months of setting aside 15% of every payment. But once I hit it, my entire relationship with client payments changed. Late payment went from “oh god, can I make rent?” to “annoying but manageable.”

The Mindset Shift That Helped Most

For years, I felt like asking for different payment terms or charging late fees made me “difficult” or “not client-focused.” That’s backwards.

Professional services require professional payment terms. Your clients understand this when paying their lawyer, their insurance company, their landlord. They should understand it when paying you.

You’re not being difficult by protecting your business viability. You’re being sustainable, which means you’ll be around to serve them long-term instead of burning out in 18 months.

You’re going to be okay, Bob. This problem is solvable. Start with the AR tracking in Beancount so you have visibility. Then tackle the business model changes (deposits, payment terms, cash reserves). One step at a time.

Happy to share my Fava aging report setup or talk through the client conversation scripts if helpful. You’ve got this.