Blog · Running a studio

A video production tracker spreadsheet, column by column

The 13 columns a video production tracker needs, a filled example you can paste into Google Sheets, dropdowns and overdue highlighting, and the signs that the spreadsheet has stopped keeping up.

Samuel SilvaOctober 15, 2026 · 8 min read
Task table grouped by client, with each video’s code, version, phase, hours worked, estimated and remaining, deadline and status

Most studios track production in a spreadsheet before they track it anywhere else, and for a while it works. The sheet pays for itself the first time a producer answers “where are we on the Northwind cutdowns?” without scrolling through three chat threads.

How long it keeps working depends on the columns. A tracker with Title, Status and Deadline lasts about a month. The one below has thirteen, and each answers a question somebody in the studio will ask this week.

In short

  • Give each video the client approves on its own a row, with thirteen columns from code to delivered on.
  • Keep Status and Waiting on as separate columns, and add an internal deadline a few days before the client’s date.
  • In Google Sheets, turn Status, Phase and Waiting on into dropdowns and let conditional formatting color the late rows.
  • The sheet stops keeping up when version, review link and waiting on change elsewhere and someone has to copy them in by hand.

The columns every tracker needs

Give each video the client approves on its own a row, the same rule that keeps a production board useful. The project is a column, and versions are a number inside the row.

Column What goes in it
Code A short unique ID, like NWF_014, that also starts the file name
Client Who pays for the video
Project The campaign or series it belongs to
Title A short name people recognize
Status What’s happening to it this week, from a fixed list
Phase Planned, pre, shoot, post or finished
Owner One person. Two names means nobody owns it
Due date The date promised to the client
Internal deadline Your own date, a few days earlier
Version The latest cut, as v1, v2, v3
Waiting on Who has to act next when it isn’t you
Review link The link to the version in the Version column
Delivered on The day the final went out, blank until then

The code ties a row to its files. With a naming convention that puts it at the start of every file name, nobody guesses which export belongs to which line.

Status and Waiting on look like one column split in two, and the example below shows why they aren’t.

The internal deadline exists because the client’s date assumes nothing goes wrong, and the gap between the two is room for the round nobody planned. Our post on production timelines has numbers by phase if you need to size it.

Delivered on is the column people skip, and the one you’ll want when someone asks how many videos went out last quarter.

A filled example to copy

Paste the block below into cell A1 of an empty Google Sheet, and each line lands in its own row. Select column A and use Data > Split text to columns. In Excel it’s Data > Text to Columns, with a comma as the delimiter.

Code,Client,Project,Title,Status,Phase,Owner,Due date,Internal deadline,Version,Waiting on,Review link,Delivered on
NWF_014,Northwind,Q4 launch,Launch film 60s,In review,Post,Maya,2026-10-30,2026-10-27,v3,Client,(link to v3),
NWF_015,Northwind,Q4 launch,Cutdown 15s,In review,Post,Tom,2026-11-04,2026-10-30,v1,Director,(link to v1),
HLX_007,Helix,Training,Module 7,Changes,Post,Tom,2026-10-27,2026-10-21,v2,,(link to v2),
HLX_006,Helix,Training,Module 6,Delivered,Finished,Maya,2026-10-16,2026-10-13,v3,,(link to v3),2026-10-15

Read it as if today were Thursday, October 22. Both Northwind rows say In review, and only Waiting on tells you the launch film is with the client while the cutdown sits with your own director.

One needs an email to the client, the other needs someone to walk over to the director’s desk. Going by status alone, both get the same follow-up.

HLX_007 missed its internal deadline yesterday and is five days from the client’s date, Tuesday the 27th. That’s the row you want lit up now, while there’s time to catch up. HLX_006 went out on the 15th, a day before it was due, and that date is what you’ll count at the end of the quarter.

Google Sheets settings that keep it honest

Freeze the header with View > Freeze > 1 row. Then turn Status, Phase and Waiting on into dropdowns. Select the column below the header, open Data > Data validation, add a rule with the Dropdown criteria and type the options.

Under Advanced options, set it to reject the input, so nobody types “in reveiw” and drops out of every filter. Keep the status list to seven or eight values; the kanban post goes through which ones earn a place.

For the date columns, the same menu has an “Is valid date” rule, which keeps “next Fri” out of cells your formulas read as dates.

Late rows should also change color on their own. Select the table without the header (A2:M500 covers most studios), open Format > Conditional formatting, choose “Custom formula is” and add two rules. The first, in red, catches rows past the client’s date that haven’t been delivered:

=AND($H2<>"",$H2<TODAY(),$M2="")

The second, in amber, catches rows past the internal deadline:

=AND($I2<>"",$I2<TODAY(),$M2="")

Keep the red rule above the amber one, because when both match, Sheets uses the rule on top.

