Greenroom
Company setup

Union Studio Versions and Publishing

How a union's rate rules are versioned, drafted, validated and published — what everyone can read, what only Greenroom staff can change, and which version a pay period uses

Union Studio (left nav) is where Greenroom keeps every union agreement's rates as data: minimums, premiums, fringe contributions, deductions, and the mailing destination for each fund. Everyone on your team can read all of it. Only Greenroom staff can change any of it, and a change is never an edit in place — it is a new, effective-dated version that goes through a draft, a validation pass with an impact preview, and a publish that closes the version before it.

This page covers that lifecycle from both sides: what you see as a producer, what staff do to change a rate, and how a payroll run decides which version it prices against. For how rates get loaded in the first place, see Union Pay Rate CSV Upload; for which figures are confirmed against an executed agreement, see Union Rate Reference.

Read everything, change nothing

Publishing is super-admin only — Greenroom's own staff. A company manager sees every published version, every rule, and every destination, but no New version button and no draft. If a rate looks wrong, the fix is a new version published by Greenroom, not an edit you can make yourself — see When a rate looks wrong.

What you're looking at

The screen is a list of unions on the left, each with its count of agreements, and the selected union's detail on the right. Inside the detail:

  • Agreement chips — one per contract type Greenroom holds for that union (Production, Off-Broadway, Development, and so on). Same union, different agreement, different rate book.
  • Effective chips — one per version of that agreement's rules, each labelled with its window: Sep 1, 2025 → Aug 30, 2026, or Aug 31, 2026 → present for the open-ended current one.
  • The rules themselves, grouped in a fixed order: Minimums, Increments, Fringes, Deductions, Vacation, Overtime, Media fees, Leave. Each section shows the columns that matter for its type — Fringes carry tier, job title, rate, weekly cap, fund and who they apply to; Deductions add pre-tax versus post-tax; Minimums collapse job titles that share one exact rate onto a single row.
  • A search box matching rule names, job titles, tiers, funds and notes, with a N of M rules count beside it.
  • Departments — only for an agreement that carries a department catalog (IATSE Broadway today).
  • Destinations — where each fund's cheque goes. Documented on Union Setup.

Above the rules, every published version carries the line "Executed CBA prevails over transcriptions" and one of two badges: Audited (checked line by line against the governing agreement) or Pending CBA audit (loaded from a rate workbook, or authored in the Studio, and not yet verified). What the badge means for a payroll run is covered below.

Which version the Studio opens on

The Studio opens on the version in force today, not the newest one. That matters for a union with a future step already loaded: Local 802 carries three year-chained sets, and opening on the 2027 set would show next season's musician rates as though they were current. A version takes over the screen only when its window contains today's date. A version whose window starts in the future is a chip you can click, and the Studio falls back to it only when no version is in force at all (a union whose rate book starts next season). Clicking any Effective chip overrides the default.

The URL carries the selection, so a bookmark to a specific union and agreement lands on that union and agreement. A bookmark naming a union code that does not exist says so — "No union with the code X is configured here — showing AEA instead. Pick a union from the list to be sure of what you are reading." — rather than quietly showing another union's rates under the wrong name.

Versions and effective dates, from a run's point of view

A version is one union, one agreement, and a window of dates — effective from through effective until, both inclusive. Windows never overlap: publishing a new version closes the previous one the day before the new one begins, and the database refuses two active versions that share a day.

A payroll run resolves its rule set on the pay period's end date. Whichever version's window contains that date governs the whole period — a week is never split across two versions.

Pay period (SDC Off-Broadway)Governed byWhy
Mon 2026-08-24 → Sun 2026-08-30The 8.5% pension and health versionThe period ends 2026-08-30, inside the version that runs through 2026-08-31
Mon 2026-08-31 → Sun 2026-09-06The 9% version effective 2026-09-01The period ends 2026-09-06, inside the new window — even though the period's first day was still under the old one

The second row is a mid-period step. Greenroom does not prorate across it; the new rates apply to the full week, and Payroll Summary says so: "SDC rates step on Sep 1, 2026, inside this pay period. The period is governed by its end date, so the new rates apply to the full week." It is informational, not a blocker — see the warnings table on Payroll Calculations.

The same rule decides what a reprint shows. A run that priced under the old version keeps pricing under it, because publishing closes the old version rather than editing or deleting it.

Audited versus Pending CBA audit

