Included

We can read what your spreadsheet does without reading your spreadsheet

One command reports what a workbook is. Its size, which row is really the header, what each column is for. It never reports a single cell.

One command reports what a workbook is. How many rows and columns. Which row is really the header, as opposed to the three merged title rows above it. And for each column, how full it is, how many different values it holds, and what it is therefore doing.

A date. A flag. A status. Prose. Or a column that has been dead for two seasons.

It never reports a single cell

Not an episode number. Not a name. Not a theme. Not a status word.

The whole design is that you can learn what a grid does from counts and shapes alone. A column with six different values across a hundred and twenty rows is a status field whether or not anybody can read what those six values say.

Why this exists

The grid is the thing being replaced, and replacing it means first understanding what it does for each of the people living in it.

That conversation used to start with sending us the file. Now it starts with output that is safe to paste into a message, from a machine you control.

Headers are something you turn on

Column headings and tab names are where a grid keeps the names of the people who own each column, so they are off by default.

Turn them on and the report carries a warning at the top, where it will be read, rather than in a footnote underneath something you have already copied.

What it will not pretend to know

A spreadsheet does not record who edited which cell.

It carries one last-modified-by for the whole file. Per-cell history lives in whatever is hosting it, not in the document. The report says exactly that, rather than offering one name as though it were the answer.

ReplacesEmailing the master grid to a vendor so they can tell you what they would do with it.

Included

Your stages, in your words

Stage names come from your show. Call it a string-out and the board says string-out. You only have to name the words you disagree with.

The stage between Taped and Rough Cut is called Assembly.

Unless your show calls it something else, in which case it is called that. A production declares its own stage names in its own settings, and names only the words it disagrees with. Everything you do not mention keeps the default.

Why the name and the key are different things

Underneath, the stage has an identifier that never changes. It is written into every episode, every step and every saved record.

Nobody reads it. It is not a word, it is a key.

That split is what makes renaming a stage a one-word change instead of a week of work. When the name of this stage changed, nothing in any existing show had to be rewritten, because no episode ever stored the word.

One source, no copies

The column header used to be spelled out in four separate places. The board, the episodes view, the move box, and the rules underneath.

Renaming meant editing all four, and missing one left two columns on the same screen disagreeing about what a stage is called.

The board now sends the words down with the data, including for columns that are empty. Change a stage name and the header, the legend, the tooltip and the move box all change at once, because there is only one of them.

ReplacesLearning a vendor's words for the stages you already have names for.

Included

The numbers at the top are about you, or they are not there

The top strip only shows what needs doing, by the person looking at it. When nothing qualifies, it collapses to one green line.

The numbers across the top are about you, and they only appear when something needs doing.

An editor sees what is on their desk. A supervisor sees holds with their reasons, work nobody is on, shows close to air with picture still unlocked, and note passes that have stopped moving.

When nothing qualifies, the whole strip collapses to one green line: “Nothing needs you.”

The test a number has to pass

Three things, and a number failing any of them is furniture:

  1. It has to change. A count that is the same every morning is wallpaper.
  2. Somebody has to be able to act on it.
  3. It has to be that person’s problem. A hold an editor cannot lift does not belong on an editor’s screen.

And it has to be right

The first version of this counted every episode with nobody on it and reported thirty. because delivered shows legitimately have nobody on them.

A metric that is wrong thirty times is noise, and noise is what got the previous strip deleted in the first place. It now counts work that exists and belongs to nobody.

That correction is the whole argument for this feature in one story: the reason the old counts went away was not that counting is bad, it is that a number nobody can act on trains people to stop looking at the top of the screen.

Thirty seconds

Sign in as a supervisor with a clean board: one green line. Put an episode on hold and the strip grows a card naming who holds it and why. Sign in as an editor and the hold disappears, because they cannot act on it.

ReplacesCounts. Episodes in the window, packages in the library, how many are reused - numbers everybody already knew, taking the most valuable strip of the screen every day.

Included

Ask the show a question and get an answer with a timecode

Ask in plain English - what is due Thursday, who has 301, what was said about the cold open - and get an answer out of your show's own records, with the timecode.

Ask a question the way you would ask a person.

“What’s due Thursday?” “Who has 301 and how long have they had it?” “Did anyone flag the cold open on 1059?” “Where does she say the thing about the dog?”

The last one is the interesting one. Baton already indexes what was said on air, so it can answer where, with the timecode, on the episode, ready to open.

Where the answers come from

Your show’s own records. Nothing else:

  • The board. Stages, who has what, what is due and what is blocked.
  • The handoff history. Who passed what to whom, when, which version, and what they said.
  • Transcripts and captions. What was actually said, and at what timecode.
  • Packages and deliverables. What went where, and what is waiting.

It follows the same rules the board does

This is the part worth reading twice, because an assistant that makes things up is worse than no assistant at all. A wrong answer delivered confidently costs more than no answer, and it is much harder to notice.

It answers from your records, or it does not answer. It is not asked to be knowledgeable about post-production in general. It is asked what your show did.

Anything from a transcript carries its timecode. If it cannot place a line on a frame, it says the line exists and says it cannot place it, exactly as notes do.

It inherits confirmed and estimated. If the board only has an estimated date, the answer says estimated. It cannot launder a projection into a fact by rephrasing it as a sentence.

When it does not know, it says so. “Nobody has checked” and “it is not there” stay different answers, the same way they do everywhere else.

An unaired episode stays in the building

A clip can be cut from an aired master. From an unaired one the answer is no.

That is worth being precise about, because a clip is the fastest way for a show to leave the building. Into a sizzle, a promo, a deck, a message thread, somebody’s phone. After air the material is public and the risk is the ordinary clearance kind. Before air, the clip is the product.

This is a function, not an instruction. The thing answering is a language model, and a model can be talked out of a policy written into its instructions. By a good story, by urgency, by somebody saying they are the executive producer. It cannot be talked out of a function that returns a refusal. The model is allowed to ask the question. It is not allowed to answer it.