The dollar signs make every cell in the row check the same date, so the whole row changes color. The <>"" part is there because an empty cell counts as zero, which is earlier than today. In the example, HLX_007 turns amber on October 22.

On a second tab, one count tells you how many videos are with clients right now:

=COUNTIF(K:K,"Client")

Another count shows who has too much on their plate. This one counts Maya’s rows that haven’t been delivered, and a third active video for someone already on two deadlines is worth a conversation before you promise a date:

=COUNTIFS(G:G,"Maya",M:M,"")

Each person can also save a filter view (Data menu) with only their rows, which doesn’t change what anyone else sees.

Signs the spreadsheet has stopped keeping up

A tracker rarely breaks in one day. Cells drift out of date, usually in the same few places.

  • Versions start living in two places. The editor uploads v4 to the review tool on Thursday night, and the row still says v3, with a link to v3. The client watches the old cut and sends notes on something already fixed.
  • The client starts asking for status. The sheet can’t go to them, since it holds your internal deadlines and every other client’s rows. The answer goes out by email, retyped from the sheet, and it’s out of date by the next afternoon.
  • Links get lost in chat. The review link went to the client on WhatsApp and never reached the row, so whoever picks the job up next sends a fresh one, and now the client has two.
  • Nobody updates it on Friday. Monday’s meeting opens with fifteen minutes of people filling in rows from memory.

When two or three of these show up, look at where the stale cells come from. Version, review link, waiting on and delivered on each change because of something that happened elsewhere, like an upload or an approval, and someone has to copy each of those events in by hand. That gets harder with every client you add.

How this works in RecReview

In RecReview each row of the sheet is a task. Every version you upload stacks inside it, so the version number and the link to it come from the upload itself.

Sending a version to the client from the review page marks the task as waiting on the client, and every status change goes into the task’s history with who made it and when.

The Table view has the template’s columns: video code, title with the current version, client, project, assignee, status, phase, what it’s waiting on, deadline and internal deadline, plus hours worked, estimated and remaining.

You pick which columns show, and the table groups by client, project, status, assignee or priority. Status, phase and waiting-on values come from lists your workspace defines, so there’s nothing to misspell.

The Overdue filter shows tasks past the client’s date that aren’t in a completed status. By default the deadline clock pauses while a task waits on the client, and paused tasks stay out of that filter.

Owners and admins can import an existing .xlsx or CSV tracker, up to 5,000 rows, matching each column to a task field such as code, title, client, project, status, phase, due date or estimated hours. Columns named Code, Title, Client, Project, Status, Phase and Due date, as in this template, are matched on their own.

Each status in the sheet maps to one of yours, optionally with a phase and a waiting-on marker, missing clients and projects can be created along the way, and the sheet’s codes are kept.

The owner and internal deadline columns don’t come in with the file, so select the imported tasks in the table and set both at once. For a new batch with no sheet, pasting a list of up to 100 titles creates one task per line, with client, project, assignees, both deadlines, status and phase set once for all.

Clients get their own view. The Deliveries tab of the client portal exports to XLSX, one sheet per project, with each video’s code, title, status, phase, duration, deadline and link, and your internal deadline stays out of it. More on the project management page.

Import your tracker and keep the same columns in a table.

In RecReview, owners and admins import an .xlsx or CSV tracker by matching its columns to task fields, or paste a list of titles. The Table view shows status, phase, who each video is waiting on, both deadlines and the hours.

  • 15-day free trial
  • No credit card
  • Unlimited users
Creating several tasks from a pasted list, with client, project, assignees, both deadlines, status, blocker and phase set once for all of them

Frequently asked questions

What columns should a video production tracker spreadsheet have?

Thirteen cover most studios: code, client, project, title, status, phase, owner, due date, internal deadline, version, waiting on, review link and delivered on. Use one row per video the client approves on its own, and turn status, phase and waiting on into dropdowns so the values stay consistent.

How do I highlight overdue videos in Google Sheets?

Select the table without the header row, open Format > Conditional formatting and use a custom formula such as =AND($H2<>"",$H2<TODAY(),$M2=""), where H is the due date and M is the delivery date. The dollar signs make the whole row change color, and the first check keeps rows without a date from lighting up.

Can I import my production tracker spreadsheet into RecReview?

Yes. Owners and admins can import an .xlsx or CSV file with up to 5,000 rows, match each column to a task field and map each status in the sheet to one of the workspace's statuses. Missing clients and projects can be created during the import, and the video codes in the sheet are kept.

When should a studio stop tracking production in a spreadsheet?

When the cells that change most often, like the version, the review link and who the video is waiting on, are out of date more often than not, and clients ask for status because they can't see the sheet. By then the copying by hand costs more than a tool where uploads and approvals update the row themselves.

Your next production, all in one place.

  • No credit card
  • 15-day trial
  • Unlimited users