Every version carries an audited flag. A run whose governing version is unaudited shows the loudest warning on Payroll Summary — "LOCAL802 Production rates are UNVERIFIED against the governing agreement — union deductions and fringes for these payees may be missing, incomplete, or provisional. Confirm with the union before remitting." — asks the preparer to attest at Submit, and footnotes the printed remittance. A version published from the Studio is born unaudited. The badge flips to Audited only when Greenroom's engineering verifies the version against the executed agreement, which is a data migration rather than a Studio action. Union Rate Reference is the narrative record of which versions have been through that; the Local 802 Year 2 set, checked against the League's own memo, is the worked example.

Creating a new version (Greenroom staff)

A super admin viewing a published version sees a New version button in the page header. It opens New rule-set version:

Copies every rule from Local 802 Production (effective Aug 31, 2026) into an editable draft. Nothing changes for payroll until the draft is validated and published.

Two fields, both required:

  • Effective from — the date the new rates take over. On publish, the previous version closes the day before this date, and runs whose pay period ends on or after it use the new rates.
  • Source document — the CBA, memorandum or exhibit the rates come from, in the form "SDC/OBL MOA Art XI — +10% step effective 9/1/2026". It is never prefilled from the version being copied, because that version's document does not vouch for numbers about to be edited. It has to be at least four characters, so a dash or "n/a" cannot satisfy it, and at most 300. A rate change is a money change, so it has to be traceable to a document — the draft is refused without one.

Create draft copies every rule row into a new draft version and lands on it ("Draft created — edit, validate, then publish"). The draft inherits the copied version's effective until, so it replaces the tail of that window and can never collide with a later step that is already loaded. It starts unaudited.

Managers never see a draft — their Effective chips list published versions only. A super admin sees it as a Draft · Sep 1, 2026 → present chip, coloured as a warning, beside the published ones.

Supersede, not add

There is no "add a second rate book" for an agreement. Every version starts as a copy of a published one, and publishing it supersedes its predecessor from the effective date: the predecessor's window closes the day before, the new window opens, and nothing inside the predecessor changes. History stays reprintable.

Destinations follow the same rule at the row level. A supersede closes the current address row and opens a new one from a future date; add exists only for a fund and agreement that has no open row at all, and is refused with a supersede hint when one exists. A destination's new effective date has to be in the future — "an August run must always reprint the August address" — and every write carries its evidence: a citation, a source URL, the exact quote, and the source date. See Union Setup.

Editing a draft

A draft opens into the same section tables with every cell editable. The header shows a Draft badge, the window (Effective Sep 1, 2026 → present), the Source document line, and a reminder: "Money entered in dollars; percent fields in percent (2.5 = 2.5%). Nothing applies to payroll until this draft is published."

  • Source document shows the citation with an Edit link, or a No citation recorded warning badge with Add one. A typo can be corrected in place while the version is a draft — it used to take discarding the draft and re-entering every rate. Once published, the citation is frozen with the rates.
  • Add rule on any section adds a row with a sensible starting shape: a fringe or deduction starts as a percent of gross, vacation as a percent of base salary, a media fee as a percent of the weekly minimum, overtime as dollars per hour. Empty sections stay on screen — "No leave in this draft. Add a rule, or leave the section empty — empty sections simply don't apply."
  • Each rule has a Type ($ / week, $ / day, $ / hour, Percent, $ / performance, $ / role), a Rate / amount, and for percent rules a Basis (of gross, of base salary, of weekly minimum, of salary + vacation). Depending on the section it also carries a job title, tier, weekly cap, fund, pre-tax flag, who it applies to (All, Employees, Loan-outs), and notes.
  • The trash icon deletes a row. Changed rows are highlighted until saved.
  • One sticky Unsaved rule edits bar saves every change in one go, or cancels all of them. Validate & publish is disabled while anything is unsaved ("Save your changes to enable publishing").

Two things the editor tells you as you type. Neither blocks anything:

  • Fund near-matches. The Fund field offers the union's existing fund names, and a typed name that nearly matches one gets a notice — "IATSE National Benefit Fund" already exists on this union and looks like the same name written out. Saving both cuts two separate checks. — with variants for a punctuation-or-spacing difference and for a name one or two characters away. A spelling that an alias already maps is stored as the canonical name, so a hand-typed "IATSE NBF" rides the same cheque as "IATSE National Benefit Fund".
  • A rate in the label. A name like SDC Dues (3%) beside a Rate column already reading 3% gets "The Rate column already shows this rate — drop the parenthesised copy from the name." Two fund names, USA Pension (10%) and IATSE NBF Health (12%), are exempt because the parenthesis is part of the fund's identity for remittance.

Every save writes an audit row per changed rule — before and after for the money fields, the names of any other fields that moved, and the citation as it stood at that moment. An edit that changes nothing writes no row.