Somebody can lift the embargo, and it expires. A waiver covers one episode only. It has to carry a reason, and it has to carry an end date. A standing waiver is the same as having no rule, because it gets granted once in a hurry and forgotten a week later.

You cannot waive it for yourself. The refusal names the roles that can, so it is a question to ask somebody rather than a wall.

“No air date” is a different answer from “not yet aired.” One has a date to wait for. Telling somebody to wait until it airs, about an episode with no schedule, invents one.

It bills to your key, so an unconfigured deployment has none

The cost is passed straight through. You bring your own key and every question is charged to you, which means there is no margin in it for us and no reason to encourage a question nobody needed.

It also means an unconfigured deployment has no assistant rather than an unlimited one. Day, week and month caps are enforced together, per person as well as per workspace, and the model picks its own tier within a floor it cannot lower. A lookup is answered cheaply. Anything about material leaving the building is not.

That is also why the public demo does not run one. A funded assistant on an open page is strangers spending somebody else’s money, so the examples above are what it said in testing rather than a live box you can type into.

From inside, or from the assistant you already use

It works in the product. It also exposes the show through a standard connector, so the assistant your team already has open (Claude, ChatGPT, whatever it is) can be pointed at the show and asked the same questions, without anybody copying anything into a chat window.

That matters for the obvious reason: the fastest tool is the one already on screen.

ReplacesThree people, four searches and a scrub through a master to find out whether somebody actually said it.

Included

Ask where a file is, and find out if the answer is real

Ask for a file by name and get back every copy, with sizes and dates, newest first. If a drive was offline it says so instead of saying the file is gone.

Ask for episode 1069 and you get back every copy on the drives the facility has told Baton about. Masters, proxies, graphics, project files. Sizes and dates, newest first.

You can narrow it to one kind of file. You can get it as plain text you are safe to paste into a message.

The part that matters is what it refuses to do

A request says what to look for. It can never say where.

The drives come from a setting on the facility’s own machine, read fresh every time. There is no option that takes a path, and anything that looks like one is turned down. Ask for a folder and it tells you it wants a name, not a place.

That sounds small. It is the whole reason this is safe to hand to an assistant that is in a hurry, or to a tool. A search that can be pointed anywhere is a search that will eventually be pointed somewhere it should not go.

“I could not look” never comes back as “it is not there”

This is the rule the rest of the product is built on, applied to searching.

If a drive was not mounted, it says that drive was not searched. If a folder could not be read, it counts it and tells you. The command itself reports a failure when any part of the search was incomplete, so a script cannot read a partial answer as a complete one.

When the file genuinely is not on any drive it could reach, it says that, in those words.

A missing file and an unreadable drive look identical in a list of results. Only one of them means the file is gone.

It cannot take the facility down

There are limits on how many results come back, how deep it goes, and how long it runs. A request cannot raise them.

When a limit is reached it says so, because “here are 50 of them” and “here are 50” are different answers. A search of one or two letters is turned down, since against a shared drive that is not a search, it is a walk through everything.

It sees exactly what you see

The search runs as whoever ran it and follows the same permissions the drives already have. It does not follow shortcuts out of the folders it was given.

Nothing here gets its own key to anything.

ReplacesWalking to somebody's bay to look, or asking in a channel and waiting.

Included

Build the season by dragging across the calendar

Drag across the days a block airs. Say how many episodes, which tape day, who cuts them. Everything else works itself out.

Drag across the days a block airs. A panel opens and asks three things: how many episodes, which tape day, who cuts them.

It numbers from where your show already is. Then it shows you exactly what it is about to create, and places it. Stages, milestones, the queue and whose spin it is all work themselves out from those dates.

Why building a season is a different job from tracking one

Nobody plans a season one episode at a time. They place tape days and broadcast weeks: “we shoot five on the 22nd, they air the week of the 16th.”

The episode board is very good at tracking a season and the wrong place to build one, because it asks about the wrong unit. So this is its own screen that asks in the shape people actually think.

The preview is the real thing

Every keystroke re-plans through the same code that does the writing, so the panel cannot show you one thing and then do another.

It refuses an episode number that already exists, a night that already has something on air, and a tape day after the air date. It warns without blocking about a tight turnaround or a missing editor, because those are things people really do, and software that will not let you do them gets worked around.

Thirty seconds

Drag across a week. Say five episodes, tape day the 22nd. Watch it number them from where the season is. Then it shows you the exact list and places the lot.

ReplacesThe season spreadsheet, and the re-numbering by hand every time a block moves.

Included

Drag the date and watch the whole season play

Move the board's date and the season runs. An empty board before anything starts, then taping, then the middle stages filling, then every episode that has aired sitting in Delivered.

Drag the board’s date and the whole season plays out.

An empty board before the show has opened on anything. The first Planned cards appearing. Taping. The middle stages filling up. And Delivered growing to hold every episode that has aired: 55 of them at the date the demo opens on, and 120 of 120 by the end of the season.

Delivered is a place, not a window

An aired episode is delivered, and it stays delivered.

It used to drop off the board ten days later. So the work of a four-month season looked like it all happened in the last week, and the one column that proves the whole thing works was permanently the thinnest object on screen.

It starts where your show starts

The left edge of the scrubber comes from your own schedule rather than a fixed number of days.

A weekly and a daily show open at different distances from air, so a single constant was wrong for both. On one show it opened seven episodes into taping, with the season already under way before anybody touched anything.

Evidence picks a column, not a board

The agent that reads your storage reports one timestamp for the whole file and none per fact. So “the masters are there” was true at every date you could scrub to, and episodes the agent knew about sat alone in Taped nine months before air.

Footage for an episode the show is not tracking yet now raises a flag naming that episode, instead of quietly putting a card on the board.

Why this matters more than it sounds

The board is the same object at every date, and it will show you the season from before it existed. That is the difference between a tool you demonstrate and a tool you can audit.

ReplacesThe screen share where somebody scrolls a spreadsheet and says "ignore this part, it is out of date".

Included

The card moves when you open the cut

