Theatre Season Planner

Westminster University Theatre — Play Database
Admin
⏳

Loading Database…

Fetching wpac_database.json — please wait.

Search & Filter
Season Generator
Season Builder
How to Use
Choose mode:
Click to generate — tweak controls below to refine

Configure your season in Season Set Up, then generate a balanced four-show season here.

A-Slot Configuration
Fall 2 — Musical
Fall 1 — Blackbox
Min cast 1 –
Max cast 30
Fall 2 — Proscenium (A-Slot)
Min cast 1
Max cast 40
Spring 1 — Blackbox
Min cast 1
Max cast 30
Spring 2 — Proscenium
Min cast 1
Max cast 40
📅

Configure your preferences and generate a season.

My Play Bank 0 saved
▼
No plays saved yet. Browse in Search & Filter and tap "Save to Bank" on any play.
Variation 1
Green is on-target, amber is a soft warning, red is a clear miss. Hover any chip for details, or see the How to Use tab.

How to Use the Theatre Season Planner

This tool helps you browse the Westminster play database, generate balanced four-show seasons, and manually build and compare season variations. The four tabs work as a pipeline: Search & Filter to explore the catalog, Season Generator to get auto-built suggestions, Season Builder to compare variations side by side, and How to Use for this reference. Season Set Up (the gear button in the header) holds the program-wide configuration — A-Slot, scale caps, actor pool, exclusions, and balance thresholds — that the Generator and Builder both read from. Each section header below jumps to that tab.

This is your play database browser. Use it to explore the full catalog, narrow the list by any combination of filters, and save plays you are interested in to your Play Bank for later use in the Season Builder.

Filters

All filters work together; results update when you press Search or hit Enter from any filter input or dropdown. You can mix and match freely.

Show Type
Filter by Straight Play, Musical (A-Slot), Heightened Language (A-Slot), or Proscenium B/C/D straight plays. Only one Musical or Heightened Language play is allowed per season and must occupy the A-Slot.
Venue Fit
Filter to plays suited for the Blackbox (60–70 seats), the Proscenium (265 seats), or either venue.
Framework Category
Each play is tagged with one or more of the department's curriculum framework categories: A-Musical, A-Heightened, B (Acting Styles & Period), C (Theatrical Movements & Aesthetics), or D (Specialized & Emerging). Filter to find plays in a specific category.
Underrepresented Playwright
Filter to plays by playwrights from underrepresented communities. A balanced season typically includes at least two.
Cast Size Range
Set a minimum and maximum cast size. Results include plays whose cast range overlaps yours; the fit score reflects how well they match.
Production Scale
Scale runs 1 (minimal) to 5 (full production). Use this to find plays within your production resources for a given slot.
Gender Flexibility & Role Caps
A 1–5 rating indicating how easily roles can be recast across genders, plus separate caps for roles written for men, roles written for women, and minimum gender-flexible roles. Use these together when your year's casting pool is narrow in one direction.
Style / Genre Tags
Pick one or more style tags from the dropdown (e.g. Absurdism, New Work, Verse Drama). The search checks both Style Tags and Framework Sub-Tags.
Playwright Typeahead
The playwright field has an autocomplete menu. Start typing a name and pick from the list, or type a partial name and hit Enter to search by it directly.
Exclude Recently Produced
Hides any play produced at Westminster in the last 10 academic years (2015–2025). This matches the same flag used by the Season Generator.
Search Shortcut

Pressing Enter while focused on any filter input or dropdown launches the search — you don't have to reach for the Search button. The page smooth-scrolls down to the results row (skipping the scroll if the row is already on screen) and briefly pulses the result count chip so you can see the search ran. The only exception is the playwright typeahead: if its dropdown is open and an option is highlighted, Enter selects that option instead.

Fit Score

Each result card shows a percentage in the top-left corner. This is the Fit Score: how well the play matches your active filters. Green (80%+) is a strong match, amber is a partial match, and grey is a weaker match. When no filters are active, all plays score 100%.

Sorting

Use the Sort buttons to order results by Fit score (default), title A–Z, cast size, or production scale. Click the same sort button twice to reverse the direction.

Play Cards

Tap any play card to expand it and see full details: cast breakdown, content ratings, framework categories, period and origin, rights and licensing, learning outcomes, resume value, casting notes, and Westminster production history. Each card also has a "+ Bank" button in the upper-right corner. Clicking it saves the play to your Play Bank, making it available in the Season Builder tab.

Season Set Up is the program-wide configuration panel for a planning year. Open it from the gear button labeled Season Set Up in the page header. It opens as a modal overlay, so you can dip in and out without losing your place in any tab. Both the Season Generator and Season Builder read their defaults from whichever preset is currently active.

Presets

