{"schemaVersion":1,"publisher":"Festbound","canonicalUrl":"https://festbound.live/methodology.json","policy":"Definitions are append-only. A changed definition requires a new version and fingerprint.","predictionFrameworks":[{"version":1,"name":"Festbound Prediction Standard","fingerprint":"sha256:f64a6f67604d1bfd133c03cb819e0e661777915326cd561f889d1f0a4ebc5ac9","status":"ACTIVE","publishedAt":"2026-08-29T22:00:00-04:00","principle":"Profile the stages first, score every viable artist-stage pairing, preserve the runner-up, then lock the forecast before official assignments are known.","weights":[{"key":"same-festival-history","auditKey":"sameFestivalHistory","label":"Same-festival history","points":30,"description":"Recent exact-stage appearances at the same festival carry the strongest signal."},{"key":"programming-fit","auditKey":"programmingFit","label":"Sound + programming fit","points":25,"description":"Genre, set style, stage identity, and the way the festival programs that room."},{"key":"billing-scale","auditKey":"billingScale","label":"Billing + production scale","points":15,"description":"Artist billing, audience demand, show scale, and likely placement in the day."},{"key":"host-fit","auditKey":"hostFit","label":"Host + curator fit","points":10,"description":"Announced stage hosts, labels, collectives, or curated programming restrictions."},{"key":"special-format","auditKey":"specialFormat","label":"Special set signals","points":8,"description":"Sunset, live, B2B, takeover, debut, or other explicitly billed formats."},{"key":"event-family","auditKey":"eventFamily","label":"Event-family evidence","points":7,"description":"Placements at related events are supporting evidence, never a replacement for local history."},{"key":"operations","auditKey":"operationalBalance","label":"Operational balance","points":5,"description":"Capacity, day balance, competing headliners, local stages, and schedule feasibility."}],"confidenceBands":[{"range":"90–95","label":"Direct precedent","description":"Recent same-festival exact-stage evidence with a decisive score gap and no unresolved conflict."},{"range":"80–89","label":"Strong convergence","description":"Several independent signals point to the same stage."},{"range":"70–79","label":"Clear fit","description":"The best stage fit is clear, but direct local precedent is limited."},{"range":"60–69","label":"Competitive call","description":"The leading stage narrowly beats a credible adjacent-stage option."},{"range":"50–59","label":"Low evidence","description":"Local, emerging, sponsored-stage, or otherwise thin-evidence placement."}],"workflow":[{"step":"01","title":"Freeze the source set","description":"Record the lineup, source URLs, access time, festival edition, and every known stage or host."},{"step":"02","title":"Profile stages before artists","description":"Define each stage by sound, scale, curators, historical booking patterns, capacity, and special roles."},{"step":"03","title":"Build artist evidence","description":"Capture same-festival history, style, billing, production scale, special billing, trajectory, and related-event placements."},{"step":"04","title":"Score every viable pairing","description":"Apply the 100-point rubric to each artist-stage candidate. Missing evidence is neutral; contradictory evidence must reduce the score."},{"step":"05","title":"Resolve the whole lineup","description":"Apply hard constraints and balance the full day. Keep the winning stage, runner-up, score gap, rationale, and evidence trail."},{"step":"06","title":"Assign calibrated confidence","description":"Use evidence strength, candidate margin, and unresolved conflicts. Confidence is not the same as the raw fit score."},{"step":"07","title":"Lock, publish, and wait","description":"Timestamp the immutable forecast and methodology version. Official information is stored later without overwriting the call."},{"step":"08","title":"Score and learn","description":"Award one point for an exact stage match, zero for a miss, exclude cancellations, then publish accuracy and calibration."}],"hardConstraints":["Announced host, label, or stage-eligibility restrictions","Festival day and artist billing identity, including B2B sets as one billing","Mutually exclusive special slots such as sunset or closing windows","Capacity and headliner balance across the complete day","Local or sponsored-stage eligibility when publicly identifiable","An explicit unknown-stage option when the public stage inventory is incomplete"],"lockFields":["Festival and edition ID","Framework version","Source URLs and timestamps","Stage profiles","Artist evidence","Candidate scores","Winning stage and runner-up","Score gap","Stage confidence","Timing forecast and separate timing confidence","Rationale","Forecast lock time"],"legacyNote":"The 2026 Orlando forecast predates both this formal rubric and the published exact-match scoring contract. Its 108 calls remain unchanged and are labeled as the founding legacy record. The scoring rule was locked before official results, but not before the forecast; every future edition must lock both methodology and scoring prospectively."}],"scoringContracts":[{"version":1,"name":"Exact stage assignment","fingerprint":"sha256:56e54f524db0e5c2651a46f9c4ad561d8290c3c7b09d86b0e4375ae5c33f294e","rules":["One point only when the predicted stage equals the official stage.","A different official stage scores zero points; no subjective partial credit.","Cancelled or removed artists are excluded from the denominator.","Capitalization and typographic differences may be normalized, but stage identity may not be changed.","Official results must retain their source URL and the time they were checked.","Locked predictions are never rewritten after official results become available."]}]}