Everybody gets their own list in three columns, and a card moves by itself when someone picks the work up.

Everybody gets their own list, in three columns: Pending, In Progress, Done.

Press WATCH NOW and the cut opens. The card moves by itself. Nobody has to remember to mark anything, because opening the cut is what moves it.

Each card shows the date that step is due, not just the air date. Work from episodes and work from packages sit in the same list, because your day is not sorted by which system the job came out of.

Why it stays right

A status somebody has to keep up to date is a status that will eventually be wrong, and one wrong field is all it takes for people to stop trusting the board. So nobody is asked to confirm they started. Starting is the confirmation.

Thirty seconds

Open one person’s list. Press WATCH NOW. The cut opens and the card lands in In Progress with a clock running on it. Now switch to the episode board. Whose spin it is has not changed, because picking something up is not the same as finishing it.

Replaces"Has anyone started on 301?" Before this, a card looked the same whether it had sat untouched for two days or someone was watching it right then.

Optional add-on · needs a production management system that can write markers

Push notes straight into the editor's timeline

One button, and the notes appear as markers on the editor's own sequence - each on its frame, coloured by what it is.

The editor presses one button and the notes appear as markers on their own sequence, each sitting on its own frame, coloured by what it is.

No file to download. No import step. No “did you get my email.”

Whose button it is

The editor’s, and not the executive producer’s.

Production management stamps every marker with whoever is signed in. So pushing on somebody’s behalf does not produce their markers; it produces yours, in their bin, with nothing recording who actually meant them.

Anyone else sees the button disabled, with the reason written on it and a pointer to the locator file, which delivers exactly the same notes under the right name. The work still gets done; it just gets done under the name of the person who meant it.

What it will not do

Overwrite the timeline.

Writing markers replaces the sequence’s whole marker representation. So this reads first, keeps every marker it did not write (including ones on other layers), and refuses outright if it could not read.

That refusal is the important part. Writing without reading first deletes somebody’s work and reports success while doing it, which is the worst possible combination: damage, plus a green tick saying everything went fine.

Dry run

Plans the write and shows exactly what would be sent, including how many existing markers it would keep.

ReplacesA file to download, an import step, a reminder, and "did you get my email".

Included

Notes that land on the right frame

A producer types a note against the cut and it carries the timecode. It arrives in the edit already sitting on the frame it is about.

A producer types a note against the cut and it carries the timecode, taken straight off the player they are watching.

The notes leave as a locator file the editor imports. Each one arrives already sitting on the right frame of the sequence, coloured by what it is: red to change something, yellow for a question, green for keep, blue for technical.

The difference this makes

A tracker that stands next to the edit tells you a note exists. This writes into the edit. The editor stops paying the “around 11:40-ish” tax. Once to scrub and find the moment, and again to never be quite sure they found the right one.

The rule it will not break

A note typed from memory has no frame, and it is never given one.

Those notes are kept and shown as no timecode. The locator file leaves them out, and the panel says so on every read. “2 of 3 can be placed on a frame.” Guessing a timecode would be the most damaging kind of helpful: an editor would trust it and go to that frame, then find nothing wrong when they got there.

Replaces"Around 11:40-ish", in an email - which the editor pays for twice: once scrubbing to find it, once never being sure they found the right moment.

Included

The push runs on your machine, not on a server

Push to Avid writes from your own browser, using the session you are already signed into. Nothing keeps a copy of your login.

Press Push to Avid and the markers go onto the sequence from your own browser, using the production management session you are already signed into.

Baton works out what to write. Your browser does the reading and the writing.

What this fixes

The push used to run on a server, which meant the server held a copy of somebody’s login.

A live run showed what that costs. The copy expired part way through an afternoon, every push after it failed, and nothing in the product could fix it. The repair was a person fetching a new cookie by hand.

That is not a risk to manage. It is a certainty on a schedule. There is now no copy to expire.

You see the numbers before anything moves

“2 markers onto V1, keeping 1 already there.”

It sits next to the notes it is about, with Send them and Cancel.

This write replaces the sequence’s whole set of markers. So a plan that keeps none when the sequence had some is the shape of deleting somebody’s work, and you can see that before you press anything.

A failed read never turns into an empty sequence

If the sequence cannot be read, the push stops and says so.

Carrying on would put only these notes onto the timeline and wipe every other marker on it. And it would report success.

It says what went wrong in words you can act on

Signed out is named as signed out.

A browser blocking the call is three different problems wearing one face, so it names all of them rather than picking one and hoping.

It is still only the editor’s button

Production management stamps every marker with whoever is signed in. Pushing for somebody else does not make their markers, it makes yours, in their bin.

The refusal says whose bin it is.

ReplacesA server holding a copy of somebody's session until it expires mid-afternoon.

Included

Every queue is already full when you open it

A season loads with the work spread across the people doing it, at the depth a mid-season show actually has.

A season loads with work already spread across the people doing it. Sweetening is on one show while captioning is on the next and the online editor is two ahead of both. each with cards waiting and cards underway, plus a record of everything already finished.

Because that is what a show in the middle of a season actually looks like.

Why this needed fixing

A dataset says where every episode is. It never says how it got there.

Without this, every episode sat on the first step of its stage: the vendor at the front appeared to be holding everything, and the four people behind them appeared to have no job at all. A parallel pipeline looked like a queue of one, which is the opposite of the thing being demonstrated.

Where the depth comes from

Your show’s own cadence. How far an episode has got through its stage tracks how far it has got through that stage’s window, so the same offsets that decide the stage decide the depth within it.

The result is a board a producer recognises as their own show rather than one that needed explaining.

ReplacesA first impression that made a parallel pipeline look like a queue of one.

Included

A package cannot go to air with a piece missing

Every package carries a list of what has to be in it. The drawer says which line is outstanding and who it is waiting on, and it cannot be approved until they are done.

Every package carries a checklist of what has to be in it. The voiceover cut in. The prize copy checked against what was actually won. The legal disclaimer in the exact form legal approved.

