owner-moneyVersion 1.0

Payment follow-up system

An overdue invoice needs a plan, not another awkward email. This free skill runs the reminder cadence, from first nudge to late fee, until the client pays.

“I used to feel bad for asking to be paid for my work in a timely manner.”
Fractional Fridays

The problem

A client who has gone quiet on an invoice responds better to a predictable sequence than to one more email written from scratch each time. This system tracks days overdue against the invoice record, drafts the right message for whatever stage the invoice is at, applies a late fee only when the original contract disclosed one in writing, and tells the owner when to pause work, send a final notice, or move to collections.

Payment follow-up system

Key takeaways

  • Record every invoice's due date the moment it's sent; the whole cadence runs off days overdue, not memory.
  • The escalation ladder has fixed stages: pre-due reminder, day-of reminder, day 7 follow-up, day 14 channel switch, day 30 formal notice with late fee, day 60 to 90 final notice.
  • A late fee is only chargeable if its exact rate was disclosed in writing in the original signed contract; it cannot be added after the fact.
  • In NYC and a growing list of other states, a written contract is legally required once a client engagement reaches $800, with double damages for nonpayment under the law.
  • Every drafted reminder goes to the owner for approval before it leaves the draft state; nothing sends automatically.
  • The ladder stops the instant the client pays or replies with a firm payment date, so no reminder goes out into an already-resolved thread.
SKILL.md

Frontmatter

name
payment-followup-system
description
Runs the escalation cadence for a client invoice that has gone unpaid, from a friendly pre-due reminder through a final notice, drafting every touch for the owner's approval before anything sends, and installs the upstream contract terms that make the cadence enforceable. Use when an invoice is unpaid past its due date, when a client has gone quiet after work was delivered and invoiced, or when setting up a new client contract so payment terms are defined before work starts. Triggers include "client hasn't paid me", "overdue invoice", "how do I ask a client for payment", "chase a late invoice", "client ghosted after I sent the invoice".

Payment follow-up system

This skill runs a fixed escalation cadence for an invoice that has gone unpaid, from the first pre-due reminder through a final notice, and installs the upstream contract terms that make the cadence enforceable when a client stops responding. Invoke it when the user reports an invoice past its due date, a client who has stopped responding after work was delivered and billed, or when setting up a new client contract and payment terms have not been defined yet.

The bundle carries what each phase needs: references/prevention-checklist.md (the contract and deposit terms to set before work begins), references/escalation-ladder.md (the day-by-day cadence and the channel-switching rule), references/message-templates.md (the touch template for each rung of the ladder), references/late-fee-rules.md (when a late fee is legally chargeable and at what rate), references/stop-work-trigger.md (when to pause work, fire a client, or move to collections), references/invoice-tracking-log.md (the per-invoice ledger that carries due date, current rung, and last-touch date and channel across separate runs, so the cadence never has to be reconstructed from the raw thread), and examples/escalation-thread-example.md (a filled worked thread showing the full cadence end to end, tracking log included).

Phase 1: set up payment terms (once per client or contract)

  1. When the user starts a new client contract or sends a first quote, read references/prevention-checklist.md and confirm the contract states three things: a deposit or upfront percentage, a payment due date (default to net 30 if the client's own terms don't specify one), and a late-fee clause with its exact rate disclosed in advance. If any of the three is missing, flag it to the user before work begins. Do not let work start silently on an incomplete contract.
  2. Check whether the engagement crosses the threshold that triggers a written-contract law: in NYC, the Freelance Isn't Free Act applies once the engagement reaches $800 within a 120-day window, and several other states and cities (California, Illinois, Minnesota, and others) run a parallel rule. Reference the threshold in references/prevention-checklist.md. If it applies, tell the user a written contract is not optional here: without one, they have no statutory backing if the client stops paying, and with one, nonpayment can carry double damages under the law.
  3. The moment an invoice is sent, record its due date as a new row in references/invoice-tracking-log.md, with Current rung set to none. Phase 2 uses this date to compute where each open invoice sits in the cadence, so an invoice with no recorded due date cannot be worked by this skill until the user supplies one.

