📖 Reader

StΛtion

v0.424.8 · alpha
🎭 SCENARIO
Viewing only · your editable budget stays in place
📜 Viewing version: — read-only
EDIT A SAVED PASS

Current table
→
Selected pass

Older pass: some line details were never saved. Missing details cannot be reconstructed from this pass. Review before editing.

Prices, shot counts, statuses, notes, lines, links and show-wide assumptions may change. If another device edits this episode, you’ll be asked to review again.

RECOVERY

Bring back only what you choose

Review a checkpoint, then choose the individual fields to recover.

FieldCurrentSaved
Export full checkpoint
Script
R toggles
🎬
Create a show, then drop in a highlighted script PDF.
Scriptation → Share → Annotated PDF · season & episode are auto-detected

+ Split cost

Break this shot's rate into category components — each row is money you can pull in a 🎭 Scenario ("without Lewis Arm"). The Gross In becomes the sum.
Total: $0

✨ Match episodes

Confident calls are tagged automatically (after every scan and on the mail timer). These are the folders the breakdown couldn't settle — pick an episode, Season (show-wide), or leave them. Files get a virtual episode tag (nothing moves on disk; the block follows the episode).

🔗 Share link

Anyone with the link can open this one file from any network — no login, no Tailscale. Set an expiry; add a password for anything sensitive. Every view and download is logged.
Links for this file

🎭 Scenario

Untick a category and its money leaves every total — split components drop out of mixed shots, whole shots in that category park, and matching assets/fringes drop. Nothing is written until you save it as a budget.

Entity

⬇ Marked-up PDF

Downloads a copy of this draft with your VFX highlights burned in. The original file is untouched.

📤 Upload script drafts

Confirm where each file lands before it's filed — detected from the filename, fix anything that's off. Drafts of the same episode carry highlights to the newest one automatically.
FileShowSeasonEpisodeDraft labelScriptation

Upload draft

Highlight color rules

A color rule overrides the AI for any highlight in (or near) that color. Leave a menu on “AI decides” to keep that field automatic. Rules apply to future uploads.

Settings

🖥 UI scale
shots per 1/8 page, rounded up (default 1.5)
Color Font size px Distance off page px
No logo for this show yet.
Add people, set roles and PINs, and share shows in Users & Access. Logins turn on the moment anyone has a PIN — set YOUR PIN there to activate them.
Share the target Sheet with the service account's email (Editor).
Station checks your inbox and files attachments from KNOWN senders straight into the Files tree (then rescans). Read-only on the mailbox. For Gmail use an app password — go directly to myaccount.google.com/apppasswords (needs 2-Step Verification on; the page is no longer linked from the Security menu) — never your real password.

📬 Daily watch

Once a day the watcher reads recent mail from senders WITHOUT a rule and flags anything that looks show-related (Claude decides when your API key is set). Accept one to create the rule and file their recent mail on the spot.
The whole app (scripts, breakdowns, attachments, code) is encrypted with your passphrase before it touches the folder below — put the folder inside Google Drive / iCloud / Dropbox and the sync client uploads only unreadable ciphertext. Auto-backs up daily while the app runs. Write the passphrase in your password manager — without it, backups cannot be opened. Ever.
Auto every min Keep backups Verify
Auto-backup only writes when data actually changed, so a tight interval is cheap (files are small). Two folders on different clouds means one provider failing can't lose you. Each backup also drops a plain, readable Station_data_latest.json beside it — recoverable even without this app. Store the passphrase in your password manager — without it, backups cannot be opened. Ever.
Every breakdown, budget, sequence & schedule as plain JSON — openable in any text editor, recoverable without this app.

Season sequences

Every 3-letter sequence code used this season. Codes are unique per season — a duplicate is rejected.

Columns

Drag ⠿ to reorder · uncheck to hide. Layout is remembered on this computer.

🖨 Print setup

Columns, filters, grouping & sort come from your current view (set them with ▦ Columns). This controls the page.

🔬 Budget diff

New custom column

⇅ Sync a pass

Carries the source draft's markup — and its breakdown/budget rows — onto the target draft. Nothing merges and nothing is overwritten: the result lands as a new pass you can rename or archive.

👥 Users & Access

Logins stay OFF until someone has a PIN. Set YOUR PIN to turn logins on for everyone — then each person picks their name and enters theirs. Producers see only the shows shared with them; “view” can read but never change.

🎬 Shows for

Per show: no access, Read (sees everything, changes nothing) or Read & write. Changes save instantly.

📁 New folder

Draft changes

Review changes before sending