The drawer tells you which line is still outstanding and who it is waiting on. The package cannot be approved while any of them is.

Why this one hurts

This was the part of a producer’s job with nowhere to live, which is exactly why it is the part they are most afraid of.

A bumper whose picture is finished looks finished on every screen. The person who finds the missing disclaimer is a compliance reviewer, after air.

The list is your show’s, not ours

Each production says what a package of each type has to carry.

A bumper needs a voiceover and a disclaimer. A highlights package needs neither. Another show needs three things nobody here has heard of. That is a setting, not a code change, so adopting it does not wait on us.

Finished is not the same as signed off

An item can require somebody outside the edit to approve it.

An editor can confirm a voiceover is cut in. Only compliance can confirm that a disclaimer says what the lawyers require. If the wrong person tries, the refusal names the role that can, because telling somebody “no” without telling them who to ask is a dead end.

It records which version was approved

“The disclaimer is in” is worth nothing if nobody can say which disclaimer.

The version goes into the row and into the log. If the copy is later replaced, the sign-off on the old one is cleared rather than carried across. A signature is on a specific thing.

It says what is missing, not how many

“2 of 4” sends somebody to open the package and work out which two.

“Legal disclaimer. Post Producer has not signed it off.”

That is the sentence they were going to have to build anyway. Baton builds it.

ReplacesA spreadsheet, or somebody's memory, holding the one part of the job nobody had a place for.

Included

Work goes to the bench, not to whoever is first on the list

A string-out shows up in every assistant editor's queue, marked up for grabs. Whoever starts it owns it, and it leaves everybody else's list.

A string-out lands in every assistant editor’s Pending, marked up for grabs.

The moment one of them starts it, it is theirs. It moves into their In Progress and disappears from everyone else’s queue. The message that goes out when the work arrives, and the “waiting on” line on the card, follow the same rule.

What this fixes

Unscripted shows do not hand episodes to a named assistant. There is a bench, and work comes off the top.

The system used to pick whoever was listed first. So one assistant got every string-out of the season, and the others opened the board to nothing. On a product whose entire job is telling people it is their turn, a second assistant was invisible for a whole season and no screen said why.

The card does not name one person

Printing one name would be telling everyone else it is not their problem.

The card says who it is up for grabs between. The handoff message names all of them.

Any of them can finish it

If somebody not on the bench tries to complete it, the refusal names the bench.

“This is for the assistant editors, Parker or Drew, to complete.”

Not “you cannot do this”. The sentence tells you who to go to.

ReplacesOne assistant quietly getting every string-out of the season because they were first on the roster.

Optional add-on · needs any source that knows which cuts exist

Find out before you give notes on the wrong cut

Checks the version named on every handoff against the cuts that actually exist. From whatever system knows, not just Avid.

Every handoff already names a version. This add-on checks that version against the cuts that really exist, and marks it:

  • Green tick. That cut exists, and it is the newest one.
  • Warning. A newer cut turned up, or the one named is not there. The message names the newer cut right in the line, so nobody has to go looking.
  • Grey question mark. Nothing was checked.

It is not an Avid feature

This is the part most people assume wrong, so it is worth being blunt about.

Baton does not go and ask your production management anything. The information is pushed in, and it takes the same shape whoever sends it:

  • Avid MediaCentral or Production Management
  • A PilotWare export
  • A nightly export from whatever you run
  • A person pasting in the list of cuts

All four produce verified handoffs. Whatever holds the answer at your facility sends it, and the board compares it against what the handoff claimed.

That matters because Production Management is an enterprise system most shows do not have. It was never the requirement. Knowing which cuts exist is.

The fourth state is the honest one

A verdict is worked out fresh each time it is asked, never frozen. Nothing stores “1.7 is verified”, because a later report or a corrected handoff both change the answer, and a stored verdict would go quietly stale while still looking authoritative.

And when a source cannot be reached, that reads as unknown. Never as “this episode has no versions”. A drive that is down and a cut that does not exist are different facts, and the difference is enforced in the code rather than left to whoever writes the screen.

What it looks like with nothing connected

Handoffs still name the version, and it still shows on the card. It is just marked not checked, deliberately grey rather than red.

Nobody having looked is not a problem with the episode. A board that flashes red about its own blind spots is a board people stop reading.

Thirty seconds

Four episodes, four editors, all handing off “1.7”. One checks out. One was replaced by 1.8 forty minutes ago. One does not exist. The fourth could not be checked.

ReplacesAn hour of notes given on a cut that had already been replaced. The mistake that tells nobody it happened.

Included

Your show decides who reviews a cut

How many people review a cut, and at which stage, is a setting. One show sends it to two people, another to four, on the same cut.

How many people review a cut, and at which stage, is a setting on your show.

A daily show might go to a Co-EP and an AD. A celebrity edition goes to those two and, on the same cut, to the studio and the network. That is four chips on the card, each with its own state: waiting, notes given, notes addressed.

The stage does not finish until every one of them is addressed.

Why this was not a special case

Each reviewer is an ordinary review-and-address pair, so nothing new had to be invented. The chips already tracked their state separately, and a stage already waited on its outstanding steps.

That is the point: taking on a show with a different review chain is a line of setup, not a separate version of the software.

Thirty seconds

Put two shows side by side. The daily show’s fine cut carries one chip. The celebrity edition’s carries three, two of them out at the same time, and addressing two of the three leaves the episode exactly where it was.

ReplacesThe separate spreadsheet tab for studio and network notes, kept because the main schedule had nowhere to put them.

Included

A daily and a weekly are not the same shape

A daily show turns around in weeks and a weekly needs bands a week wide. Give the board the wrong cadence and columns sit permanently empty, whatever date you look at.

A daily show and a weekly hour do not run on the same clock, and a board that pretends they do has columns that can never hold anything.

A daily show turns around in weeks, not months

One of the demo shows carried a planned window of 130 days across a season that runs eight weeks. The pipeline was longer than the show it described, so three of the seven columns were empty at every date you could scrub to.

