AI operator: ShowScore 0.1.1 beta
Status: Beta · demand unproven. Post-show math only. Nothing is uploaded.
This is the operator's manual for running ShowScore as a service for vendors. It covers the field list, the scoring rules, the season workflow, the tested paths, and the privacy rules. Read it before onboarding a real vendor.
1. The show, field by field
Per show (all required unless noted):
- Show name (warned when blank — the scorecard stays readable when named)
- Date (optional)
- Booth fee ($) — what the vendor paid for the space
- Travel & food ($) — gas, lodging, meals
- Other costs ($) — supplies, card fees, packaging
- Revenue ($) — total sales at the show (warned when zero — the score assumes $0)
- Units sold (count)
- Hours on site and Hours prep & pack (warned when zero — profit-per-hour is unknown)
Plus the vendor's own target $/hour (0 disables the target comparison).
Parsing rules (source/core.mjs): money fields accept "$1,234.50" and clamp negatives to 0; garbage parses as 0 and triggers the blank-show warning. Hours are non-negative; units are floored to integers.
2. Scoring: score, grade, verdict
source/core.mjs scoreShow() returns a score 0–100, grade A–F, and one of three verdicts:
- Rebook — profitable AND profit/hour met the vendor's target (or no
target set). Start at 50; +20 for profit; +20 for meeting the hourly target; +10 for ROI ≥ 100%; small adjustments for units sold.
- Maybe — raise prices or cut costs — profitable, but profit/hour missed
the vendor's target.
- Skip — lost money.
gradeForScore(): A ≥ 85, B ≥ 70, C ≥ 55, D ≥ 40, F below.
compareShows() ranks shows by profit-per-hour descending (unknown hours go last). showsCSV(), scorecardHTML(), rebookListText(), seasonSheetText(), and boothAskText() produce the CSV export, the printable scorecard, the plain-text rebook list (Rebook / Maybe / Skip groups, ranked), the plain-text season sheet (season totals, profit/hour vs the vendor's target, verdict counts, and one labeled rebook-only repeat assumption — not a forecast), and the plain-text booth ask (hypothetical revenue needed to clear a candidate booth fee plus the vendor's hourly target — not a forecast, not a booking).
3. The rebook list
The season's deliverable. Grouped: Rebook (n), Maybe (n), Skip (n) — each line names the show, date, grade, score, profit and profit/hour. The vendor takes it into next season's fair applications. See sample-rebook-list.txt for a rendered example from the fictional sample.
3b. The booth ask (pre-season)
Before the vendor applies to a fair they have not worked: enter the candidate booth fee, travel and other expected costs, on-site + prep hours, and the vendor's hourly target. The booth ask answers "what revenue clears the known costs and my hourly target?" It is hypothetical clearance math, labeled as such — not a forecast and not a booking. See sample-booth-ask.txt for a rendered example from the fictional sample.
4. The season workflow (the $19/mo experiment's core)
- After each worked show, get the vendor's numbers and enter them
("Score the shows"). Check the flagged issues first: blank show, missing revenue, negative profit — ask the vendor for the real numbers before finalizing.
- Re-rank the season (
compareShows): show the vendor where the new show
landed against the rest.
- At season end, export the CSV ("Download CSV"), the printable scorecard
("Download printable scorecard"), and the rebook list ("Download rebook list"). Send the scorecard + rebook list to the vendor. That is the tracking service.
- Log per vendor per season: shows scored, time spent, verdict changes since
last season (did a "Skip" actually get skipped?).
5. Tested paths
cd source && npm test— 19 tests over money/hours/count parsing,
grade boundaries, strong/weak show math, ranking, CSV quoting, scorecard HTML escaping, the rebook list grouping, the season sheet math, and the booth-ask clearance math. Run after any logic change (node --test source/test.mjs).
- Public demo journey: load sample → score → comparison table → CSV,
scorecard, rebook list, season sheet, and booth ask downloads, verified on desktop and mobile each release.
- Automation prompts (paste into your AI assistant of choice):
- "Draft this vendor's season digest email from the attached rebook list.
Plainspoken tone, one ask: which shows are they rebooking?"
- "From these two scorecards, write three concrete questions I'd ask the
vendor before next season's applications (booth fee, travel, pricing)."
- "Draft one honest outreach message to a fair organizer about ShowScore:
beta, demand unproven, post-show math only, no account, clear opt-out."
6. Onboarding a new vendor (checklist)
- Copy
OPEN-ME-ShowScore.html, rename it for the vendor (e.g.
showscore-maple-thistle.html), put the vendor's name in the header.
- Clear the fictional sample; enter the vendor's first show together so
they see the fields.
- First scoring → you review the issues → export the scorecard and rebook
list for the vendor.
- Set the per-show scoring habit (after each worked show) and the
season-end digest date. Done: that's the $79 setup.
7. Privacy rules (non-negotiable)
- Never ask for or store payment data, tax IDs, or government identifiers.
Post-show math needs revenue, not accounts.
- Names and dollar figures stay in the vendor's browser; nothing is uploaded.
If you help a vendor score their shows, delete their numbers after the digest is delivered.
- Sample data is fictional. Never present the Maple & Thistle Studio sample
as a real vendor.
8. Caveats to repeat to every vendor
- Verify tax, fee and legal details for your state before acting on these
numbers. ShowScore is post-show math, not accounting or tax advice.
- The rebook verdict is a starting point, not an instruction: relationships
with organizers and fair quality matter too.