Admission Multiplier Analysis & Forecasting Experiment
Advanced Analytics · Forecasting · Multiplier Analysis · BigQuery · Python
Admission Multiplier Analysis & Forecasting Experiment
As part of my Data Analyst Internship, I explored analytical methods to estimate actual cinema admission from tracked scraping data and experimented with forecasting approaches for predicting daily filled seats. This project combined multiplier binning analysis, AVG OR XXI patterns, LightGBM experimentation, Synthetic Control Method, donor weighting, and hybrid sequential prediction.
Project Workflow
Multiplier Analysis & Forecasting Pipeline
Historical Admission Data
Extract screening-level data from BigQuery Fact_Screening.
Daily Aggregation
Aggregate filled seats, total seats, OR, and daily admission patterns.
Multiplier Binning
Group AVG OR XXI into ranges and calculate multiplier patterns.
Forecasting Experiment
Test SCM, donor weighting, and hybrid sequential prediction.
Multiplier Analysis Path
AVG OR XXI → Binning Range → Average / Min / Max Multiplier → Daily Multiplier Reference
Forecasting Experiment Path
Daily Sales → Covariates → Donor Selection → Donor Weighting → Synthetic Trajectory → Hybrid Prediction
The project combined practical multiplier analysis for daily monitoring and experimental forecasting models for future admission prediction.
Project Overview
In cinema admission monitoring, the number of Filled Seats captured from scraping data does not always perfectly represent the actual admission number. Some ticket purchases may happen through offline counters or channels that are not fully reflected in the scraped data. To estimate actual admission more realistically, a multiplier is often used to adjust tracked admission values.
This project explored two related analytical directions. First, I analyzed the relationship between AVG OR XXI and historical admission multipliers using a binning method. Second, I experimented with forecasting daily filled seats using Synthetic Control Method and several donor weighting techniques such as Ridge, Lasso, ElasticNet, and XGBoost.
The project was treated as an analytical experiment rather than a final production model. The goal was to understand the patterns, limitations, and potential approaches for estimating actual admission and predicting future cinema performance.
Business Problem
The main challenge was that tracked admission data from scraping may underrepresent actual ticket sales. This creates uncertainty when business users need to interpret daily movie performance or estimate actual admission numbers.
- Tracked admission may be lower than actual admission: Not all purchases are fully captured through scraping.
- Multiplier values are not constant: The multiplier can change depending on movie demand, day type, audience behavior, and scraping coverage.
- Weekday and weekend behavior can differ: On weekends or holidays, more people may buy tickets earlier online, making tracked data closer to actual performance.
- Direct forecasting is difficult: Daily filled seats can be highly volatile and influenced by show allocation, competition, release phase, and audience momentum.
- Comparable historical movies may not always exist: Forecasting methods such as Synthetic Control Method depend heavily on finding suitable donor movies.
Analytical Approach
The project used two main approaches: multiplier binning and forecasting experimentation. The multiplier analysis was designed to provide an interpretable reference range for daily adjustment, while the forecasting experiment tested whether historical movie patterns could help predict future filled seats.
Key Analytical Components
- Extracted daily admission data from BigQuery Fact_Screening.
- Calculated AVG OR XXI as the main indicator for multiplier pattern analysis.
- Merged AVG OR XXI data with historical actual multiplier records.
- Created binning ranges to group AVG OR XXI into interpretable buckets.
- Calculated average, minimum, and maximum multiplier per bin.
- Experimented with LightGBM as an alternative multiplier prediction model.
- Built forecasting experiments using Synthetic Control Method and donor weighting.
- Evaluated prediction stability and limitations based on donor similarity.
Admission Multiplier Analysis
A multiplier is a factor used to estimate actual admission from tracked filled seats. If the tracked admission is lower than actual admission, the multiplier helps adjust the tracked number closer to the expected actual value.
Estimated Actual Admission =
Total Tracked Filled Seats × Multiplier
The analysis used AVG OR XXI as the main indicator because XXI has wide cinema coverage and a large number of showtimes. This makes its occupancy rate useful as a proxy for national-level demand movement.
Multiplier Assumption
The initial assumption was that audience ticket-purchasing behavior changes depending on movie demand and day type. On weekends, holidays, or high-demand days, more people tend to buy tickets earlier online because they are worried about missing seats. As a result, tracked data tends to be closer to actual admission, and the multiplier may be lower.
On regular weekdays, more people may buy tickets closer to showtime or directly at the counter. This can cause tracked data to be lower than actual admission, meaning the multiplier may need to be higher.
| Condition | Audience Behavior | Expected Multiplier Pattern |
|---|---|---|
| Weekend / Holiday / High Demand | More people buy tickets earlier online. | Multiplier tends to be lower. |
| Weekday / Regular Demand | More people may buy tickets later or offline. | Multiplier tends to be higher. |
Binning Method
The main method used for multiplier analysis was binning. Binning groups AVG OR XXI into several ranges, then calculates the average, minimum, and maximum multiplier within each range. This makes the output easier to interpret and more practical for daily monitoring.
Instead of relying on a black-box model, the binning method gives users a readable reference:
If today's AVG OR XXI falls into a certain range, the historical multiplier for that range can be used as an initial reference for estimating actual admission.
| Step | Process | Output |
|---|---|---|
| 1 | Calculate AVG OR XXI per date. | Daily demand indicator. |
| 2 | Merge OR data with actual multiplier records. | Combined analysis dataset. |
| 3 | Group AVG OR XXI into bins. | Interpretable OR ranges. |
| 4 | Calculate multiplier statistics per bin. | Average, minimum, and maximum multiplier reference. |
Multiplier Pattern by AVG OR XXI Bin =
Group AVG OR XXI into ranges
→ Calculate average multiplier
→ Calculate minimum multiplier
→ Calculate maximum multiplier
→ Use as daily multiplier reference
LightGBM Multiplier Prediction Experiment
In addition to binning, I also explored a LightGBM-based prediction approach to estimate multiplier values automatically. The model used several time-based and lag features, such as whether the date was a weekend, previous-day AVG OR XXI, previous-day multiplier, and previous-day tracked admission.
| Feature | Description |
|---|---|
| is_weekend | Indicates whether the date falls on a weekend. |
| or_xxi_lag_1 | AVG OR XXI from the previous day. |
| multiplier_lag_1 | Actual multiplier from the previous day. |
| tracked_lag_1 | Tracked filled seats from the previous day. |
However, for daily usage, the binning method was considered more practical because it is easier to explain, easier to validate, and more flexible when combined with business intuition.
Forecasting Experiment with Synthetic Control Method
The second part of the project explored whether historical movie patterns could be used to predict future daily filled seats. The main concept tested was Synthetic Control Method, where a target movie is compared to a weighted combination of historical donor movies.
In theory, if the donor movies have similar patterns to the target movie, their weighted combination can form a synthetic trajectory that approximates the target movie's future performance.
Forecasting Pipeline
- Extract historical movie screening data from BigQuery.
- Aggregate data into daily filled seats and total seats per movie.
- Detect actual release date using a wide-release threshold.
- Create day number relative to release date.
- Build covariates to measure movie similarity.
- Select donor movies based on similarity and data availability.
- Apply donor weighting using Ridge, Lasso, ElasticNet, or XGBoost.
- Generate synthetic trajectory and hybrid forecast.
- Evaluate actual vs predicted admission.
Donor Selection & Covariates
Donor movies were selected based on similarity to the target movie. The similarity matrix used several covariates that describe release scale, audience behavior, showtime distribution, competition, and market composition.
| Covariate | Purpose |
|---|---|
| Release Scale | Measures average seat capacity during the observation period. |
| Prime Time Index | Measures the share of showtimes during prime time hours. |
| Competitor Seats | Measures competitive pressure from other movies. |
| Weekend / Weekday Ratio | Compares weekend performance against weekday performance. |
| Growth Trend Week 1 | Measures early performance momentum during the first week. |
| Exhibitor Share | Measures distribution composition across exhibitors. |
| Geo Share | Measures performance distribution across major cities. |
Donor Weighting Methods
Several methods were tested to calculate donor weights. Each method used the same general pipeline but differed in how it assigned importance to donor movies.
| Method | Role in Pipeline | Characteristic |
|---|---|---|
| Ridge | Calculates donor weights using L2 regularization. | More stable and distributes weight across multiple donors. |
| Lasso | Calculates donor weights using L1 regularization. | More selective and can reduce irrelevant donors. |
| ElasticNet | Combines Ridge and Lasso behavior. | Balances stability and selectivity. |
| XGBoost | Uses feature importance as a proxy for donor weighting. | Can capture non-linear relationships, but is not pure SCM. |
Hybrid Sequential Prediction
The final prediction was not based only on the synthetic trajectory. A hybrid sequential prediction approach was tested to make the forecast more adaptive. This approach combined donor-based movement with business rules and temporal patterns.
- Daily chain projection: follows daily movement from the synthetic donor trajectory.
- Week-over-week baseline: compares the target movie against the same day from the previous week.
- Day-of-week correction: adjusts for weekday and weekend admission patterns.
- Phase detection: identifies whether the movie is in a growth, decline, or stable phase.
- Adaptive blending: combines daily projection and week-over-week projection based on current phase.
- Safety clipping: prevents predictions from becoming unrealistically high or low.
Hybrid Prediction =
Blend(
Daily Chain Projection,
Week-over-Week Baseline,
Day-of-Week Correction,
Phase Detection,
Safety Clipping
)
Selected Analytical Logic
The following simplified and masked pseudo-code shows the overall logic used for multiplier binning and forecasting experimentation.
# Simplified logic for portfolio publication
# Sensitive project identifiers are masked.
# 1. Load historical screening data from BigQuery
screening_data = load_bigquery_table(
project="masked-gcp-project",
dataset="masked_dataset",
table="Fact_Screening"
)
# 2. Create daily admission aggregation
daily_sales = (
screening_data
.groupby(["movie_title", "show_date"])
.agg({
"Filled_Seats": "sum",
"Total_Seats": "sum"
})
.reset_index()
)
# 3. Multiplier binning analysis
or_xxi_daily = calculate_avg_or_xxi(daily_sales)
multiplier_history = load_multiplier_reference()
multiplier_dataset = merge_by_date(
or_xxi_daily,
multiplier_history
)
multiplier_dataset["or_bin"] = create_quantile_bins(
multiplier_dataset["avg_or_xxi"]
)
multiplier_reference = (
multiplier_dataset
.groupby("or_bin")
.agg({
"multiplier": ["count", "mean", "min", "max"]
})
)
# 4. Forecasting experiment with donor movies
target_movie = "TARGET_MOVIE"
covariates = build_movie_covariates(daily_sales)
donors = select_similar_donors(
target_movie=target_movie,
covariates=covariates,
method="nearest_distance"
)
# 5. Donor weighting experiment
weights = fit_donor_weighting_model(
target_movie=target_movie,
donors=donors,
method="Ridge / Lasso / ElasticNet / XGBoost"
)
synthetic_trajectory = combine_donor_trajectories(
donors=donors,
weights=weights
)
# 6. Hybrid sequential prediction
prediction = hybrid_prediction(
target_actual=daily_sales,
synthetic_trajectory=synthetic_trajectory,
use_daily_chain=True,
use_week_over_week=True,
use_day_of_week_correction=True,
use_phase_detection=True,
use_safety_clipping=True
)
evaluate_actual_vs_prediction(prediction)
Simplified analytical workflow for multiplier binning and forecasting experimentation using historical cinema admission data.
Results & Limitations
The multiplier binning method was the most practical output from this project because it produced an interpretable range of multiplier values based on AVG OR XXI. It was easier to explain to business users and could be combined with domain knowledge or daily monitoring intuition.
The forecasting experiments showed that predicting daily filled seats is much more challenging. The Synthetic Control Method and hybrid donor weighting approach produced results that were still unstable for some target movies. The main limitation was donor quality: if the available historical donor movies were not sufficiently similar to the target movie, the synthetic trajectory became less representative.
Important note: This project was treated as an analytical experiment, not a final production forecasting model. The main value was understanding the modeling challenges, testing possible approaches, and identifying why donor similarity is critical for Synthetic Control Method.
Output & Impact
- Created a multiplier reference framework based on AVG OR XXI binning.
- Helped estimate actual admission from tracked scraping data.
- Provided average, minimum, and maximum multiplier references for different OR ranges.
- Explored LightGBM as an alternative multiplier prediction approach.
- Built an experimental forecasting pipeline using Synthetic Control Method.
- Compared donor weighting methods such as Ridge, Lasso, ElasticNet, and XGBoost.
- Tested hybrid sequential prediction using daily chain, week-over-week baseline, day-of-week correction, and safety clipping.
- Identified limitations of SCM when similar historical donor movies are not available.
Tools & Technologies
Key Learnings
This project helped me understand that not every analytical problem needs to be solved with a complex predictive model. In some operational contexts, a transparent binning-based approach can be more practical and easier for business users to interpret.
I also learned that forecasting cinema admission is highly sensitive to movie-specific behavior, show allocation, competition, release phase, and audience momentum. Even advanced methods such as Synthetic Control Method can become unstable when the available donor movies are not sufficiently similar to the target movie.
Another key learning was the importance of communicating model limitations honestly. The forecasting experiment provided useful technical insights, but the results still required validation and should not be treated as a final automated decision system without further development.

Post a Comment