It tapes five weeks ahead now and finishes in days, which is what a daily show actually does.

A weekly needs bands at least a week wide

The other show had a three day lock window on a show that airs every seven days. Episodes stepped straight over it, and three columns stayed permanently empty for the opposite reason.

Spaced a week apart, each stage holds one episode and the season moves along together, which is what a weekly looks like on a wall.

Tape days belong to the block, not the episode

A daily show tapes a week of episodes in one day. One audience, one set-up, five episodes.

So five episodes share a taping date and the calendar shows five lines on that Tuesday, the way the wall schedule in the office does.

Episode keys as a production writes them

SL201 to SL240. Show code, season digit, episode number.

Three digits rather than four, because SL2001 reads as season 20 and almost no show gets there.

Why this is on a marketing page at all

Because an empty column reads as a broken product, and three of them read as a demo nobody rehearsed. Every column on both shows holds something at the date each one opens on, and that is not cosmetic: it is the difference between a board that describes your show and one that describes a shape somebody assumed.

ReplacesA single pipeline length applied to every show, and the empty columns that follow.

Included

Only the people who cut picture get asked which cut

The handoff prompt asks for a version from the editor and the online editor. Nobody else is asked, because nobody else made one.

When somebody finishes a step, the handoff asks for an Avid version. from the editor and the online editor only.

A producer finishing their notes, an assistant finishing a group, a captioning vendor returning a sidecar: none of them are asked, because none of them made a cut.

Why a box in front of everybody is worse than clutter

Somebody types a number into it.

That number is then recorded as the cut that was handed over, and checked against production management. Inventing a version the editor never made, at the exact moment the system exists to answer “which cut did they mean?”

A field that can be filled in wrongly by a well-meaning person is not a neutral addition to a form. It is a way of manufacturing a false answer to the one question that most needed a true one.

Thirty seconds

Mark a review pass done: it asks who it goes to next, and nothing else. Mark an editor’s pass done: it asks for the version, and checks it.

ReplacesA version box in front of everybody - which is worse than clutter, because somebody fills it in.

Included

Your schedule stops guessing how long a cut takes

It measures what each phase of your show has really cost, out of records already being kept, and says whether the episodes still in the building make air. Answerable on the API today; there is no screen for it yet.

Every post schedule starts life as offsets somebody typed once. Rough cut nine days before air, fine cut four. Nobody ever checks.

Baton has been recording when each step was picked up and when it was finished all along, as a side effect of people doing the work rather than a status anybody maintains. It now reads those records back:

You plan two days for a fine cut. The last eleven took three and a half.

What makes it worth believing is what it refuses to say

A forecast is only useful if you still believe it at 2am in week nine, so it is built around the specific ways a plausible number would be a lie.

A weekend is not work. Handed over at 4pm on Friday and finished 10am Monday is three hours of attention, not sixty-six. Count it wrong and the tool learns that your cuts take three days.

Parked time is not work. Nine days stuck waiting on a legal clearance did not cost nine days of editing. Bill it to the edit and the model decides your show is slow.

A step nobody timed is unknown, not instant. That is the most common record in any real set of data, and treating it as zero drags every estimate quietly toward nothing.

One example is not a pattern. Below a handful of finished steps it says it cannot tell you yet, instead of quoting a confident figure with a footnote nobody reads.

An empty history is never good news. A season with no measurements behind it says two episodes cannot be forecast yet. It never says everything fits.

One editor is one queue

The calendar might show forty hours free this week. If all six remaining cuts belong to the same person, those hours get spent once, not six times.

When something misses air it names the first episode in that queue as the blocker, rather than reporting the five behind it as five separate problems.

Your hours, not generic ones

A show declares its own working week. Four ten-hour days, nine to six, a three-week hiatus. Every answer states which calendar it assumed.

A producer who disagrees with those hours needs to see them written down, not discover the problem by being wrong. A calendar nobody could actually work falls back to the default rather than poisoning every projection underneath it.

The defect this shook out

Releasing a hold used to erase it. A step row recorded what was parked now, so clearing it on release destroyed the only evidence of how long anything had ever been parked.

Which means every released hold was being billed to the edit. A step stuck nine days on a clearance taught the model that this show’s cuts take a fortnight. Holds are kept as windows now, a step can be held more than once, and the proof is a test that reports nine hours for an edit that took four the moment the fix is taken out.

What exists today, precisely

Two endpoints. What each phase has cost against what the plan allows, and whether the rest lands before air. 81 tests behind them.

There is no screen for it yet. The numbers are live and answerable now, and that is a different sentence from “this is on a dashboard”, so it is worth saying which one is true.

ReplacesA schedule built from offsets somebody typed on day one and nobody ever went back and checked.

Included

A wall calendar that cannot disagree with the board

A month calendar where every line comes from the same place the boards do - and where a projection looks like a projection.

A month wall calendar. Seven columns, Sunday first, each day stacking lines like 1056 RF ONLINE FINISH. That is the episode and the initials, followed by the job being done.

Every line comes from your show’s own cadence and workflow, so the calendar and the boards cannot disagree about when something is meant to happen. There is nothing to re-key, so there is nothing to get out of step.

A projection looks like a projection

Most lines on a post schedule are not commitments. They are the model working out when something should happen, based on the air date.

So those are drawn dashed and faint. A date somebody actually set is solid. One toggle hides the projections entirely, which answers a question nothing else in the building answers: what have we actually committed to?

On a daily show that turns four hundred lines into about thirty.

Nothing projected is ever marked late

A projection slipping means the model was wrong about a show that may be perfectly fine. Colouring it red fills the calendar with alarms nobody caused, and a calendar full of red is a calendar nobody opens.

Thirty seconds

Open the month. Hit the toggle and watch four hundred faint lines drop away, leaving only what people have actually committed to.

ReplacesThe schedule spreadsheet that gets re-keyed every week and is wrong by Wednesday.

Included

Ask the calendar one question and get one answer

A month of a daily show is several hundred dated things. Pick a track and it shows you only that, then tells you how many lines it left out and what did the leaving.