All settings are bundled into a named preset so you can keep, say, a "Standard year" preset alongside an "Abbreviated season" or "Lean year (small actor pool)" preset and switch between them in one click. The preset bar at the top of the modal lets you select an existing preset, Save back to the active one, Save As… a new preset, or Delete the active preset (the seed default cannot be deleted). The active preset name shows up as a small label below the mode toggle in the Season Generator and at the top of the Season Builder.

A-Slot Configuration

Sets which proscenium semester (Fall 2 or Spring 2) carries the A-Slot, and whether the A-Slot is a Musical or a Heightened Language play. Both Generator modes show a summary card reflecting this choice; the Builder seeds each variation's per-column A-Slot dropdowns from it.

Production Constraints

Two filters that govern what the Generator will pick: a maximum production scale (anywhere from "Modest only" through "Any scale 1–5"), and an underrepresented-playwright preference (no preference, at least half, or majority).

Actor Pool

Optional caps on the number of actors available this year by gender bucket (men, women, non-binary). Plays whose role demands exceed the pool are filtered out by the Generator entirely; the Builder lets you place them but flags any over-the-cap chip on the variation's balance row. Leave any bucket blank to skip that limit. Non-binary actors fill gender-flexible roles.

Season Cast Size

A per-show minimum and maximum cast size that bounds every slot's cast slider in the Generator. Default is 2–40 (effectively wide open); tighten only if your year's actor pool is small.

Exclusions

A checkbox to exclude any play produced at Westminster in the last 10 academic years, plus a free-text list of specific titles to also exclude (one per line, exact title as it appears in the database). Both apply to the Generator; locked shows are never excluded.

Balance Targets

The green / amber / red thresholds for every balance chip the app shows: season scale total, proscenium load, blackbox load, underrepresented playwright count, and framework mix. Loads use a maximum (lower scores are greener); minimums use a floor (higher scores are greener). A live "In plain English" summary at the top of this section translates your proscenium and blackbox numbers into a sentence about how your year is balanced — "heavier on the proscenium," "identical caps," etc. — and warns you if you accidentally invert green and amber. The same thresholds are read by both the Generator and the Builder when scoring chips.

Apply & Close

Click Apply & Close at the bottom to save your edits back into the active preset and close the modal. Cancel discards changes and closes without saving. Either way, the open Generator or Builder tab refreshes to reflect the active configuration the next time it renders.

The Season Generator produces balanced four-show season suggestions automatically, based on the constraints you set. It reads its core configuration — A-Slot, max scale, underrepresented preference, actor pool, exclusions, and balance thresholds — from Season Set Up (the gear button in the header). It has two modes, toggled at the top of the panel.

Season Structure

Every season has exactly four shows in fixed slots: Fall 1 (Blackbox, straight play), Fall 2 (Proscenium), Spring 1 (Blackbox, straight play), and Spring 2 (Proscenium). Exactly one proscenium slot is the A-Slot, which must be a Musical or Heightened Language play. The other proscenium slot is filled with a B/C/D straight play.

A-Slot Configuration

In both modes, you designate which proscenium semester (Fall 2 or Spring 2) carries the A-Slot, and whether it should be a Musical or a Heightened Language play. This is set in Season Set Up and shown as a summary card at the top of each Generator mode. The generator enforces this strictly: only one Musical or Heightened Language play is allowed per season, and it must land in the A-Slot.

Suggest a Season mode

The generator picks all four shows automatically. Make sure your A-Slot, scale cap, underrepresented preference, and exclusions are configured in Season Set Up, set per-slot cast-size ranges in the Generator panel, then click Suggest a Season. The generator tries up to 300 random combinations and picks one that satisfies all constraints while maximizing framework category diversity. Click Try Another to get a different valid season.

Lock + Find Complements mode

Lock one or more shows you already know you want, and let the generator fill the remaining open slots. Each slot's dropdown opens with five framework placeholders at the top, marked with a ◇ (e.g. ◇ Acting Styles & Period (B)) — pick one to hold a slot for a framework category before you've chosen a specific title. Below the placeholders are your bank plays. Placeholders that don't fit the current slot are greyed out with a tooltip explaining why. Leave any slot set to "Leave open" and the generator will fill it. Cast size sliders for locked plays auto-fill from the play's data and become read-only; placeholders leave the sliders editable since there's no concrete cast yet.

Exclusions

Two exclusion controls live in Season Set Up → Exclusions. The "Exclude plays produced in the last 10 academic years" checkbox hides anything Westminster has staged recently. The "Also Exclude These Titles" textarea takes a list of exact titles (one per line) you want to skip — useful for plays nearby universities are producing this cycle, or that you are setting aside for a future year. Locked shows are never excluded by either control.

Balance Chips

