π₯ Watch the walkthrough: Client Advance on Expenses β a 90-second Supademo following Maya, a video producer, from logging a $500 cash advance through tagging project expenses to refunding the leftover and generating an audit-ready invoice.
If a client hands you cash up front for project expenses β parking, props, ad spend, craft services, anything the client is paying for through you β that's not income. It's a client float: pass-through money held against expenses you'll spend on their behalf. ExpenseBot tracks it using the Client advance for expenses checkbox and the Client advances section on the Income tab.
The flow in one sentence
Log the cash they gave you β tag your project expenses with the same client β watch the running net in Client advances β refund the leftover (or bill the shortfall) when the project wraps.
Step-by-step
1. Log the cash they gave you
Your client just handed you $500 for props. Record it:
In connected ChatGPT or Claude: say "Record a $500 client advance
from Acme Productions today." ExpenseBot reuses the existing client group or
prepares one canonical Client β Acme Productions group, shows the client,
date, amount, and offset treatment, and waits for your confirmation. After you
confirm, it writes one negative Cash advance received row and returns the
verified spreadsheet result. You do not need to choose an expense category or
know how client tags work.
In the app: use the existing manual-entry flow:
- Add Expense β Add Manual Expense (skip the voice screen, or use it β see below).
- Check Client advance for expenses at the top. The form changes Merchant to Client who gave you the money, Total to Amount received, and hides fields that do not apply.
- Fill in the client name (e.g., "Acme Productions") and the amount received.
- Which client? β tap the tag picker β in the CLIENTS section, tap + Add client β type the client name β Save. The client tag is created and auto-applied.
- Tap Save Expense. No category needed β it's auto-applied as "Cash advance received."
The row lands on your Expense sheet as a negative amount with the client tag. That is how ExpenseBot offsets the advance against expenses paid from it without treating the client's float as earned income.
By voice: just say it naturally β "Acme Productions gave me 500 cash advance for the shoot" β ExpenseBot recognizes the client advance and asks you to confirm the matching client group before saving.
Any Notes you supply keep the existing structured Notes contract in Column L; the connector does not invent a second notes format. Vendor refunds, card credits, reimbursements, retainers, earned fees, and generic deposits are not client advances and stay in their owning ExpenseBot flows.
2. Tag your project expenses
Every receipt you pay from that cash gets tagged with the same client. Use whichever entry path matches the moment:
- Camera capture β snap the receipt, tap π·οΈ Add Tag, tap the existing client chip (e.g., "π’ Acme Productions"), tap Accept.
- File upload β in the file list, tap Add Tag on each file, pick the client.
- Manual entry β in the Tag for Grouping picker, pick the existing client. (Leave Client advance for expenses off β this is money going out.)
- Voice β just say it naturally and pick the client tag when prompted.
You don't tag anything as a "project expense" or set a flag. Just put the client name on it; ExpenseBot figures out the rest.
Forgot to tag something at entry time? No problem β open your spreadsheet, find the row, and use the Tags dropdown in that row to set it directly. Client advances refreshes the next time you reload the Income tab.
3. Check the running net anytime
Go to Add Income at the top of the page. Above the income list you'll see a Client advances section. It appears only for a client whose ledger contains a genuine negative Cash advance received row. Ordinary client-tagged expenses, vendor credits, and cancellation refunds stay in their normal report or credit workflows and do not create an advance balance.
For each advance-backed client with a non-zero balance, ExpenseBot shows the current lifetime net. There is no rolling cutoff: an unsettled advance remains part of the balance until it is fully reconciled.
In connected ChatGPT, Claude, or another MCP client: ask "How much of Acme's client advance remains?" ExpenseBot reads the same Client advances projection used by the app and returns the balance in your home currency. It does not estimate from conversation history or add the rows itself. A negative ledger net is shown as money to refund; a positive ledger net is shown as money the client owes you. The answer links back to Client advances for the existing Refund leftover or report-and-Bill Client handoff.
Acme Productions C$300.00 to refund [ β» Refund leftover β ]
- "to refund" (green) β you're still holding client cash; refund the leftover when the project wraps
- "owed to you" (amber) β you spent more than the advance; the client owes you
The widget updates automatically β log a new project expense and the net shifts immediately, no reload needed. Once a client's net hits zero, that client's row hides itself.
4. Settle up at the end of the job
If you have leftover client money (most common β green "to refund"):
- Tap Refund leftover on the widget row.
- The expense form opens pre-filled β vendor is the client name, amount is the leftover, the client tag is already attached, notes say "Refund of leftover client cash advance."
- Tap Save Expense.
The widget hides the row once the balance hits zero. Done.
If you spent more than they gave you (amber "owed to you"):
- Go to My Reports β create a new expense report filtered by the client tag.
- On the report card, tap Bill Client β that generates a Google Doc invoice with all the line items including the advance as a credit. Email it via Gmail draft.
- When the client pays, log the bank deposit as normal income.
If you start from Bill Client, ExpenseBot also offers Record client advance above the invoice totals when the report has a client tag. It opens the same Add Expense workflow with the client and advance treatment already selected; there is no second client-cash form to learn.
When you record a client advance from the Bill Client modal, a checkbox reads "Also tag this report's N expenses as Client β <Name>" (on by default). Checking it retags every expense in the report to the client tag β useful when you already have receipts tagged with a trip name (e.g. Trip β Berlin) and want them to feed the client-advance ledger without re-tagging each one. The retag uses exact Receipt-ID identity from Column Q of your spreadsheet and overwrites the current tag. You can untick the box if you want to record the advance without changing existing tags.
Long client names get a short tag automatically: if the client is "ACME Hotel
Chicago, Outset Collection by Hilton", the tag becomes something like
Client β ACME Hilton so it stays usable in the tag picker and reports. The
checkbox shows the exact tag before you save, and the invoice's Bill To keeps
the full name.
Real example β Sarah's product shoot
| Step | What happened | What Sarah did | Widget showed |
|---|---|---|---|
| Mon | Acme producer hands Sarah $500 cash | Voice: "Acme gave me 500 cash advance" β advance checkbox on, tagged Client β Acme Productions | C$500.00 to refund |
| Tue | $42 parking at the venue | Photo receipt β category Travel, tagged Client β Acme Productions | C$458.00 to refund |
| Wed | $187 craft services | Voice: "187 craft services at Whole Foods" β tagged Acme | C$271.00 to refund |
| Thu | $70 misc supplies | Photo receipt β tagged Acme | C$201.00 to refund |
| Fri | Project wraps | On Add Income, tapped Refund leftover β confirmed $201 β Saved | Row disappears (net = 0) |
If Sarah had overspent β say $700 of expenses on the $500 advance β the widget would have shown "C$200.00 owed to you" with the hint to run an expense report and click Bill Client.
Want to try it without using a real client?
Five minutes, end to end:
- Add Expense β Add Manual Expense β Client advance for expenses ON β client "Test Productions", Amount 500, Which client β + Add client β "Test Productions" β Save β Save Expense.
- Go to Add Income. Confirm Client advances shows "Test Productions: C$500.00 to refund."
- Add Expense β Add Manual Expense β advance checkbox OFF β Merchant "Props Plus", Amount 200, tag with "Test Productions" β Save.
- Back to Add Income. Widget now shows "C$300.00 to refund" β no reload needed.
- Tap Refund leftover on the row β Save Expense.
- Back to Add Income. Widget hides itself (balance = 0).
Why this is the right shape β Schedule C and your accountant
Cash advances from clients aren't income β they're the client's money held in trust. If you report the $500 as gross receipts on Schedule C Line 1 and the $299 of expenses as deductions, your gross is inflated by $500. The IRS calls this "accountable plan" treatment: the advance is non-taxable as long as you substantiate the expenses and return any excess.
ExpenseBot records the advance as a negative on the expense ledger and offsets it against expenses carrying the same client tag. This workflow is only for genuine pass-through funds supplied for expenses; confirm the tax treatment when the arrangement is more complex.
What about a regular client retainer / deposit?
Do not use this checkbox merely because money arrived before the work. A fee or retainer you earn belongs in Add Income. Use the client-advance workflow only when the money is specifically a float for costs you will pay on the client's behalf and reconcile back to that client.
What it does NOT replace
- Service fees / project payments you've earned go on the Income tab as real income.
- Vendor refunds and card credits use ExpenseBot's Credits & Refunds review and matching workflow. They are not client advances and should not be assigned to a client merely to use this checkbox.
- Tax filing. ExpenseBot tracks the data; your accountant (or tax software) uses it on Schedule C. Confirm the treatment if you have a complex arrangement.
TL;DR
Use Client advance for expenses when a client gives you a float for costs you will pay on their behalf. Create or select that client tag, then use the same tag on every related expense. Client advances shows the lifetime running net; Refund leftover or Bill Client closes it out. A client tag by itself never creates an advance balance.
Once you bill expenses to the client, those billed expenses stop counting against the advance β the invoice's deduction takes over. Your remaining advance is what the client gave you, minus what you've spent on their behalf that has NOT been billed, minus what invoices have already applied. Voiding or regenerating an invoice frees the advance it had applied.