A month of a daily show is several hundred dated things, and a wall of them answers nothing.

So you pick the question instead, in the words a supervisor already keeps a schedule in. Eight tracks, not twenty step names:

Taping · Prepping · Editing · Reviews · Online · Delivery · QC · AIR

Just the reviews this week. Just episode 223. What is due to the caption vendor. The mix playbacks. The individual steps and vendors are still underneath, for somebody who already knows which one they mean.

Colour can follow the track, the stage, the kind of work or the person. That last one turns the month into a load chart, because every line already carries whose it is.

Vendor dates are on the calendar at all

They never were. The deliverables grid says what is outstanding per episode, and this is that grid turned on its side, which is how a supervisor plans a week.

The tracks come from your show, not from a settings page

Nothing in the product names a step, a stage or a vendor. The tracks are worked out from the kinds of work your show already declares.

A show that does not mix gets no mix track. A show whose deliveries need no quality check never sees that one. Of the two shows in the demo, one offers seven tracks and the other offers all eight, and nobody configured either.

Standards and Practices is a review, not a QC

This distinction is worth keeping because folding them together loses a week.

Broadcast standards reviews the cut, for content, at fine cut and again at lock. It is a notes pass given from outside the building. Network quality control is a technical pass over the finished master, weeks later, hunting glitches in picture and sound.

QC earns its own track because it sits in somebody else’s queue, and it is the usual reason an air date gets tight. Buried in a row of vendor names it disappears.

A day says what it is holding back

Six lines, then “11 more”, which opens.

A day that quietly clips the rest is a day somebody plans around without knowing what is under it. Finished work is hidden by default and one click brings it back.

Every filter says what it is hiding

A filtered calendar that does not say it is filtered is how somebody plans the wrong week.

Narrow it and the count line tells you what it left out and what did the leaving. A filter that matches nothing says the month is not empty, the filter is, rather than showing a blank grid that reads as a page that failed to load.

ReplacesThe tab-per-question spreadsheet, and the version somebody emails round with three columns hidden.

Included

One link, and every Watch Now button works

A show says once where its cuts are watched. Every Watch Now button on every card opens the right one.

A show says once where its cuts get watched. After that, every Watch Now button on every card opens it.

Put {episode} in the link and each card opens that episode.

What it replaces

A button reading “no link yet” until somebody pasted a URL onto each individual step, one episode at a time. Across a whole season. Nobody was ever going to do that, which meant the button was decoration.

What it will not do

Claim to be this cut when it is not.

A link without the placeholder cannot know which episode you meant, so it opens the show’s review folder and the button says show folder instead. It tells you what it is about to do rather than implying a precision it does not have.

That is the same rule as everywhere else here: the board would rather be less specific than be confidently wrong.

ReplacesA button that read "no link yet" until somebody pasted a URL onto each step, one episode at a time.

Included

Every message has to earn the next one

Before anything is sent, it is sorted into now, the morning digest, or not at all. Your turn on a show close to air goes out at any hour. A delivery going out waits.

Before anything is sent, it gets sorted into one of three answers. Send now. Put it in the morning digest. Do not send it at all.

Your turn on a show close to air goes straight out, at any hour. Blocked work always goes, because somebody has downed tools and you are the way out. A delivery going out, or a show running late, waits for the morning and arrives as one line.

What this is really preventing

Not a message that fails to send.

Forty that send. A channel muted in week two. And then the most useful thing in the product is silently off for that person, and for everybody they tell.

Three things are never sent at all

You already opened it, so you know.

The step is parked, which means it is not your turn. It is the holder everybody is waiting on.

And anything that was overtaken before it went out.

A message you can safely ignore teaches you that these can be ignored. That is the expensive lesson, and it only has to be learned once.

Quiet hours belong to the show, not to the clock

A daily show that locks nine days out and a special that locks at six genuinely disagree about what “soon” means.

One number would wake one show’s people far too often and the other show’s people far too late. It comes from each show’s own cadence.

Every decision is written down, including the silences

The question people actually ask is “why was I not told”.

That has an honest answer only if the reason was recorded at the time. So it is, including for the messages that were deliberately not sent.

ReplacesForty messages, then a muted channel in week two. The most useful thing in the product goes silently off.

Included

The 4pm status email, gone

A bell that opens this week's activity. Who was told, what they were told, which episode it was about, and how it reached them.

A bell at the top of the screen opens this week’s activity. Who was told, what they were told, which episode it was about, and how it reached them. It updates on its own, so a board left up on a wall in the edit bay keeps moving without anybody touching it.

Nothing to connect

It works with no Slack, no setup and no passwords handed over. There is nothing to plug in and nothing that can stop working. If you do use Slack, it posts there too.

Thirty seconds

Finish a step on one screen. The bell counts up on the other screen, which nobody has touched, within five seconds.

ReplacesThe 4pm status email. And the reply-all that follows it.

Included

One message in the morning, and it is already out of date by nothing

Everything not worth waking you for arrives as one message at the start of the working day, rechecked against the board at send time so nothing you already finished is in it.

Everything that was not worth interrupting you for arrives as one message at the start of your next working day.

“3 things waiting. The soonest airs in 2 days.”

Then a handful of lines, and a way back to the board.

What it leaves out is the point

Overnight, a good share of what was waiting stops waiting. Somebody picked it up. Somebody finished it. A revision moved it to another person.

Every item is checked against the board again at the moment of sending, and anything that is no longer yours is dropped. It is also marked as settled, so it does not come back tomorrow morning and every morning after that.

A digest that opens by telling you to do something you did last night is not one small mistake. It is the reason the next forty go unread.

It cannot say the same thing twice

Run it again ten minutes later, because a timer fired twice or somebody restarted something, and nobody is told anything a second time.

That is what makes it safe to leave on a schedule.

It will not arrive at three in the morning

A summary that lands before the working day is exactly the interruption it was batched to avoid. One that lands at four in the afternoon is just a late message.