A rule that is the greater of two formulas (IATSE Pink's Holiday pay) is copied into a draft with both formulas intact, but the editor shows and edits only the first; the comparison half is loaded by migration. What a producer sees of such a rule is on Adding Employees.

Discard draft asks "Discard this draft? The draft and its 42 rules are deleted. Published versions are not affected." and removes the draft with every row on it. Only an unpublished draft can be discarded.

Validate & publish

Validate & publish opens a modal that is computed entirely on the server: every rule and the window are validated, then the impact is previewed. The Publish version button stays disabled until every error is cleared. Warnings are listed under "N things to know — you can still publish" and published past.

What blocks publishing

CheckMessage you see
A rule has no nameEvery rule needs a name.
A percent rule with no percent, or a flat rule with no amountPercent rules need a percent value. / Flat rules need a dollar amount.
A rule carrying both a percent and a flat amountPercent rules can't also carry a flat amount — clear one side. (and the mirror for flat rules)
A percent rule with no basisPercent rules need a basis (what the percent applies to).
A negative amount, percent or cap; a percent over 100%Amounts can't be negative. · Percent is over 100% — check the source value.
A draft with no rulesA published version needs at least one rule — this draft is empty.
A window that is not a real date rangeThe version ends before it starts — check the effective dates.
An effective date not after the current version's startAn active version already starts 2026-08-31 — pick an effective date after it.
A window overlapping another active versionOverlaps the active version effective 2027-08-30 → present — adjust the effective date.
Half of a supersession pair missingSee Supersession pairs

What warns but still publishes

WarningMessage you seeWhy it does not block
A fund with no destination on fileNo remittance destination is configured for "X". Its check will print with the destination marked unverified. If this is another spelling of a fund we already pay, add it to the fund aliases so the two share one check.A union can genuinely add a fund. This shipped once as a blocker and froze a union's configuration until an engineer deployed an alias. The fund still cuts a cheque, just to an unconfirmed address — which is what Union Obligations then flags in red.
A rule or fund name restating its rateThe rule name restates its own rate — drop the parenthesised copy; the Rate column already shows it.Cosmetic. The engine reads the Rate column, not the name.
Some, not all, of a fund's per-unit rules removedThis version removes 1 of the 3 per performance rules for "Health" (Side Musician). Those titles fall back to the weekly rule.One title moving back to weekly pricing is a change a union can legitimately make.

With the errors clear, the modal shows three green checks — All 42 rules pass validation, Effective window clear: Jan 1, 2027 → present, and Current version (effective Jun 29, 2026) closes on Dec 31, 2026 (or No previous active version to close) — followed by the impact preview.

The preview is computed for one real sample payee (any active payee holding this union and agreement with a current weekly performance rate), current rules against the draft, as one table per engagement shape the edited rule types price differently:

ShapeHow it is built
Full weekA full 8-performance week — the shape the engine assumes when a weekly entry reports no performance count
Part week4 of 8 performances; the engine's own proration halves the base before any percentage rule fires
Hourly engagement40 hours priced at the payee's weekly rate ÷ 40, rounded to the cent — constructed for the preview, not a rate the payee holds
No counts reportedNeither performances nor hours — a daily engagement, or a week whose union report is not filled in yet — priced at the full weekly rate

Part week and Hourly engagement appear only when a per-performance or per-hour rule is involved; No counts reported appears whenever a supersession pair is. Each row is a fund or rule with Before, After and the difference. A shape that moves no money says "No union fringe, deduction, or wage add-on moves in this shape." rather than disappearing, because "this edit changes nothing on an hourly engagement" is an answer. If no payee qualifies: "No active payee holds this union + agreement with a current weekly rate — publishing without an impact preview."

The footer states the consequence: "Publishing replaces the current version from the effective date. Published versions are immutable; the new version is marked 'pending CBA audit' until verified against the executed agreement."

Publish version does two things in one transaction: closes the predecessor at the day before the new effective date, and flips the draft to active. If another session published or discarded the same draft first, nothing changes and the modal says "This draft was published or discarded in another session — reload the Studio." The database's own no-overlap constraint is the last guard, reported as "Another active version overlaps this effective window — reload the Studio and re-check the dates." On success — "Version published — runs ending on or after Jan 1, 2027 use it" — an audit row records who published, the effective date, the rule count, which predecessor closed and on what date, and the citation.

Supersession pairs, and why half of one is refused

Two unions price one fund with a pair of rules and the engine picks between them per engagement. Local 802 health is a weekly amount beside a per-performance amount; Local 764's Guardian welfare is a weekly amount beside an hourly one capped at the weekly figure. When an engagement supplies a count — performances, or hours from the union report — the per-unit row bills; when it supplies none, the weekly row does. In the Studio the two halves name the same fund and look like duplicates.

Deleting either half moves money, in opposite directions:

  • Drop the per-unit row and the weekly figure bills on every engagement again — the exact overbilling the pair was introduced to fix, silently re-shipped.
  • Drop the weekly row and every engagement that supplies no count bills $0 to that fund — an under-remittance to a benefit fund, which is the direction that becomes a grievance.

So publishing checks pairs, by fund, in both directions:

  • Per-unit rules with no weekly companion in the draft — “Health” is priced per performance (2 rules) but this version has no weekly rule for it — hourly and daily engagements count no performances of their own, so they would bill $0 to that fund. Restore the weekly rule, or remove the per performance rules too. Blocks.
  • The published version prices a fund per unit and the draft removes all of those rows while keeping the weekly one…this version removes all of them and keeps the weekly rule “Health” — every engagement would bill the full weekly amount again. Restore them, or remove the weekly rule too. Blocks.
  • Removing both halves is a deliberate retirement of the fund: allowed, and loud in the impact preview. Removing some of the per-unit rows is the warning in the table above.

The check pairs by fund and does not look at job-title scoping. Both live pairs carry a weekly row with no title, which is what keeps every engagement covered — keep it that way when editing them.

After publishing

  • The new chip appears in the Effective list; the old version's chip now ends the day before.
  • Published versions are immutable. Any attempt to change one is refused with "Published versions are immutable — create a new version to change rates." A correction is another version with a later effective date, and the old version stays as history so past runs reprint faithfully.
  • The new version shows Pending CBA audit. Runs in its window show the UNVERIFIED warning above and require attestation at Submit, until engineering audits it.
  • A rule set is platform-wide, not per company. The new version applies to every production that runs that union and agreement, from its effective date.

What the Studio shows versus the Union Rate Reference page

The Studio is the engine's own data: every version and every rule, exactly as a run prices it. Union Rate Reference is the human record around it — which figures are confirmed against an executed agreement and by which document, which are still pending client sign-off, and which lines of an agreement Greenroom's rule set does not carry at all. The Studio's Audited badge is the code-level flag; the reference page is where the evidence and the open questions live. If the two ever disagree, the Studio is what a run used.

When a rate looks wrong

  1. Check which version you are reading. The highlighted Effective chip is the version in force today, which is not necessarily the one a specific run used — a run is governed by the version containing its pay-period end date. Last week's run and this week's can legitimately differ.
  2. Check the scoping. Many rules are scoped to a job title, a tier, or a payee type (Employees versus Loan-outs). A rate that "doesn't apply" to a payee is usually scoped to a different title. Search the rule name to see every row that carries it.
  3. Compare with the reference page. If the Studio's figure and Union Rate Reference disagree, note both.
  4. Tell Greenroom, with the document. Send support the union, the agreement, the version's effective date, the rule (name and job title), and the CBA article, memo or exhibit you believe is right. Staff create a new version citing that document. You cannot edit the rate yourself, and a rule change never re-prices a run that has already been submitted.

A submitted run keeps the version it used

Publishing a corrected version changes runs whose pay period ends on or after the new effective date. A run that has already been submitted priced against the version in force at the time and stays that way — an amount it got wrong is settled on a later run, not by re-pricing the old one.

Common issues

A version reads "No citation recorded"

Expected for every version Greenroom loaded by seed or migration rather than authored in the Studio, which is all of the original rate books. A version created in the Studio cannot be born without a citation; the seeded ones keep the badge until a super admin adds one on a draft copy. It is not a sign the rates are wrong — the Audited badge and the reference page answer that.

I can see a Draft chip

Then you are signed in as a super admin. Company managers never see drafts, and nothing in a draft touches payroll until it is published.

The Studio opened on a version that isn't the newest

By design — it opens on the version in force today. The newest chip is a future step; click it to read it.

The same union appears with two sets of rates

Two agreements. Check which Agreement chip is selected; a production declares which agreement it runs under on the Production & unions stage of Company Setup, and its payees price from that one.

Next steps

  • Union Setup — declaring which unions and agreements your production runs under, and where each fund's cheque goes
  • Union Pay Rate CSV Upload — how rates get loaded, and why there is no self-service upload
  • Union Rate Reference — which rates are confirmed against an executed agreement
  • Payroll Calculations — the warnings a run shows when its rate set is unverified or steps mid-period

On this page