How to build an art commission tracker in Google Sheets — and where it breaks
August 20, 2026 · Art Commission Desk· Checked August 20, 2026
Search "art commission tracker google sheets" and every result is someone selling you a copy of theirs — three separate Etsy listings, a Ko-fi shop, a couple of Tumblr posts with a "make a copy" link and no explanation. Nobody actually walks through how to build one, or why it's shaped the way it is. This is that guide, plus the two places the format itself gives out no matter how carefully you build it.
What actually goes in it
The trackers that show up across those listings converge on roughly the same fields, which is a reasonable sign they're the ones that matter:
| Column | Why it's there |
|---|---|
| Client name / contact | Who you're talking to, and where |
| Date requested | When the queue slot was claimed |
| Deadline | Not "when you'd like to finish" — the date you told the client |
| Description | What was agreed, specifically enough to check against later |
| Price | The number, not a formula that recalculates if you touch it |
| Payment status | Unpaid / deposit / paid — its own column, not folded into progress |
| Stage | Where the piece actually is right now |
| Notes | The stuff that doesn't fit anywhere else and matters anyway |
Two of those are worth a paragraph. Payment status and stage are separate columns, not one. A commission tracker is not a to-do list — a piece can be finished and unpaid, or paid and not started, and a single "status" dropdown forces you to pick which fact to lose. Stage should be four or five values, not three. Sketched → Lined → Colored → Shaded → Final is the granularity that shows up again and again in the templates people actually keep using — generic To Do / Doing / Done means everything sits in "Doing" for two weeks and tells a client nothing.
Setting it up
A tab per client is tempting and wrong — you end up with a spreadsheet of spreadsheets and no single place to see the whole queue. One tab, one row per commission, data validation dropdowns on Stage and Payment status so a typo can't silently break a filter later.
For the client-facing question — "can I let them see their own row without seeing everyone else's" — Sheets has no field-level permission, so people improvise one of three ways:
- Share the whole file, read-only. Free, and the client sees every other client's name and price. Fine if you have two commissions open; a privacy problem the moment you have ten.
- Duplicate a filtered copy per client. A
QUERYformula (=QUERY(Master!A:H, "select B,D,G where A='ClientName'")) pulling their row into a second sheet, shared separately. It works, but it's a second document that goes stale the moment you update the master and forget to re-share, and it does not scale past a handful of active clients — this is exactly the workaround the Ko-fi-sold trackers build in as a second tab, and it's the same manual sync problem wearing a nicer template. - Protected ranges. Locks who can edit, not who can see. Solves "a stranger vandalized my board," which is a real complaint — from a thread about a public Trello board, but the same risk sits on any spreadsheet shared as editable: "I'm really just trying to make it so someone can't go into the board and move stuff around and write something offensive everywhere." It does nothing for "a client can see everyone else's price."
None of the three gets you both privacy and low effort at the same time. That's the format, not a mistake in how you built it.
Where the spreadsheet holds up, and where it gives out
It's genuinely good at: arbitrary columns (add whatever field a specific commission needs, on the spot), a real export you can hand to an accountant, and nothing is ever silently deleted the way a card can vanish off a board.
It gives out on two things:
Permission granularity. Covered above — there is no middle setting between "they see everything" and "you maintain two documents by hand." A client-safe, per-project view is not a feature Sheets has; it's a workflow you build and then have to remember to keep in sync every time something changes.
Fragility as it grows. Insert a row in the wrong place and a SUM range quietly stops including it. Delete a column a formula referenced by letter, and every calculation downstream breaks with no error — just a wrong number nobody notices until tax season. Two people editing the same tab at once is how a dropdown validation rule silently disappears from a row. None of this is a Sheets bug; it's what a general-purpose grid does under a workload — many small structured records, edited by more than one hand — that spreadsheets were never shaped for.
How we solve it
We build a workspace for commission artists, and the two failure points above are exactly what its queue is built around rather than worked around.
Visibility is two separate switches, not one. Whether a project is public at all, and whether the client-facing view shows the price and your internal notes — price and notes never leave the app regardless. There's no "share the whole file" option because there's no file; a client's link shows their project and nothing about anyone else's.
Stage lives in the data model, not in a formula. Move a project to the next stage and the public page updates itself — no second document to keep in sync, no QUERY to maintain, no dropdown to accidentally overwrite. The revenue and turnaround numbers on the creative-data page are a real aggregate query, not a SUMIF someone has to remember to extend when a new row shows up.
Two honest limits. We don't do bookkeeping — payment items are amounts and dates, not a general ledger, so if you need real accounting, that stays in a spreadsheet regardless. And it's an account, the same trade every tool in this post makes against a spreadsheet you already have open.
Related: the six ways artists track a commission queue, compared, and how to show clients progress without sharing your whole board. We make one of the tools this could turn into — everything above is meant to hold up whether or not you ever use it. If something's wrong, tell us and we'll fix it.