It holds until the morning, and it says that it is holding.

What it replaces

The digest used to be decided and never sent.

There were three answers. Send now, hold for the morning, do not send. The middle one wrote a row that nothing ever read again. In practice the system had two answers and a slow way of saying nothing.

ReplacesA drip of messages all evening, or a morning summary telling you to do things you did last night.

Included

A small mark on every name, for the job they do

Scissors for an editor, a toolbox for an assistant, a speaker for sweetening. The eye sorts by job instead of reading names.

Every name on screen carries a small mark for the person’s job. Scissors for an editor. A toolbox for an assistant. A speaker for sweetening, a building for the studio.

Names get scanned rather than read. Three people whose names start with the same letter cost a fraction of a second every single time somebody asks whose this one is, and that adds up across a season.

The mark belongs to the job, not the person

Four editors share one mark, because the thing the eye is sorting by is the job.

It also means the mark survives somebody leaving the show. A per-person mark would not, and a board that changes its symbols when the crew changes is a board people have to learn twice.

It works on a show nobody here has seen

Roles are recognised by what they contain rather than by a table of one production’s job titles. A show that calls its Co-EP something else still gets a sensible mark.

Anything the system does not recognise still gets a mark, and that mark is still distinct from everybody else’s.

The one guarantee

No two roles ever share a mark.

Two roles wearing the same symbol is worse than having no symbols at all, because it quietly teaches people to trust a signal that is lying to them. That is the same reason the board refuses to show a guess as a fact.

ReplacesReading three names that start with the same letter, every time somebody asks whose it is.

Included

A re-delivery has to say why, and when

Issuing a revision asks what was wrong and when the new date is. It also tells you who already took the old one, before you commit.

Issuing a delivery revision opens a box that asks two things, and will not go ahead without either. What was wrong with the master, and the new delivery date.

It also tells you the cost before you commit:

“3 endpoints already took delivery and will have to take it again. Re-online, re-caption, re-deliver.”

Why the reason is required

“REV 2” on a card told the next person nothing. The only person who knew what happened was whoever pressed the button, and a week later finding out meant asking around until somebody remembered.

Why the date is required as well

The original delivery date has passed, so every date worked out from air is now wrong for this episode.

A calendar still showing the overtaken deadline is worse than one showing nothing, because it looks like something somebody agreed to. That is the same rule as everywhere else here. A stale fact presented confidently does more damage than a gap.

Turning over a new cut asks for neither

No box at all. Nothing has left the building, and it costs another pass rather than a re-delivery. Making a routine offline turnover feel like an incident would teach people to avoid the thing they should be doing.

ReplacesOne click and a number. "REV 2" on a card told the next person nothing at all.

Included

Messages that say your name

One line, sent to one person, naming the show, the cut and what they need to do.

Hey Devon, SL210 is your spin from Harper: Address notes, Avid v1.7 ✅

One line. Sent to one person. It names the show, the cut, the person, and what they are expected to do about it.

Slack today. Push, email and text are each person’s own choice, so nobody gets pinged three ways for the same thing.

ReplacesThe email chain whose subject line is the episode number and whose body says "see below".

Included

Split an episode into a second version

ALT, INTL, a network-specific cut. The copy brings over everything except what is not cleared for it, and tells you what it left out.

A second version of an episode (an ALT, an INTL, a network-specific cut) starts as a copy of the first one.

It brings over the parent’s packages except the ones not cleared for that version, and it tells you what it left out instead of quietly dropping it.

A promo that must not go to another network cannot get there by accident.

ReplacesA separate spreadsheet per version, and the hope that nobody drops a promo into a cut it was never cleared for.

Included

Watch a cut without copying it anywhere

Review copies play straight from your media system, and the login never reaches the browser.

Review copies play through Baton straight from your media system, and you can scrub through them normally. The login for that system never reaches the browser.

There is no second library to keep secure and keep in step with the first one, which is the usual reason somebody ends up watching last week’s cut.

ReplacesA second copy of everything, to keep secure, keep current, and expire on time.

Included

Menus that know your job

The menu shows what you can do, and shows what you cannot along with the reason.

The right-click menu shows what you can do. It also shows what you cannot, and why, instead of hiding it.

The message says “this is Harper’s to finish”, not “permission denied”. Hiding the option teaches somebody the software is broken. Naming the person tells them who to go and ask.

Replaces"Permission denied". A message that tells you nothing about who to go and ask.

Included

A support paste that says what is wrong and nothing about your show

The on-screen message names the show, the step and the role, because somebody has to go and fix it. The version you paste to us carries a code instead.

The check-in that a facility machine runs reports configuration problems by code. degraded:no-endpoints, rather than the sentence a person reads on screen.

Both halves were right, and they have different readers

The on-screen message names the show, the step and the role on purpose. Somebody has to go and fix it, and a message that will not say what is broken wastes their afternoon.

The check-in used to relay that sentence word for word. A run against a real show put that show’s key into a paste.

Same words, different audience. Only one of those readers needed the name.

What this means in practice

Break a show’s configuration and run the check-in. Read the output out loud to anybody.

It tells you exactly what is wrong and nothing at all about whose show it is.

ReplacesCopying an error message into a support thread and publishing a show key with it.

Included

One command answers the whole standing list

The facility machine runs one script and pastes back what it has, what shipped, whether the agent passes its own test, and whether the timecode arithmetic still lands where it should.

The machine at the facility runs one script, and the output answers everything anybody was going to ask.

What this machine has on it. What shipped. Whether the agent passes its own self test. What shape the data is in. Who ends up with a full board. And whether the drop frame arithmetic still lands on its known boundaries.

What it replaces

A list of questions, answered one at a time, typed up, and then matched back against the questions.

Most of the cost was never the checking.

It will not print a single name

The output goes into a conversation, and pasting something into a conversation is publishing it.

So it carries counts, shapes and yes-or-no answers. Never a show, a person, an episode number, a path or a theme. A show is “show 1”. A season’s range is a span rather than its numbers. A gap is a reason rather than the people in it.