Phase 2: run the escalation cadence (every time an invoice crosses its due date)

  1. On each check, whether run daily or on the user's request, read references/escalation-ladder.md and the current state in references/invoice-tracking-log.md, then compute days overdue for every open invoice on the log. Determine which rung is due: a pre-due reminder a few days before the due date, a day-of reminder, a firm follow-up at day 7, a follow-up with a channel switch (adding text or a phone call alongside email) at day 14, a formal notice at day 30 that applies the disclosed late fee, and a final notice between day 60 and day 90 ahead of collections or small claims. Compare the rung that days-overdue count points to against the Current rung already on file for that invoice; if the log shows that rung's touch already went out, move to the next open invoice instead of drafting a repeat.
  2. Select the matching template from references/message-templates.md for the rung that is due. Fill it with the client name, invoice number, amount, and due date pulled from the invoice record. Never invent a name, amount, or date that is not present in the invoice or the message thread.
  3. Present the drafted touch to the user for approval before it leaves the draft state. Never send, schedule, or queue a payment reminder, notice, or any variant of this message without an explicit yes from the user in that turn.
  4. On approval, hand the approved text to the user's own send channel, whether that's email, SMS, or the invoicing tool itself. This skill drafts the message. It never sends one itself.
  5. Record the touch as sent in references/invoice-tracking-log.md: set Current rung to the rung just sent, and fill in the last-touch date and channel. Stop the ladder the moment the client pays or replies with a firm payment date, updating the invoice's Status in the same file. Never let a queued touch go out into a thread that is already paid or already answered.

Phase 3: apply a late fee or move to formal collection (day 30 and beyond, only when the contract allows it)

  1. Before adding a late fee to any invoice, read references/late-fee-rules.md and confirm the original contract disclosed the exact rate in advance, in writing. A late fee that was not pre-disclosed in a signed agreement is not chargeable after the fact in most US states. Do not add one retroactively.
  2. If the contract does disclose a late fee, apply the rate on file, typically 1 to 2 percent of the balance per month or a flat fee in the $25 to $50 range, and note it on the day-30 formal-notice touch from references/message-templates.md. Use the rate written into the contract, never a different one.
  3. At day 60 to 90 with no payment and no response, read references/stop-work-trigger.md for the choice between a final written notice citing the contract terms, a formal demand letter, or referral to a collections agency or small claims filing. Present the user with the decision and the full documentation trail (the contract, the invoice, and every logged touch from references/invoice-tracking-log.md) rather than choosing a path on the user's behalf.
  4. If the client is still an active engagement with unfinished work, read the pause-at-the-trigger rule in references/stop-work-trigger.md: work pauses at the payment milestone written into the contract, not after the fact once things have already gone sideways. This only applies if the contract specifies a payment-linked milestone. If it doesn't, flag that gap back to Phase 1 for the next contract.

Copy-paste checklist: before sending any touch

  • references/invoice-tracking-log.md checked for this invoice's Current rung before drafting anything
  • Correct rung selected for the actual days-overdue count on this invoice
  • Client name, invoice number, amount, and due date all pulled from the invoice record, nothing invented
  • Draft shown to the owner and approved in this turn before anything left the draft state
  • Late fee, if included, matches the rate pre-disclosed in the signed contract
  • Ladder stopped immediately if the client has paid or replied with a payment date
  • Tracking log updated with the rung, date, and channel once the touch is sent

Copy-paste checklist: new contract setup

  • Deposit or upfront percentage stated
  • Due date stated, or explicitly defaulted to net 30
  • Late-fee rate stated in advance, in writing, if the owner wants that option available later
  • Freelance Isn't Free Act or parallel state and city threshold checked when the client is a business and the engagement is likely to cross $800 within 120 days

