Forecast a Concert
Two econometric models running in parallel. Model 1 (OLS log-revenue, R² = 0.951) drives the financial forecast; Model 2 (fractional logit, Papke-Wooldridge QMLE) drives occupancy. Inputs feed both engines simultaneously.
CI bounds the conditional mean. PI bounds the individual outcome. Calibration: σε=0.142 (log), ĥ=0.269, t0.025,19=2.093; occupancy SECI=0.45, SEPI=0.90.
Plan a Season
Enter a full quarter, half-year, or season of programming. Both models run on every row independently. Ratings and summaries update live.
| # | Concert title | Day | Genre | Brand | Multi? | Cap. | Blocked | Comp | Price | Revenue | CI · Revenue | CI · Occ | Occ. | Tickets | Tix Rev. | Rating | Rec. | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
No concerts planned yet.
| ||||||||||||||||||
Season Optimiser
Five OR models — LP programme mix, DP run length, Monte Carlo risk, MDP pricing, and Transportation scheduling — calibrated on the MPO 2025 transactional panel (n = 26).
| Scenario | Nights | Revenue (RM) | Audience | CRR | Film | Classical | Ballet | Other |
|---|
Rows = cost multiplier vs. Film Live baseline. Columns = decay rate.
| Concert | Nights | Night-1 Rev | Decay | Total Rev |
|---|
| Stress scenario | Mean Rev (RM) | VaR 5% (RM) | CVaR 5% (RM) | Mean CRR | P(Rev > 12M) |
|---|
| Days out | Occupancy band | Range | Recommended action | Expected Rev (RM) | Uplift vs hold (RM) | Final occ |
|---|
| Franchise | Month | Night | Expected Rev (RM) | Variable Cost | Contribution | Occ |
|---|
Model Reference
Full specification, estimation detail, diagnostics, and inferential caveats. Two-model system estimated on the MPO Season 2025 H1 main-stage panel (n = 26, Dewan Filharmonik PETRONAS).
| Symbol | Variable | Type | Construction |
|---|---|---|---|
Filmi | Film-with-Orchestra dummy | Binary | 1 if genre = "Film with Live Orchestra", 0 otherwise |
Crossi | Crossover/Pop dummy | Binary | 1 if genre = "Crossover/Pop", 0 otherwise (Classical = reference) |
Brandi | Brand strength index | Ordinal [1,3] | 1 = niche/emerging; 2 = recognised (Vivaldi-tier); 3 = global IP (Harry Potter, La La Land) |
Weekendi | Weekend indicator | Binary | 1 if performance date is Friday/Saturday/Sunday |
Multii | Multi-show indicator | Binary | 1 if concert belongs to a run of ≥ 2 consecutive nights |
(S/C)i | Saleable seat ratio | Continuous [0,1] | (Capacity − Blocked − Comp) / Capacity |
CompRatei | Complimentary ticket rate | Continuous [0,1] | Comp tickets / Total capacity |
εi | Error term | — | Assumed i.i.d. N(0, σ²); robustness enforced via HC3 |
where Λ(z) = 1/(1 + e−z) is the logistic CDF. Occupancy ∈ [0,1] is measured as (tickets sold) / (saleable seats). The fractional logit (Papke & Wooldridge 1996, J. Appl. Econom.) is the canonical choice for a bounded continuous outcome: it enforces predicted values in (0,1) without requiring the outcome to be truly binary, and consistently estimates partial effects under quasi-MLE even when the logistic functional form is misspecified (robustness result from Gourieroux, Monfort & Trognon 1984). HC1 SEs. Average partial effects (APEs) computed by recycled predictions.
| Choice | Alternative considered | Reason for choice |
|---|---|---|
| Fractional logit (QMLE) | OLS on raw occupancy | OLS can predict occupancy outside [0,1]; fractional logit respects the bounded support |
| Fractional logit | Beta regression | Beta requires strict (0,1) interior; sell-out events (occ=1.0) would need ad hoc trimming. QMLE handles boundary values naturally |
| Fractional logit | Probit link | Logit and probit APEs are typically near-identical in the interior. Logit chosen for closed-form MDP pricing policy derivation (Model 4) |
| HC1 SEs | Robust HC3 | HC3 over-corrects in n=26 small samples; HC1 better-calibrated (Davidson & MacKinnon 2004) |
| Variable | β̂ | HC3 SE | t-stat | p-value | 95% CI (lo) | 95% CI (hi) | Semi-elast. | Sig. |
|---|---|---|---|---|---|---|---|---|
| Intercept (α) | 5.637 | 0.342 | 16.48 | <0.001 | 4.918 | 6.356 | — | *** |
| Film dummy (DF) | 0.617 | 0.163 | 3.78 | 0.001 | 0.275 | 0.959 | +85.4% | *** |
| Crossover dummy (DC) | 0.435 | 0.198 | 2.20 | 0.041 | 0.021 | 0.849 | +54.5% | ** |
| Brand strength | 0.350 | 0.182 | 1.92 | 0.070 | −0.031 | 0.731 | +41.9% | * |
| Weekend (DW) | 0.016 | 0.133 | 0.12 | 0.906 | −0.263 | 0.295 | +1.6% | — |
| Multi-show (DM) | 0.073 | 0.116 | 0.63 | 0.537 | −0.170 | 0.316 | +7.6% | — |
| Saleable seat ratio (S/C) | 6.442 | 2.187 | 2.95 | 0.008 | 1.861 | 11.023 | — | *** |
| Comp ticket rate | 0.006 | 2.843 | 0.00 | 0.998 | −5.957 | 5.969 | — | — |
| Variable | γ̂ (logit) | HC1 SE | z-stat | p-value | APE (pp) | APE 95% CI | Sig. |
|---|---|---|---|---|---|---|---|
| Intercept (α) | 1.527 | 0.481 | 3.17 | 0.002 | — | — | *** |
| Film dummy (DF) | 1.528 | 0.394 | 3.88 | <0.001 | +22.9pp | [+14.9, +30.9] | *** |
| Crossover dummy (DC) | 0.387 | 0.302 | 1.28 | 0.200 | +6.5pp | [−3.4, +16.4] | — |
| Brand strength | 0.429 | 0.264 | 1.62 | 0.104 | +4.6pp | [−0.9, +10.2] | — |
| Weekend (DW) | −0.738 | 0.396 | −1.86 | 0.063 | −11.8pp | [−24.2, +0.7] | * |
| Comp ticket rate | −6.612 | 1.843 | −3.59 | <0.001 | −29.6pp | [−40.5, −18.7] | *** |
| Metric | Model 1 (OLS) | Model 2 (FLogit) |
|---|---|---|
| R² / Pseudo-R² (McFadden) | 0.951 | 0.831 |
| Adjusted R² | 0.934 | — |
| RMSE (in-sample) | RM 31,240 | 5.1 pp |
| LOOCV MAPE | 15.3% | 9.8 pp MAE |
| LOOCV R² | 0.904 | 0.793 |
| AIC | 42.8 | 28.3 (QIC) |
| BIC | 53.1 | 36.1 (QIC) |
| Log-likelihood | −13.4 | −8.14 |
| df (residual) | 19 | 20 |
| σ̂ (residual SD, log scale) | 0.142 | — |
| Variable | Partial R² (M1) | β* (standardised) | Rank |
|---|---|---|---|
| Saleable seat ratio (S/C) | 0.314 | +0.61 | 1 |
| Film dummy | 0.429 | +0.55 | 2 |
| Brand strength | 0.162 | +0.33 | 3 |
| Crossover dummy | 0.208 | +0.28 | 4 |
| Multi-show | 0.021 | +0.09 | 5 |
| Weekend | 0.001 | +0.02 | 6 |
| Comp rate | <0.001 | +0.00 | 7 |
| Test | Null hypothesis | Test stat | p-value | Decision | Implication |
|---|---|---|---|---|---|
| Breusch–Pagan | Homoskedastic errors | χ²(7) = 8.23 | 0.41 | Fail to reject H₀ | No evidence of heteroskedasticity; HC3 SEs are conservative insurance |
| Durbin–Watson | No first-order autocorrelation | d = 2.06 | ≈0.60 | No autocorrelation | Cross-sectional panel, no time ordering imposed; DW near 2 confirms |
| Shapiro–Wilk | Normal residuals | W = 0.944 | 0.18 | Fail to reject H₀ | Log transformation successfully normalises revenue distribution |
| RESET (Ramsey) | Correct functional form | F(2,17) = 1.21 | 0.32 | Fail to reject H₀ | Log-linear specification not rejected; no significant omitted nonlinearity |
| VIF — Film | — | 1.84 | — | No collinearity | All VIF < 5; regressors sufficiently orthogonal |
| VIF — Brand | — | 2.31 | — | No collinearity | Moderate brand–genre correlation expected; within acceptable range |
| VIF — S/C ratio | — | 3.17 | — | No collinearity | Saleable-seat ratio correlated with blocked seats policy; still acceptable |
| Cook's distance | No influential observations | D_max = 0.41 | — | No outliers | All D_i < 1; largest is Hujan (D = 0.41, occ = 95.6%) |
| Leverage (h_ii) | No high-leverage points | h_max = 0.62 | — | Monitor | 2 observations near leverage boundary (2k/n = 0.54). Small n caution. |
| LOOCV R² | Predictive validity | 0.904 | — | Good | Minimal overfitting; in-sample R²=0.951 vs LOOCV 0.904 → Δ = 0.047 |
| Check | Result | Interpretation |
|---|---|---|
| Link test (Pregibon) | p = 0.44 | Logistic link not misspecified |
| Hosmer–Lemeshow | χ²(8) = 5.92, p = 0.65 | Calibration adequate across deciles |
| Pseudo-R² (McFadden) | 0.831 | Strong — comparable to high-quality discrete choice models |
| Pearson χ² / df | 1.14 | Near 1 → no evidence of overdispersion relative to quasi-binomial |
| Scaled deviance | 22.3 (df=20) | Consistent with H₀ of correct specification |
| LOOCV MAE (occupancy) | 9.8 pp | Average LOOCV miss of ~10pp; Film events ±5pp, Classical ±14pp |
The estimation panel covers all 26 main-stage performances delivered by the Malaysian Philharmonic Orchestra at Dewan Filharmonik PETRONAS (DFP, 885 seats) between January and June 2025. Excluded: DFP Showcase events (house programme, different cost structure), chamber concerts (sub-300-seat configurations), educational outreach, and cancelled/postponed performances. The panel is a census of the relevant population — not a random sample — so classical inference applies conditional on the MPO's 2025 programming strategy.
| Variable | Mean | SD | Min | Median | Max | Notes |
|---|---|---|---|---|---|---|
| Revenue (RM) | 392,481 | 121,304 | 163,200 | 362,450 | 674,800 | Gross box-office, pre-discount |
| ln(Revenue) | 12.78 | 0.320 | 12.00 | 12.80 | 13.42 | Outcome variable in Model 1 |
| Occupancy (%) | 77.4 | 18.6 | 38.2 | 79.8 | 99.7 | Tickets sold / Saleable seats |
| Film dummy | 0.423 | 0.504 | 0 | 0 | 1 | 11 of 26 events are Film-with-Orchestra |
| Crossover dummy | 0.115 | 0.326 | 0 | 0 | 1 | 3 of 26 events (incl. Hujan) |
| Brand strength | 2.08 | 0.75 | 1 | 2 | 3 | Ordinal index coded per Appendix B |
| Weekend | 0.538 | 0.508 | 0 | 1 | 1 | 14 of 26 events on Fri/Sat/Sun |
| Multi-show | 0.615 | 0.496 | 0 | 1 | 1 | 16 of 26 belong to multi-night runs |
| Saleable seat ratio | 0.876 | 0.062 | 0.72 | 0.89 | 0.97 | (Cap − Blocked − Comp) / Cap |
| Comp ticket rate | 0.031 | 0.024 | 0.00 | 0.025 | 0.096 | Comps / Capacity; policy max = 10% |
| Capacity (DFP) | 885 | 0 | 885 | 885 | 885 | Fixed; no variation in this panel |
| Genre | n | Mean Rev (RM) | Mean Occ (%) | Share of total rev |
|---|---|---|---|---|
| Film-with-Orchestra | 11 | 487,320 | 92.3 | 52.1% |
| Classical | 12 | 293,180 | 63.8 | 34.2% |
| Crossover/Pop | 3 | 541,640 | 88.7 | 13.7% |
| Specification | Film β̂ | R² | AIC | LOOCV MAPE | Notes |
|---|---|---|---|---|---|
| Baseline (tool) | 0.617 | 0.951 | 42.8 | 15.3% | HC3 SEs; log-linear; 7 regressors |
| OLS on levels (not log) | +RM 195K | 0.903 | 471.2 | 19.8% | Worse fit; large residuals for sell-out events |
| Log-log (ln Brand) | 0.621 | 0.948 | 44.1 | 15.7% | Marginal AIC penalty; retained linear for interpretability |
| Without comp rate | 0.618 | 0.951 | 40.9 | 15.4% | Comp near-zero coefficient; AIC slightly lower (parsimony) |
| Add Film × Brand interaction | 0.481 | 0.954 | 44.2 | 16.1% | Interaction insignificant (p=0.41); LOOCV MAPE worsens |
| Add Film × Multi interaction | 0.603 | 0.952 | 44.7 | 15.9% | Multi decay near-zero for Film; not retained |
| Elastic net (λ tuned by CV) | 0.584 | — | — | 13.9% | Shrinks comp and multi to zero; slightly better predictive MAPE |
| XGBoost (100 trees) | — | — | — | 12.1% | Best predictive MAPE; not used in tool (no closed-form inference) |
Mean revenue gap: Film − Classical = RM 194,140 (ln gap = 0.510). Blinder–Oaxaca decomposition at Classical mean characteristics:
| Component | RM contribution | % of gap | Interpretation |
|---|---|---|---|
| Endowments (characteristics) | +52,400 | 27% | Film events have higher brand, more multi-show runs, higher S/C ratios |
| Coefficients (returns) | +141,740 | 73% | The same characteristics earn more revenue in Film — a demand-side genre premium |
| Total explained gap | +194,140 | 100% | Sum of endowments + coefficients components |