Year
2026
My role
Business Intelligence Advanced Analyst (internship), Toronto
Tools
Python, pandas, XGBoost, PuLP, Excel and VBA

Choosing which NFL game each station airs

In each time window, Bell’s Canadian stations can carry different NFL games, and the choice had relied largely on judgement. I built a tool that recommends the best combination.

  • Forecasting. Gradient-boosted models (XGBoost) predict each game’s audience on each station and in each window. I rebuilt the training data from raw ratings-panel exports and from game listings in unstructured press-release text.
  • Validation. Forecasts are tested walk-forward, only ever on weeks the model hasn’t seen.
  • Optimisation. An exact mixed-integer program, written with PuLP and solved with CBC, chooses every station’s game at once to maximise total audience within carriage rules.
  • Rigour. I audited the pipeline for silent errors, such as a join that quietly dropped twenty features, and rejected plausible fixes that didn’t hold up out of sample.
  • Delivery. The tool updates itself and runs from an Excel front end with VBA buttons, packaged so colleagues without Python can use it.

Airing one event on several channels

I wrote a case study on whether showing the same sporting event across several TSN feeds at once grows the audience or splits it, and presented it to TSN’s director of programming and her team.

Automating rival schedule collection

A Python pipeline with an AI agent extracts TV schedule grids from rival Québec networks’ PDFs, replacing manual collection. Testing on the real files exposed problems clean examples never showed, like grids built from photo tiles and time labels printed in both French and English.

Other work

Survey analysis of advertising effectiveness during the 2026 FIFA World Cup, and contributions to a sales dashboard for audio inventory.