Guardrails: the ways this fails

  • Never fabricate a client name, invoice amount, due date, or contract term that is not present in the source invoice or contract. If the record is incomplete, ask the user rather than guessing.
  • Never auto-send, schedule, or queue a reminder, notice, or any message this skill drafts. Every touch is drafted, shown, and approved before it leaves the draft state.
  • Never apply a late fee that was not pre-disclosed in a signed agreement before the work started.
  • Never present the legal thresholds in references/late-fee-rules.md or references/prevention-checklist.md as settled for every jurisdiction. State what the reference documents, and tell the user to confirm current rules with a lawyer or their state's consumer-protection office before relying on a number in an actual dispute.
  • Never decide unilaterally to fire a client, send an account to collections, or file small claims. Present the decision and the reasoning, and let the user choose.
  • Stop the ladder the instant the client responds or pays. Never send a scheduled touch into an answered or settled thread.

Install

  1. Download the .skill bundle, or the raw SKILL.md above.
  2. Unzip the bundle into your agent's skills directory. SKILL.md sits at the top level; any reference files sit beside it.
  3. Point your agent at the folder. It reads SKILL.md and follows it.

What's in the bundle

The .skill download contains SKILL.md plus these files, each at its path.

SKILL.mdthe skill on this page
references/prevention-checklist.md3,569 chars
# Prevention checklist: contract terms before work starts

Use this before the first invoice goes out, not after the first one goes unpaid. Every item here is something you set once, in the contract or the first quote, and it changes how every future invoice behaves.

## The three terms every contract needs

- [ ] **Deposit or upfront percentage.** A standard range is 25 to 50 percent before work begins. State the exact number and when it's due (on signature, not "before we start").
- [ ] **Due date.** State a real date or a real term, "net 15," "net 30," "due on delivery." If the client's own paperwork sets terms, that's fine, but write it into your contract too so both sides are looking at the same number. If nothing is specified anywhere, default to net 30 and say so in writing.
- [ ] **Late-fee rate, disclosed in advance.** A rate you never wrote down cannot be charged later no matter how late the invoice runs. State the exact rate now: a common structure is 1 to 2 percent of the balance per month, or a flat fee in the $25 to $50 range. See `late-fee-rules.md` for why disclosure has to happen before work starts, not after.

If any of the three is missing from a contract in front of you, stop and add it before work begins. A contract with all three still gets ignored by some clients. A contract missing one of them gives you nothing to enforce when that happens.

## The written-contract threshold

Several US states and cities require a written contract once a freelance engagement crosses a dollar threshold, and treat nonpayment on a covered contract as a bigger deal than an ordinary breach.