Your breakdown edits (status, cost, complexity, vendor, shots) are never touched. The script only refreshes text, page, scene and length.

Update the script from the breakdown

Writes your breakdown edits — VFX type, note, shots, length — back onto the matching highlights. A script version is saved first so you can roll it back.

🪦 Graveyard

Hard-deleted shots. Restore recreates the highlight + breakdown row with all field values (attachments/notes didn't survive the delete).

📤 Send handoff

They get the data + highlight positions — your script PDF never leaves.

⚡ BOTE quick figure

Shots × one number. For the phone-call answer, not the record.
0 shots × $/shot
$0

📊 Cost history

What a category actually cost — low / average / high per shot — read straight out of saved passes, so you never have to open an old budget to answer it.
Episodes Numbers

⚡ Rate cards

Set an established number once — “Driving · Medium = $5,000, driving comps” — then fire it at this episode. A card always names a category — it can't be fired episode-wide. It previews first and never overwrites what you already filled in unless you say so.

Saved cards

⇩ Copy fringes

Fringes are boilerplate — payroll, handling, contingency — so take them off another episode of this show instead of retyping. Percentages keep their basis; flat amounts keep their number. Anything already on this budget is greyed out and can't be doubled.

Season assets

One strip per build: the episodes it's in and the shots it covers underneath, the money on the right. A share of auto = equal split of what the fixed amounts leave · a number = that episode pays exactly that. Everything saves as you edit.

Budget Top Sheet

AI Reduction Passes

🏷 Vendor bidding

Send every vendor the same template so the bids come back apples to apples. Re-import their filled CSVs — each number lands quietly on its shot (expand via the Bids column), no column explosion.

1 · Export a bid template
1b · Send locked script pages

Only the scenes for these shots are shown — every other scene is truly redacted (text removed). The vendor's name is watermarked across every page, and it's locked with AES-256: needs the password to open, can't be printed or copied.

2 · Import a filled bid
⇪ Drop the vendor's filled CSV here (or click)
Vendor name is read from the template automatically
3 · Compare

🗣 New meeting

📌 Pin note
Asset → budget
📷 Tag for scanning

Saved budget

📆 Shoot calendar feed

A live feed of your shoot days with VFX scenes flagged. Fantastical can subscribe to the URL and auto-update; Google Calendar can't reach your Mac, so use Download to import (or connect Google below to push directly).

Subscription URL (Fantastical → New Calendar Subscription)
Google Calendar (optional, two-way)

📊 Budget statistics

Costed shots amortized into an average $/shot. Use these to sanity-check bids and back-of-envelope numbers.

Attachments

📈 Season at a glance

Current-table numbers per episode (whatever pass is open on each). Omitted shots excluded; Hold shots count as shots but not money. Gross = standard VFX; AI Gross = with each shot's AI reduction applied. ★ = that episode quotes its designated CURRENT budget; episodes without a ★ quote the live table.

⏱ Character screen time

Script-time estimate from each episode's newest draft: a scene counts when the character speaks or is named in its action; the share is measured in page-eighths (1 page ≈ 1 minute of screen time). Comma = aliases, e.g. RoboCop, Robo, Murphy.

🏷 Vendor bid packet

A clean Excel of every shot tagged to one vendor — scope, descriptions and assets. No internal numbers unless you tick them in.
GenAI alternative
+ Add files — click or drag images / PDFs here

✏️

New show

The app shows the real title; everything that leaves the app travels under the code name. Leave blank to use the real title everywhere.

📂 Choose a folder

🧹 Tidy loose files

Files sitting bare at the show root, matched by your 🧠 auto-file rules. Renamed DATE_RULE_name (date = the file's own arrival date). Untick anything to leave it alone.

🎨 Categories & Colors

One color per VFX type — keep it basic (CG, Screen Comp, FX…), detail goes in each shot's description. This is also your breakdown Category list, so nothing competes. Blank name = the AI guesses. The small CODE box is the short label on each color's pill (auto-filled from the name — edit it to override); the cx dropdown sets a default complexity for that type — assigning the type snaps a shot's complexity (and its BOTE tier) to it. Drag ⠿ (or ▲▼) to reorder. While highlighting, clicking a color picks its type.

📥 File these where?

🧠 Filing rules

Learned destinations. When files are dropped in (and, later, when email intake runs), the first matching rule pre-fills where they go. Rules are per-show.

✎ VFX type list

This is the master list of VFX types — it feeds the palette, the highlight popup, and the breakdown's Category column. Rename, reorder (▲▼), delete, or add. Renaming here does not retag existing highlights or breakdown rows.
⬇ Download
0 shots ✕