Function TimeTrack Help

The hold desk

First refusal versus hold, hold rank, release-by dates, the collision screen that shows which engagements want the same days, and the ledger for money that is not worked time.

Two productions want the same week. One has you penciled, the other wants an answer Friday. Which do you keep, which do you release, and what does each actually pay?

That is the whole question the Hold desk exists to answer. Open it from Work → Holds (/work/holds).

The hold desk showing four counters, one collision between Harbour Light and Ninth Street Revue, an empty standing-holds list, and a 'what this desk cannot answer' section
Two engagements want the same seven days in October. One is a ranked hold with a release date; the other is a first refusal whose release date nobody recorded — and the desk says so rather than leaving the slot blank.

A hold is not a stage of its own

A hold is an engagement sitting at the Held stage on the Work rail, with a few extra facts recorded against it — what kind of hold it is, where you rank, and when it dies. The desk reads those facts; it does not add a rung to the ladder. Everything on this page is about engagements you can also see on Work → Engagements filtered to Held.

First refusal versus hold — the distinction is about money

The desk uses the trade's own two words, and it keeps them apart because they mean different things about your wallet:

KindWhat it meansFee exposure
First refusalYou get asked first if the dates firm up. It is not a booking.None. Nothing is owed if it evaporates.
HoldThe dates are being held for you. Closer to a commitment.Possible. A cancellation fee may attach.
Not recordedNobody wrote down which of the two this is.Unknown — and the desk says so.

Each row carries this as a badge: First refusal · no fee, Hold · fee may attach, or Kind unrecorded · fee exposure unknown.

An unrecorded kind reads as unknown, never as "no fee." Guessing the cheaper of two possibilities is how money quietly stops existing. If the badge says fee exposure unknown, that is the app telling you it does not know — not that you are safe.

Hold rank

Where you sit in the queue. #1 is first refusal position, #2 is second refusal, and so on. It shows as a numbered badge on the left of a row.

Rank is never defaulted to 1. An unranked hold simply shows no badge — because "I am somewhere on their list" and "I am first" are different facts, and only one of them is worth turning down other work over.

The release clock

Every live hold occupies one of these states, and the desk always renders one of them — never a blank and never a dash:

What you seeWhat it means
12d left · 2026-10-14A release date is recorded and has not passed.
Releases todayThe release date is today.
Lapsed 3d agoThe release date has passed. The hold should have been resolved.
Release date unknown (amber)The hold is live and nobody recorded when it dies.

Release date unknown is not the same as no deadline

This is the single most important idea on the screen. A hold with no release date sits in the same slot a countdown would occupy and says so out loud. It does not mean the hold is open-ended, it does not mean it expires when the dates start, and it will never fire a notification — because there is no date to fire against.

The fix is to ask the production to name a release date, or to run a book-or-release.

Rows within a colour tighten as the date approaches: three days or fewer turns orange, a lapsed date turns red.

The four counters

Across the top:

  • Live holds — every engagement currently at the Held rung, colliding or not.
  • Collisions — how many groups of engagements want overlapping days.
  • Release date unknown — drawn in amber, because it is the count of holds you cannot plan around.
  • Fees not yet in income — recorded cancellation fees that are priced and eligible to be booked as income, but have not been.

Collisions

A collision is two or more different engagements whose date ranges overlap, where at least one of them is a hold.

Three things about how that is scoped, all deliberate:

  • Two booked shows overlapping is not a collision here. That is a genuine conflict, and it is reported by the conflict banner elsewhere in the app. This screen is for the decision, not the emergency.
  • A hold overlapping a booked show is in scope, and the headline says so — "One of these is already booked — this is a release decision, not a choice between two maybes." The booked side is drawn with a red Booked lock and carries no Book/Release buttons, because it is not the one you are choosing about.
  • A three-way pile-up is one row with three members, not three pairwise rows saying the same thing. The desk groups everything that touches into one decision.

The headline states the shape of the decision, including its unknowns: how many engagements want how many days, which of them are named, the first known release date, and how many members have no recorded release date at all.

What each member row tells you

  • The rank badge, the show title and code.
  • The kind badge (or the Booked lock).
  • The date span the member occupies.
  • The release clock.
  • The planned money.

Planned money — or the word "unpriced"

A member reads either $4,950 planned over 5d, or the literal word Unpriced with the reason in parentheses. Both members in the screenshot above read Unpriced (no work plan), because neither October engagement has a work plan attached yet — which is exactly what that phrase means and exactly how often you will see it.