After a season is generated, a row of colored chips summarizes the season's balance: underrepresented playwright count, framework category diversity, A-slot coverage, production scale totals for the full season, proscenium load, and blackbox load. Green chips are on target; amber chips are borderline; red chips indicate a potential concern. Thresholds for every chip live in Season Set Up → Balance Targets.

Share & Print

Underneath the generated season, a share bar offers Copy to Clipboard (a plain-text summary you can paste into an email or doc) and Print / Save PDF (uses your browser's print dialog — choose "Save as PDF" as the destination for a PDF file).

Sending a Result to the Builder

Each show in a generated season result is clickable. Clicking it opens its full detail card. To move shows into the Season Builder, save individual plays to your Play Bank using the "+ Bank" button on their detail cards in Search & Filter, then build your variations manually in the Builder tab.

The Season Builder lets you manually assemble up to three side-by-side season variations for direct comparison. It is useful when you want to weigh different combinations of shows rather than accepting an auto-generated suggestion.

Play Bank

The Play Bank at the top of the Builder holds any plays you have saved from the Search & Filter tab. Tap the dark header bar to open or close the drawer. Each bank entry shows the play's title, playwright, venue fit, and show type. The number badge on the header and on the "Season Builder" tab shows how many plays are currently in the bank.

Exporting Your Bank

When the bank has plays in it, an export bar appears at the top of the open drawer with two options:

Copy
Copies a plain-text dump of every play in the bank to your clipboard, including the same fields shown in the on-screen detail cards (cast, framework, scale, content advisories, rights, learning outcomes, casting notes, and production history). Useful for pasting into an email, a Google Doc, or a season-planning meeting agenda.
Print / Save PDF
Opens a new window containing a formatted, print-ready document of every play in the bank with the full detail cards rendered for paper. Your browser's print dialog opens automatically — pick your printer to print, or pick "Save as PDF" as the destination to save a PDF file. The buttons at the top of the window let you re-trigger print or close it.
Placing Plays

There are two ways to place a play into a variation slot. First, tap a play's "Place" button in the Bank drawer: a placement overlay appears showing all three variations and all four slots, with each slot marked as eligible, ineligible (with a reason), or occupied. Tap an eligible slot to place it. Second, tap an empty slot card directly in a variation column: a picker overlay opens with two tabs — "From Bank" shows your saved plays that are eligible for that slot, "Search Database" lets you search the entire database for an eligible match without first saving it to the bank.

A-Slot Configuration per Variation

Each variation column has its own A-Slot semester and type dropdowns. This lets you compare, for example, a season where Fall 2 is the musical against one where Spring 2 is the musical. Check "Apply A-Slot to all variations" on any column to push its A-Slot settings to the other two. The default A-Slot for new variations comes from Season Set Up.

Eligibility Rules

The Builder treats show-type rules as hard limits and venue fit as a soft suggestion. Show-type rules can't be overridden: musicals can't be placed in Blackbox slots, the A-Slot only accepts the designated show type (Musical or Heightened Language), and the other proscenium slot only accepts straight plays. Venue fit is more flexible — placing a play whose venue tag doesn't match the slot is allowed, but the slot card will show an amber "Venue mismatch" warning so you can confirm the scale before scheduling. Hard show-type violations show a red conflict warning and disable the placement button; soft venue mismatches stay clickable. If a play placed earlier becomes invalid after you change the A-Slot configuration, the slot card updates accordingly.

Variations on Mobile

On small screens the three variation columns are hidden behind tabs labeled Variation 1, 2, and 3. Tap a tab to switch between them. On wider screens all three columns display side by side.

Balance Chips

Below each variation's slots, the same balance chip system used by the Season Generator evaluates your hand-built season in real time: fill count, underrepresented playwright count, framework diversity, A-slot coverage, and scale loads. These update automatically as you add or remove plays.

Sharing All Variations

A share bar at the bottom of the Builder lets you Copy All Variations to Clipboard as plain text, or Print / Save PDF using your browser's print dialog. The print view automatically lays out the three variations in a side-by-side grid suitable for handout-style review.

Removing and Clearing

To remove a single play from a slot, tap the small × button in the top-right corner of that filled slot card. To clear all four slots in a variation at once, use the Clear button in the variation's header bar. To remove a play from the bank entirely, tap the × button next to it in the Bank drawer.

Balance Chips

Every generated season and every Builder variation is scored against the same set of balance dimensions. The chips that appear under each season are not pass/fail grades — they are a dashboard. Green means on-target, amber means watch this, red means there is a real problem worth looking at before committing. You can tune the green/amber/red thresholds per preset in Season Set Up → Balance Targets.

Curriculum Coverage
ABCD
The pedagogical contract. Every season must contain exactly one A, one B, one C, and one D play. Green when satisfied, red when not. This is the only chip the Generator hard-enforces; the others are soft signals.
Framework
Counts how many distinct framework categories appear (out of 4 possible: A, B, C, D). Defaults: green at 4 unique, amber at 3, red below. Usually moves in lockstep with the ABCD chip — if ABCD is satisfied, Framework is 4/4 — but the chip exists for partially-filled Builder variations where ABCD does not yet apply.
A-slot covered
Sanity check that a Musical or Heightened Language play is present somewhere in the season. Red if missing.
Casting & Representation
Underrep
Counts plays by underrepresented playwrights. Defaults: green at ≥ 2 of 4, amber at 1, red at 0. If your program has a stronger commitment, raise the thresholds in Season Set Up.
Pool fit
Appears only when you have configured an Actor Pool in Season Set Up. Counts how many plays have role demands exceeding your pool. Green when all four fit, amber for one over, red for two or more. The Generator hard-filters plays that exceed the pool, so this chip should generally read green for generated seasons; it earns its keep in the Builder when you are placing plays manually.
Aesthetic Range
New work
Whether at least one play is tagged "New Work" in our framework_sub_tags. Green when present, amber when absent. A soft nudge toward including a contemporary voice — you might not need it every year, but a department that goes several years without one should know.
Global voice
Whether at least one play has a non-American cultural origin. Same green/amber treatment as New Work. About widening the conversation beyond a US-only frame, not about hitting a quota.
Production Load

Every play has a production scale from 1 (minimal) to 5 (full / ambitious). The next three chips track how that load distributes across the season.

Season scale
Sum of all four production scales (max 20). Defaults: green at ≤ 12, amber at 13, red at ≥ 14. The broadest cap — your total department capacity for a year.
Proscenium load
Combined scale of the two proscenium slots (Fall 2 + Spring 2, max 10). Defaults: green at ≤ 7, amber at 8, red at ≥ 9. Proscenium gets a higher comfort cap because that venue absorbs bigger productions.
Blackbox load
Combined scale of the two blackbox slots (Fall 1 + Spring 1, max 10). Defaults: green at ≤ 4, amber at 5, red at ≥ 6. The blackbox cap is lower because the smaller venue's crew, build cycle, and load-in windows make a single ambitious blackbox show feel much heavier than the same scale on the proscenium.
Why split Proscenium and Blackbox?

A season totaling 12/20 sounds balanced — but [5, 1, 5, 1] and [1, 5, 1, 5] both total 12 and look identical to the season-total chip. The first is Blackbox 10/10 (a brutal blackbox crew year); the second is Proscenium 10/10 (a brutal proscenium crew year). The split chips surface the imbalance the total hides.

Tips & Workflow
1 Open Season Set Up first. Pick or create the preset for this planning year (A-Slot, scale cap, actor pool, exclusions, balance thresholds). Everything else inherits from it.
2 Browse in Search & Filter to get a feel for what is in the database. Hit Enter from any filter input to launch the search without reaching for the button.
3 Save any play that interests you to your Play Bank, even if you are not sure you will use it. You can remove plays from the bank at any time, and you can Copy or Print / Save PDF the entire bank as a packet to share at planning meetings.
4 Use the Season Generator to quickly identify which plays pair well together. The framework diversity chip is a good signal for a pedagogically balanced year.
5 If you already have one or two shows in mind, use Lock + Find Complements rather than Suggest a Season. Lock your known shows and let the generator fill the gaps with framework placeholders or specific titles.
6 Use the "Also Exclude These Titles" list in Season Set Up → Exclusions for plays that nearby schools are already producing or that you want to hold for a future year.
7 If a year feels lopsided in the chips, scroll to Season Set Up → Balance Targets. The "In plain English" summary explains exactly what your proscenium/blackbox caps mean in human terms and warns if the thresholds are inverted.
8 Take a Season Generator result and use it as inspiration. Save those plays to the bank, then explore three variations side by side in the Season Builder to refine the season before committing.
9 The database loads automatically when the page opens. If it fails, the Reload button in the header retries the fetch, or you can load wpac_database.json manually.

Season Set Up

Preset

Number of actors available this year by gender bucket. Plays whose role counts exceed your pool are filtered out by the generator. Leave blank to skip a bucket. Non-binary actors fill gender-flexible roles.

Caps the cast size for every slot AND the season-wide total. Per-slot sliders in the generator will be constrained to these bounds. Default 2–40 is wide open; tighten only if your year's actor pool is small.

Plays listed here will be skipped by both Season Generator modes.

Tune the green / amber / red thresholds for each balance chip. Loads use a maximum (lower = greener); minimums use a floor (higher = greener).

In plain English

Season scale total (0–20)
Proscenium load (0–10)
Blackbox load (0–10)
Underrep target (min count, 0–4)
Framework mix (unique categories, 0–4)