The server enforces that instead of trusting the script to remember, and a test fails if an identifier ever gets through.

It is not a way to run commands remotely

That is deliberate.

It takes nothing that reaches a filesystem or a shell, and it runs only what is written into it. That is the same posture the on-site agent takes, for the same reason.

It found two faults in its own bundle on the first run

A line-ending check whose pattern had collapsed to nothing, so it matched every file and reported a problem that did not exist.

And a self test wired to one of the three shipped binaries, so it silently never ran on the other two.

ReplacesA list of questions, answered one at a time, then matched back to the questions.

Included

Ask your building whether it could stream its own footage

One command reports what kind of media is actually on your volumes, including how much of it could be played while it is still being written. It reports counts and container kinds, never a filename and never a path.

There is an obvious feature sitting in front of Baton: let an associate producer watch raw footage the moment it lands on the NAS. No transcode queue, no frame of it uploaded to anybody’s cloud.

Whether that works is not a matter of opinion, and it is not the same answer at every facility. It depends entirely on what the editors there export.

Some files can be read while they are still being written. Most cannot

Avid’s growing files are designed to be read mid-write. That is how an assistant watches a capture in progress inside Avid today.

An ordinary QuickTime movie writes its index after the picture. There is nothing to open at all until the export closes.

So before building a player, ask the building. You get back a sentence:

84% of the 1,204 video files here are in a container that can be read while still being written.

Or:

None of the 34 video files here can be read until its writer closes it.

Both of those are real outputs. The second is what a folder of finished exports actually returns, and it is as valuable as the first. It is just much cheaper to learn now than after the work.

The answer is per volume, not per facility

This was the surprise, and it turned out to be the real output.

Run against a real building: the two Avid MediaFiles volumes came back 100% readable mid-write. The masters volume in the same facility, the same week, 54 TiB of it, came back zero.

Survey either one on its own and you would ship the opposite conclusion with equal confidence.

It counts moving picture, and tells you what it counted

The first live run reported 77%, from a folder that was four-fifths photographs.

Stills and audio are counted and shown, but they are not what anybody means by watching an export happen, and letting them into the denominator made the one number the tool exists for meaningless in the flattering direction. The report prints the video count on its own line, so you can see what was counted instead of having to trust it.

It will never tell you a filename

A master filename carries the show, the episode number and usually the cut. This reports counts, container kinds and a root number. Never a name, never a path.

There is no verbose mode that turns them on, because no question it answers needs one. The report says so at the top, and two tests fail if a path ever reaches the output. It is the same rule as the check-in that says what is wrong without saying whose.

It reads headers, not footage

At most 512 bytes from the front of each file. Enough for a container’s structural preamble, far short of a frame of picture.

And growth is observed, not assumed. A recent timestamp means somebody touched a file, which is not the same as somebody still writing it, so it looks twice and compares.

It says what it did, not just what it found

How many files it opened as well as how many headers it counted. On a NAS those differ by about a third, because a resource fork costs a round trip before it can be excluded. How long it took.

And if it stopped early on a file cap or a time budget it says so loudly. A proportion drawn from a partial walk that does not admit being partial is the same failure as a check reporting clean having scanned nothing.

Thirty seconds

Run it on a facility volume. It tells you in one sentence whether watch it as it exports is a product there, and you can paste the whole report into a thread without reading it first.

ReplacesBuilding the player first, and finding out afterwards that nothing at this facility can be opened until the export closes.

Included

Things get archived, never deleted

Everything keeps its history, along with the reason it was put away.

Nothing is ever really deleted. Everything keeps its history, along with a note saying why it was put away and who did it.

“What was in that show?” stays answerable, including after the people who knew have moved on to another production.

ReplacesThe row somebody deleted, and the argument afterwards about what was in it.

Included

A production number says whether it is yours or ours

Every episode records whether its original production number came off your own paperwork or was assigned here. Assigned ones get badged as assigned. The rule and the data ship today; there is no screen showing the number yet, so nothing displays the badge.

The master grid this system was modelled on has an OG SHOW # column, the immutable number every asset is supposed to hang off.

It is empty on every row of both tabs that have it.

Nobody noticed, because a blank cell in a spreadsheet looks like every other blank cell. So the number that was meant to be the spine of the archive does not exist yet, and the first thing an import has to do is create one.

Which makes where a number came from worth recording

A number Baton minted is Baton’s. No facility, no network portal, no vendor manifest has ever seen it.

Search for it in one of those places in a year and you find nothing. And no results reads exactly like the asset is gone.

So a number that was assigned here is badged as assigned. A number carried in from your grid is not badged at all, because it means exactly what you already think it means.

It is the rule the rest of the system already runs on, applied to identity itself: never render never-observed as if it were known.

Identity cannot be laundered through a fork

Forking an episode into an alternate copies the parent’s number and its origin.

Otherwise the way to turn an assigned number into a real one would be to make a copy, which is not a loophole anybody would use on purpose and exactly the kind that gets used by accident.

What does not exist yet

The badge. There is no screen for it, because Baton does not display the original production number anywhere yet, so there is no surface to badge.

That surface arrives with the importer, which is also the feature that starts assigning these numbers in bulk. What exists today is the guarantee underneath it: the field cannot be written without its origin, the database will not quietly default it to carried, and a fork cannot strip it.

Building those first is what makes the badge honest when it appears. The alternative is a badge added later, over rows whose origin nobody recorded at the time.

ReplacesAn OG SHOW # column everybody assumed was filled in, empty on every row of both tabs.

Included

Whose spin it is, on every card

Initials sit on the episode card, so the board answers the building's most-asked question without anybody opening anything.

Initials sit right on the episode card.

A board up on a wall answers the most-asked question in the building without anybody opening anything, clicking into anything, or getting up.

ReplacesWalking down the hall to ask.

See it on a real board

The demo is the actual software, running on a made-up show. Nothing to install, no sign-up.

Walkthroughs are with someone who spent 15 years as an assistant editor, not a sales rep. Who builds it.