A collision between a priced hold and a pencilled-in one reads as "$4,950 planned vs unpriced" and never as "$4,950 vs $0". $0 is a claim that the job pays nothing. Unpriced is the truth: nobody has put a rate on it yet. Price it on its work plan if you want it in the comparison.

The figure comes from the same forecast engine the forward book prices planned days through — it is not a second calculation that can drift from the first.

Book or release

Two buttons on every uncommitted member:

  • Book — the engagement moves to Confirmed and the hold clock stops.
  • Release — the engagement moves to Passed, the date is freed, and the decline is recorded as unavailable — booked elsewhere.

Releasing is capacity, not a loss

Releasing a hold because you took the other job is recorded as a capacity decline, not a competitive one. That distinction is what keeps your Work numbers meaningful: "I was busy" and "they hired somebody else" should never total into the same figure.

Both outcomes clear the hold terms — kind, rank, release date and the book-or-release stamp all reset to empty, because the decision has been made and a resolved hold must not keep counting down or keep notifying.

Standing holds

Holds that nothing else is competing for. They still expire, so they still get a clock. The list is sorted with unknown release dates first — an unknown clock is more urgent than a known one — then by soonest release date, then by title.

Money that is not worked time

A cancelled hold, a call you were released from after showing up, and a play-or-pay guarantee are all money you may be owed for hours you never worked. The last section of the desk is where they land.

KindWhat it is
Cancelled holdThe production killed a hold you were carrying.
Called and releasedYou were called and then let go.
Play or payA guarantee that pays whether or not the work happens.

Each row shows the show, the kind, the date it was cancelled, and a plain-English summary of the fee — which is one of exactly three things:

  • Priced — an amount is recorded, from an authored contract term or a negotiated figure.
  • Amount unknown — a fee may be due and nobody knows what it is. This is not $0. $0 would be a claim that nothing is owed.
  • Not owed / waived — someone established that nothing is due, or you chose not to pursue it.

Where the governing contract has a cancellation article transcribed, a second line reads "Per the agreement: …" — what the contract itself says this is worth, kept visibly separate from whatever figure was recorded. An article that genuinely authors nothing at this notice reads differently from an article nobody has typed in, and the desk keeps those apart.

Recording a fee as income

When a fee is priced and not yet booked, a Record as income button appears. It writes a real income row of type cancellation fee against the engagement, into the week the cancellation falls in, and the row then carries an in income badge.

It is not recorded as wages. Wages against a week with no hours is exactly the confusion that made this money invisible in the first place.

It refuses on an unknown amount. That refusal is the feature — a $0 income row for a fee whose size nobody knows would assert that nothing is owed.

Whether a cancellation fee counts toward your benefit-fund contribution basis is an open question in this app, and it reports as unknown rather than silently contributing or silently not. Do not read the absence of a fund line as an answer.

What this desk cannot answer

When the desk has named gaps, they are listed at the foot of the page under What this desk cannot answer — every unpriced plan, every hold with no release date, every hold of unrecorded kind, and every cancellation whose fee amount is unknown, each named with its engagement.

That section is the point, not an apology. It is the difference between a screen that is quiet because everything is fine and a screen that is quiet because it never looked.

It will never draw you a season

The desk answers one question about the days two engagements both want, and stops. It has no rolling revenue forecast, and that is a deliberate refusal: a confident projection over a fraction of the truth teaches you to distrust everything else the app says.

Known gaps in this release

These are limitations of the shipped build, not of your data.

There is nowhere in the app to record a hold's kind, rank or release date

The desk reads holdKind, holdRank and releaseBy, and the API can write all three — but no screen in the app calls it. Neither the Add a lead form, the show editor, nor the desk itself offers those fields.

The practical effect: unless those columns were populated by other means, every hold reads "Kind unrecorded · fee exposure unknown" permanently, the amber counter never falls, and no hold-release reminder can ever fire. The desk is telling the truth — there is simply no way to give it a better one yet.

The screenshot above shows kinds, ranks and a release date because the documentation fixture writes those columns directly to the database. It is a picture of the desk working, not a picture of a workflow you can follow today. Read it as what the screen will look like once there is a way to fill those fields in.

Cancellations can only be recorded through the API

An EngagementCancellation is written when a hold is resolved with a cancellation payload, and the desk's Release button never sends one. No other screen creates one either.

So "Money that is not worked time" will always be empty in the shipped UI, the "Fees not yet in income" counter will always read 0, and Record as income is unreachable. Everything described in that section above is real, implemented and tested — it just has no door.

On this page