| Location | Threshold | What happens on nonpayment |
|---|---|---|
| New York City (Freelance Isn't Free Act) | $800 within any 120-day period, one client | Client owes double the unpaid amount, plus attorney's fees, if the case goes to enforcement |
| California | Similar written-contract requirement, statewide | Statutory penalties on top of the unpaid balance |
| Illinois | Similar written-contract requirement, statewide | Statutory penalties on top of the unpaid balance |
| Minnesota | Similar written-contract requirement, statewide | Statutory penalties on top of the unpaid balance |

Rates, dollar thresholds, and covered cities change. Confirm the current number for your state or city before relying on it in an actual dispute, this table is a starting point, not a legal opinion.

If your engagement is likely to cross the threshold and there's no signed contract yet, get one signed before the next milestone. Without a written contract, you're relying on general contract law and whatever emails exist. With one, you have a specific statute backing you up if the client goes quiet.

## What "specifies a payment milestone" means

If work is ongoing (a retainer, a multi-phase project), write the pause point into the contract itself: "Phase 2 work stops if Phase 1 invoice is unpaid 14 days past due." That sentence is what lets you pause work later without it reading as you walking off the job. Without that sentence in the contract, pausing mid-engagement is a judgment call with less cover. See `stop-work-trigger.md` for how this gets used once an invoice is actually overdue.

## Recheck this on every new client, every time

Don't assume last year's template still has the right numbers in it. Rates change, and your own minimum deposit percentage may have changed since the last contract you sent. Pull the current template, confirm all three boxes above are filled in with today's numbers, and only then send the quote.
references/escalation-ladder.md3,013 chars
# Escalation ladder: the cadence, rung by rung

Run this against every open invoice, not just the ones you remember are late. Compute days overdue as (today minus due date). A negative number means the invoice isn't due yet, keep it out of the ladder until it crosses zero.

## The ladder

| Rung | Timing | Channel | Tone | What it does |
|---|---|---|---|---|
| 1. Pre-due reminder | 3 to 5 days before due date | Email | Friendly, informational | Confirms the invoice arrived and the date it's due. Nothing accusatory, most clients at this rung haven't done anything wrong yet |
| 2. Day-of reminder | Due date itself | Email | Friendly, still assuming good faith | A short nudge on the day payment is due |
| 3. Firm follow-up | Day 7 overdue | Email | Direct, no longer assuming it was an oversight | States the invoice is now a week late and asks for a payment date |
| 4. Channel-switch follow-up | Day 14 overdue | Email plus text or phone call | Firm, personal | The rule below explains why the channel changes here |
| 5. Formal notice | Day 30 overdue | Email, formal tone, invoice reattached | Formal | States the late fee is now applying (see `late-fee-rules.md`) and restates the total owed |
| 6. Final notice | Day 60 to 90 overdue | Email, certified mail if the amount justifies it | Final | States the next step is collections or small claims if payment doesn't arrive by a stated date |

## The channel-switching rule

Email alone stops working around day 14 for a client who has already ignored two emails. The rule: at day 14, add a second channel, a text message or a phone call, alongside the email rather than instead of it. A client who has muted your email thread may still see a text, which is the whole reason the channel changes here.

Never switch channels earlier than day 14. Two channels of pressure before day 7 reads as chasing a client for a genuinely fresh invoice, and burns goodwill you may need later in the relationship.

## Computing which rung is due

For each open invoice:

1. Pull the due date from the invoice record (see Phase 1, step 3, of the main skill: an invoice with no recorded due date can't be placed on the ladder).
2. Compute days overdue.
3. Match that number against the table above. If days overdue falls between two rungs (say, day 20), use the most recent rung that's already been crossed (rung 4, the day-14 channel switch) rather than jumping ahead.
4. Check that invoice's row in `invoice-tracking-log.md` for whether that rung's touch has already been sent. If it has, do nothing, wait for the next rung. If it hasn't, that's the touch to draft.

## Stopping conditions

Stop the ladder immediately, at any rung, the moment either of these happens:

- The client pays the invoice in full.
- The client responds with a specific payment date you can hold them to.

Do not let a queued or already-drafted touch go out after either of these. Check the invoice and thread status again right before sending, not just when you first computed the rung.
references/message-templates.md3,955 chars
# Message templates: one per rung

Fill every bracket from the invoice record or the message thread. Never guess at a name, a date, or an amount, if a field is missing, go back to the owner and ask rather than filling it with a placeholder that looks real.

Every template here is a draft. None of them leave the draft state without the owner's explicit yes in that turn.

---

## Rung 1: pre-due reminder (3 to 5 days before due date)

Subject: Invoice [invoice number] due [due date]

Hi [client name],

Just a heads-up that invoice [invoice number] for [amount] is due on [due date]. Attached again in case the first copy got buried.

Let me know if anything's needed on your end to process it.

Thanks,
[your name]

---

## Rung 2: day-of reminder (due date)

Subject: Invoice [invoice number] due today

Hi [client name],

Invoice [invoice number] for [amount] is due today. If it's already scheduled on your end, no need to reply, just flagging it in case it slipped.

Thanks,
[your name]

---

## Rung 3: firm follow-up (day 7 overdue)

Subject: Invoice [invoice number], now a week overdue

Hi [client name],

Invoice [invoice number] for [amount] was due [due date] and is now a week past that. Can you confirm a date I can expect payment by?

If there's an issue with the invoice itself, let me know and I'll sort it out.

Thanks,
[your name]

---

## Rung 4: channel-switch follow-up (day 14 overdue)

Send this by email, and pair it with a text or a call the same day (see `escalation-ladder.md` for why the channel changes here).

**Email:**

Subject: Invoice [invoice number], 2 weeks overdue, please advise

Hi [client name],

I haven't heard back on invoice [invoice number] for [amount], now two weeks past its [due date] due date. I'd like to get this resolved this week. Can we get on a call, or can you confirm a payment date?

[your name]

**Text (short, same day):**

Hi [client name], following up on invoice [invoice number] ([amount]), now 2 weeks overdue. Can you give me a call or confirm when I can expect payment? Thanks, [your name]

---

## Rung 5: formal notice with late fee (day 30 overdue)

Only include the late-fee line if the contract disclosed the rate in advance in writing. See `late-fee-rules.md` before sending this.

Subject: Formal notice: invoice [invoice number], 30 days overdue

Hi [client name],

Invoice [invoice number] for [amount], due [due date], remains unpaid at 30 days overdue. Per the payment terms in our signed agreement dated [contract date], a late fee of [late fee rate, e.g. "1.5% per month"] now applies, bringing the total owed to [amount plus late fee].

Invoice reattached. Please remit payment by [date, typically 7 to 10 days out] to avoid further escalation.

[your name]

---

## Rung 6: final notice (day 60 to 90 overdue)

Subject: Final notice: invoice [invoice number] before further action

Hi [client name],

This is a final notice regarding invoice [invoice number] for [amount plus any applicable late fee], now [days overdue] days past due. Despite [number] prior attempts to reach you on [dates of prior touches], the balance remains unpaid.

If payment in full is not received by [date, typically 7 days out], I'll be referring this to [collections / small claims court] to recover the amount owed, along with any applicable fees.

I'd still rather resolve this directly. Please contact me by the date above.

[your name]

---

## Rules for every template above

- Pull client name, invoice number, amount, and due date from the invoice record, never from memory.
- Never fill a bracket with an invented number or date. An empty bracket is a signal to ask, not to guess.
- Show the filled draft to the owner before it leaves the draft state, every single time, at every rung.
- Do not send a rung-4, rung-5, or rung-6 template into a thread where the client has already replied with a payment date or already paid, check the thread's current state right before sending.
references/late-fee-rules.md2,624 chars
# Late-fee rules: when a fee is actually chargeable

The short version: a late fee has to be disclosed in writing before the work started. Adding one after the fact, no matter how late the invoice is, generally doesn't hold up in most US states.

## The disclosure test

Before adding a late fee to any invoice, confirm both of these are true:

- [ ] The original signed contract or agreement states a specific late-fee rate, not "a reasonable late fee" or "fees may apply," an actual number.
- [ ] That contract was signed, or otherwise agreed to in writing, before the work began, not sent alongside the overdue invoice itself.

If either box is unchecked, do not add a late fee to this invoice. Note the gap and fix it in the next contract using `prevention-checklist.md`, but don't retroactively apply a fee that was never agreed to.

## Typical rates, if the contract sets one

Contracts that do disclose a rate usually land in one of these ranges:

- **Percentage-based:** 1 to 2 percent of the outstanding balance per month (12 to 24 percent annualized). Some states cap the maximum allowable rate, check your state's usury or late-fee cap before setting a number in a new contract.
- **Flat fee:** 25 to 50 dollars per late invoice, sometimes compounding if the invoice is small enough that a percentage wouldn't be meaningful.

Use whichever rate is actually written into the contract in front of you. Never substitute a different number because it looks more standard, the contract's number is the only one that's enforceable.

## Applying the fee

1. Confirm the disclosure test above passes.
2. Pull the exact rate from the contract, don't round it or estimate it.
3. Calculate the fee on the outstanding balance as of the day it's applied (typically day 30 on the escalation ladder, see `escalation-ladder.md`).
4. Note the new total (original balance plus fee) on the day-30 formal notice from `message-templates.md`.
5. If the invoice remains unpaid into a second late period and the contract allows fees to compound monthly, recalculate for each new period, always against the contract's stated rate, never a higher one added out of frustration.

## What this file is not

This is a starting reference, not legal advice, and not a substitute for confirming current law. Late-fee caps, disclosure requirements, and what counts as "in writing" vary by state and change over time. Before relying on a specific number or rule in an actual dispute, confirm the current rule with a lawyer or your state's consumer-protection office. Never present a rate or a rule from this file as settled for every jurisdiction.
references/stop-work-trigger.md3,548 chars
# Stop-work trigger: pausing work, firing a client, or going to collections

Three separate decisions live in this file. They apply at different points and none of them get made for the owner, this file is a decision guide, not an auto-pilot.

## Decision 1: pausing work mid-engagement (any time a milestone is unpaid)

This only applies if the contract specifies a payment-linked milestone (see `prevention-checklist.md`, "What specifies a payment milestone means"). If it doesn't, there's no contractual trigger to pause on, flag the gap back to Phase 1 for the next contract instead of improvising one now.

If the contract does specify a milestone:

- [ ] Confirm the milestone's invoice is the one that's overdue, not a different, unrelated invoice.
- [ ] Confirm the number of days overdue matches or exceeds what the contract states as the pause trigger.
- [ ] Pause new work at that point, the point the contract names, not earlier out of frustration and not later out of guilt.
- [ ] Tell the client plainly that work is paused and cite the contract clause, don't let the client find out by silence.

Pausing at the pre-agreed point is enforcing a contract. Pausing before that point, or without ever having named a trigger, reads as walking off the job.

## Decision 2: the day-60-to-90 choice, once the final notice's deadline passes

At this point three paths are available. None of them is automatically correct, the right one depends on the amount owed, the relationship, and how much time collections or small claims will cost relative to the invoice.

| Path | When it fits | What it costs the owner |
|---|---|---|
| Formal demand letter (often via a lawyer) | Larger invoices, an ongoing relationship worth salvaging if the client suddenly pays | A one-time legal fee, usually a few hundred dollars for a template letter |
| Collections agency | Smaller invoices where the owner's time is worth more than chasing further | The agency typically keeps 20 to 50 percent of what's recovered |
| Small claims court | Invoices within the state's small claims cap (commonly 5,000 to 10,000 dollars, varies by state), where the owner wants to see it through | Filing fee (usually under 100 dollars) and the owner's own time to appear |

Present all three, with the documentation trail below, and let the owner choose. Don't default to one path because it's the easiest to draft.

## The documentation trail (needed for any of the three paths)

Before presenting the decision, confirm this trail is complete:

- [ ] The signed contract (or the written agreement establishing the terms)
- [ ] The original invoice
- [ ] Every logged touch from `invoice-tracking-log.md`, with its date and channel (Phase 2, step 8 of the main skill)
- [ ] Any reply the client sent, including ones that promised a date and then went unmet

A collections agency or a small claims court will ask for this trail. Missing pieces weaken the case regardless of which path gets chosen.

## What never happens here

- Never choose the path (demand letter, collections, small claims) unilaterally. Present the three options with their tradeoffs and let the owner decide.
- Never fire a client or send an account to collections based on a single missed rung of the ladder, this decision only comes up after the full cadence in `escalation-ladder.md` has run its course to the final notice.
- Never pause work at a point the contract didn't specify, that's a relationship decision for the owner to make consciously, not a default this file should trigger on its own.
references/invoice-tracking-log.md2,687 chars
# Invoice tracking log: the per-invoice ledger this skill runs on

This file turns the escalation cadence in `escalation-ladder.md` into something repeatable: check it before every touch, update it after every touch. Without a written row per invoice, a run next week would have no way to know what already went out short of re-reading the whole thread.

## Columns

| Column | What goes here |
|---|---|
| Invoice # | The invoice number, pulled from the invoice record, never invented |
| Client | Client name |
| Due date | The date recorded in Phase 1, step 3 of the main skill |
| Current rung | The last rung whose touch has actually been sent, 1 through 6, or "none" if the invoice hasn't crossed its due date yet |
| Last touch date | The date the most recent touch was sent |
| Last touch channel | Email, text, phone call, or certified mail |
| Status | Open, Paid, Payment date confirmed, or Escalated |
| Notes | A broken promise date, a dispute over the invoice itself, a milestone pause in effect, anything that doesn't fit the columns above |

## Template row (copy this row for each new invoice)

| Invoice # | Client | Due date | Current rung | Last touch date | Last touch channel | Status | Notes |
|---|---|---|---|---|---|---|---|
| [invoice number] | [client name] | [due date] | none | | | Open | |

## How to use this file across separate runs

1. When Phase 1, step 3 records a new invoice's due date, add a new row here with Current rung set to "none."
2. Every time Phase 2 runs, whether daily or on request, read this file before drafting anything. For each open invoice, compute days overdue against the due date column, then compare that against Current rung to find the next rung due. If Current rung already matches or exceeds the rung the days-overdue count points to, that touch already went out. Skip it and move to the next open invoice.
3. After a touch is approved and sent (Phase 2, step 8 of the main skill), update that invoice's row: set Current rung to the rung just sent, and fill in Last touch date and Last touch channel.
4. The moment an invoice's status changes to Paid or Payment date confirmed, update the Status column immediately. A row marked Paid or Payment date confirmed is never read as a source for a new touch.
5. If an invoice reaches Decision 2 in `stop-work-trigger.md` (the day-60-to-90 choice), set Status to Escalated once the owner picks a path, and record which path in the Notes column.

## Keep it accurate

A stale row is worse than no row: it tells the next run a touch already went out when it didn't, or the reverse. Update the row in the same turn the touch is sent, not at the end of a batch of several invoices.
examples/escalation-thread-example.md5,352 chars
# Escalation thread example: one invoice from due date to payment

This is a filled walkthrough of the cadence in `escalation-ladder.md`, using one invoice as the example, run all the way through every rung to its resolution. The names, dates, and numbers below are illustrative. Pull the real invoice record before using any of this as a template for an actual client.

## The invoice

- Invoice #1042, Fenwick Studio, $4,200, due date March 3.
- Contract on file: 30 percent deposit paid on signature, net 30 terms, late fee of 1.5 percent per month disclosed in the signed agreement.

## Tracking log for this invoice, as it evolves

| Invoice # | Client | Due date | Current rung | Last touch date | Last touch channel | Status | Notes |
|---|---|---|---|---|---|---|---|
| 1042 | Fenwick Studio | Mar 3 | none | | | Open | |

## Rung 1: pre-due reminder (Feb 27)

Four days before the due date. The heads-up goes out by email, friendly and informational, no follow-up expected yet. Tracking log updated: Current rung set to 1, Last touch date Feb 27, Last touch channel Email.

## Rung 2: day-of reminder (Mar 3)

No reply to rung 1. The day-of nudge goes out on the due date itself, still assuming good faith, by email. Tracking log updated: Current rung set to 2, Last touch date Mar 3, Last touch channel Email.

## Rung 3: firm follow-up (Mar 10)

Seven days overdue, still no reply. The tone shifts here, this one states the invoice is a week late and asks directly for a payment date. Sent by email. Tracking log updated: Current rung set to 3, Last touch date Mar 10, Last touch channel Email.

## A skipped check (Mar 12)

Phase 2 runs again two days later as part of the daily check. Days overdue for invoice 1042 is 9, which still maps to rung 3 on the ladder (day 7 through day 13, ahead of the day-14 channel switch). The tracking log already shows Current rung 3, sent Mar 10. That rung's touch already went out, and the days-overdue count has not yet crossed into rung 4, so nothing gets drafted for this invoice today. The run moves on to the next open invoice on the log. No row changes.

## Rung 4: channel-switch follow-up (Mar 17)

Fourteen days overdue. Per the channel-switching rule in `escalation-ladder.md`, this rung pairs the email with a same-day text rather than replacing it. Both go out on Mar 17. Tracking log updated: Current rung set to 4, Last touch date Mar 17, Last touch channel Email plus text.

No reply comes back this time, by text or by email. The ladder continues.

## Rung 5: formal notice with late fee (Apr 2)

Thirty days overdue, still no response. Per `late-fee-rules.md`, the disclosure test is checked first: the signed contract states a rate of 1.5 percent per month, agreed to in writing before work began, so the fee is chargeable. The fee is calculated on the outstanding balance as of this date: $4,200 times 1.5 percent equals $63, bringing the total owed to $4,263. The formal notice states this new total, reattaches the invoice, and is sent by email. Tracking log updated: Current rung set to 5, Last touch date Apr 2, Last touch channel Email.

## Rung 6: final notice (May 2)

Sixty days overdue. The notice cites the four prior attempts on Feb 27, Mar 3, Mar 10, and Mar 17, plus the Apr 2 formal notice, and states that the full $4,263 is due within 7 days, by May 9, or the account moves to the day-60-to-90 decision in `stop-work-trigger.md`: a demand letter, a collections agency, or small claims. Sent by email, with a certified-mail copy given the amount involved. Tracking log updated: Current rung set to 6, Last touch date May 2, Last touch channel Email plus certified mail.

## Resolution (May 5)

Fenwick Studio's bookkeeper wires the full $4,263 on May 5, three days after the final notice and four days ahead of the May 9 deadline. Per the stopping conditions in `escalation-ladder.md`, the ladder stops here. The day-60-to-90 decision in `stop-work-trigger.md` never gets presented to the owner, since payment arrived before that deadline passed.

Tracking log updated once more: Status set to Paid, Notes set to "Paid in full including late fee, wire received May 5, four days ahead of final-notice deadline."

## What this example shows

- The tracking log gets read before every touch and written after every touch, treated as required state, not optional bookkeeping.
- A check that finds the current rung already sent, with the days-overdue count still short of the next rung, skips drafting and moves to the next invoice instead of repeating a touch.
- The channel switch at rung 4 adds a text alongside the email, per the rule in `escalation-ladder.md`, rather than dropping email in favor of the new channel.
- A late fee only gets applied once the disclosure test in `late-fee-rules.md` passes, using the exact rate written into the contract, never rounded or estimated.
- The ladder can run all the way to the final notice and still resolve without reaching the collections decision in `stop-work-trigger.md`, if payment lands before that deadline passes. Had it not, the next step would have been presenting the three paths in that file, along with the full documentation trail.
- A specific payment date and payment in full are each their own stopping condition. Whichever one happens first ends the run, whether that's at rung 4 or, as here, after rung 6.

Sources

Merged from the top existing skills on the topic, with credit to every input.

Frequently asked questions

My client hasn't paid and it's been three weeks. What do I send now?

Count the days since the due date, not the invoice date, then match that number to the ladder: day 7 gets a firm but polite follow-up, day 14 adds a second channel like text or a phone call alongside email. Three weeks overdue typically sits between those two stages.

Can I charge a late fee if I never mentioned one when I sent the quote?

In most US states, no. A late fee only holds up if the exact rate was disclosed in writing in the signed contract before work started. Add the clause to future contracts instead of trying to apply a fee retroactively on this one.

How long do I wait before I stop working for a client who won't pay?

If the contract has a payment-linked milestone, work pauses there, not after things have already gone sideways. With no reply by day 60 to 90, it's time to weigh a final notice, a demand letter, or collections.

Do I actually need a written contract to chase payment?

Once a client engagement crosses roughly $800 in places like New York City, yes, by law, and several other states run similar rules. Without one, there's no statutory backing if the client stops paying; with one, nonpayment can carry double damages.

What do I say when a client goes completely quiet after I send the invoice?

Use the day 7 or day 14 template depending on how long they've been silent, and add a second contact channel at day 14 rather than repeating the same unanswered email.

What happens after the final notice if the client still hasn't paid?

That's the point to hand the full paper trail, the contract, the invoice, and every logged touch, to a collections agency or file in small claims, rather than sending yet another reminder.