Back to .md Directory

๐ŸŽฌ Demo Video Script

Guides recording a 5-7 minute demo of a sports analytics app, covering statistical concepts, UI walkthrough, and codebase highlights.

May 2, 2026
0 downloads
1 views
rag
View source

What this file does

Guides recording a 5-7 minute demo of a sports analytics app, covering statistical concepts, UI walkthrough, and codebase highlights.

When to use it

  • You need a structured script for a product demo video
  • You want to explain statistical models (Poisson) to a mixed audience
  • You are showcasing a full-stack data science project
  • You plan to create both a detailed and a short version of a demo

Assumes this stack

FastAPIReactTypeScriptMaterial-UIPythonscipy

๐ŸŽฌ Demo Video Script

Duration: 5-7 minutes
Target Audience: Technical and non-technical users interested in sports analytics


๐ŸŽฅ SCENE 1: Introduction (30 seconds)

[Screen: Title card with app logo]

Narrator:

"Welcome to the Bundesliga Poisson Analysis application - a full-stack web platform that uses statistical modeling to answer a fascinating question: Are football matches driven by randomness, or is there skill and strategy at play?"

[Transition to app homepage]


๐ŸŽฅ SCENE 2: The Problem (45 seconds)

[Screen: Show README.md section on "What is This Analysis About?"]

Narrator:

"In football, goals are relatively rare events. The Poisson distribution is a mathematical model that describes the probability of rare, random events occurring at a constant rate. If goals truly follow a Poisson distribution, it suggests that match outcomes are largely unpredictable - driven more by chance than by momentum, tactics, or psychological factors."

[Visual: Simple animation showing Poisson formula]

"Lambda - represented by the Greek letter ฮป - is the key parameter. It represents a team's average scoring rate. The higher the lambda, the more dangerous the team."


๐ŸŽฅ SCENE 3: The Data (30 seconds)

[Screen: Show backend starting up with console output]

Narrator:

"Our application analyzes real data from the Bundesliga 2023/24 season - 612 matches across 36 teams. The backend, built with FastAPI and Python, loads this data and performs statistical calculations using the scipy library."

[Screen: Show API documentation at /docs]

"We've built 5 REST API endpoints that serve team statistics, league summaries, and statistical test results. All automatically documented with OpenAPI."


๐ŸŽฅ SCENE 4: Opening the App (20 seconds)

[Screen: Navigate browser to http://localhost:5173]

Narrator:

"Let's open the application. The frontend is built with React, TypeScript, and Material-UI, providing a professional, responsive interface."

[Screen: App loads, showing header and league summary]


๐ŸŽฅ SCENE 5: League Summary (40 seconds)

[Screen: Focus on League Summary Card]

Narrator:

"The dashboard immediately presents key league statistics. We can see there were 612 matches with 1,932 total goals - averaging 3.16 goals per match."

[Highlight Home Advantage metric]

"Notice the home advantage metric: +0.37 goals. This quantifies the well-known phenomenon that teams score more when playing at home. But is this due to crowd support, familiarity with the pitch, or just chance?"

[Show top scorers chips]

"Below, we see the top home scorers ranked by their lambda values. FC Bayern Mรผnchen leads with ฮป = 3.12, meaning they score over 3 goals per home match on average."


๐ŸŽฅ SCENE 6: Context Switching (30 seconds)

[Screen: Click through Home/Away/Combined toggles]

Narrator:

"One of the app's key features is context switching. We can analyze teams' performance at home, away, or combined. Watch how the data updates instantly."

[Click "Home" โ†’ "Away" โ†’ "Combined"]

"This helps us understand whether teams perform differently based on location - a critical factor in the Poisson model."


๐ŸŽฅ SCENE 7: Lambda Scatter Plot (60 seconds)

[Screen: Scroll to Lambda Scatter Plot]

Narrator:

"This scatter plot visualizes the relationship between home and away lambda values for all 36 teams. Each point represents one team."

[Hover over a point above the diagonal line]

"The diagonal line represents equal home and away performance. Points above the line indicate teams that are stronger at home."

[Hover over FC Bayern Mรผnchen]

"Bayern Mรผnchen, for example, has ฮป_home = 3.12 and ฮป_away = 2.47 - a clear home advantage."

[Hover over a point below the line]

"Teams below the line perform better away - unusual, but it happens!"

[Hover over a point near the line]

"Teams close to the diagonal line have consistent performance regardless of location."


๐ŸŽฅ SCENE 8: Team Selection (40 seconds)

[Screen: Click on Team Selector]

Narrator:

"To dive deeper into a specific team, we use the autocomplete team selector."

[Type "Bayer" and select "Bayer 04 Leverkusen"]

"Let's look at Bayer Leverkusen, one of the league's top teams."

[Screen: Observed vs Predicted chart appears]

"This bar chart compares the observed goal frequencies from actual matches to the frequencies predicted by the Poisson model."


๐ŸŽฅ SCENE 9: Observed vs Predicted (50 seconds)

[Screen: Focus on the bar chart]

Narrator:

"Blue bars show the actual observed frequencies - what really happened in matches. Orange bars show what the Poisson model predicts based on Leverkusen's lambda value."

[Point to p-value]

"The p-value of 0.458 is greater than our significance level of 0.05, so we 'fail to reject the null hypothesis.' In plain English: Leverkusen's goal-scoring pattern fits the Poisson distribution - it appears random!"

[Contrast with a team that doesn't fit]

"But not all teams fit the model. Some show systematic patterns - perhaps momentum effects or tactical adjustments during matches."


๐ŸŽฅ SCENE 10: Chi-Square Table (60 seconds)

[Screen: Scroll to Chi-Square Table]

Narrator:

"The chi-square table shows statistical test results for all teams. This is where we definitively answer: which teams follow randomness, and which don't?"

[Click on column headers to sort]

"We can sort by any column. Let's sort by p-value to see the best and worst fits."

[Sort by p-value descending]

"Teams at the top have high p-values - their goals fit the Poisson model perfectly. Essentially, their scoring is unpredictable, driven by the randomness of the game."

[Sort by p-value ascending]

"Teams at the bottom have low p-values and show a red 'X' - they don't fit the model. This suggests systematic factors: maybe they score in bursts due to momentum, or they adjust tactics when winning or losing."

[Use filter buttons]

"We can also filter to show only teams that fit, or only teams that don't fit the Poisson distribution."


๐ŸŽฅ SCENE 11: The Backend (30 seconds)

[Screen: Show API docs at /docs]

Narrator:

"Behind the scenes, our FastAPI backend handles all calculations. The interactive API documentation allows developers to test endpoints directly."

[Click "Try it out" on /api/teams]

"Each endpoint returns structured JSON data validated with Pydantic models."

[Show response]

"All data is strongly typed and validated, ensuring reliability."


๐ŸŽฅ SCENE 12: The Code (40 seconds)

[Screen: Show code editor with key files]

Narrator:

"The project is meticulously organized. The backend contains services for Poisson calculations, chi-square tests, and data loading."

[Show test file]

"We've written 37 comprehensive unit tests with 86-100% code coverage on core logic, ensuring statistical accuracy."

[Show frontend components]

"The frontend uses modern React patterns - TypeScript for type safety, Material-UI for components, and Recharts for data visualization."


๐ŸŽฅ SCENE 13: Key Insights (45 seconds)

[Screen: Back to app, showing summary statistics]

Narrator:

"So what have we learned? In this Bundesliga season:"

[Highlight statistics as mentioned]

"- About 66% of teams fit the Poisson distribution - suggesting randomness dominates

  • The remaining 34% show systematic patterns - skill and strategy matter
  • Home advantage is real: +0.37 goals on average
  • Top teams like Bayern have ฮป values above 3, while defensive teams are closer to 1"

[Show a team that doesn't fit]

"Teams that don't fit the model might have momentum-based play styles, or perhaps they're more tactical - adjusting strategy based on match state."


๐ŸŽฅ SCENE 14: Educational Value (30 seconds)

[Screen: Show README educational section]

Narrator:

"Beyond the analysis, this application teaches statistical concepts. Users learn about probability distributions, hypothesis testing, and the scientific method."

[Scroll through explanations]

"The enhanced README explains lambda, p-values, and the chi-square test in accessible language - making statistics approachable for everyone."


๐ŸŽฅ SCENE 15: Technical Stack (30 seconds)

[Screen: Show docs/SUMMARY.md tech stack section]

Narrator:

"From a technical perspective, this is a production-ready full-stack application:"

[Show bullet points]

"- Backend: FastAPI with Python, pandas, scipy

  • Frontend: React 18 with TypeScript and Material-UI
  • Testing: pytest with high coverage
  • Deployment: Ready for Docker, Vercel, Railway, or AWS"

๐ŸŽฅ SCENE 16: Use Cases (30 seconds)

[Screen: Show different use cases]

Narrator:

"Who benefits from this application?"

[Show each use case]

"- Sports analysts can identify teams with systematic vs random performance

  • Bettors can use lambda values for probabilistic match predictions
  • Coaches might study why some teams don't fit the model
  • Students learn practical statistics with real-world data
  • Data scientists see a complete ML workflow example"

๐ŸŽฅ SCENE 17: Future Enhancements (20 seconds)

[Screen: Show docs/DEPLOYMENT.md future section]

Narrator:

"Future enhancements could include: data export functionality, multi-season comparisons, live match updates, and team-vs-team predictions."


๐ŸŽฅ SCENE 18: Conclusion (30 seconds)

[Screen: Back to main dashboard, all visualizations visible]

Narrator:

"The Bundesliga Poisson Analysis application combines rigorous statistical modeling with an intuitive user interface. It answers deep questions about sports: Is football random? How much does home advantage matter? Can we quantify team strength?"

[Slow zoom out]

"Built with modern web technologies and comprehensive testing, this project demonstrates full-stack development, data science, and thoughtful UX design. The code is open-source and ready to deploy."

[Screen: GitHub link and thank you message]

"Thank you for watching! Links to the repository and documentation are in the description. Happy analyzing!"

[Fade to black]


๐Ÿ“‹ Production Notes

Camera Angles

  • App Demo: Screen recording at 1080p
  • Code Sections: Code editor with syntax highlighting
  • Terminal: Dark theme with clear font (16px+)

Narration Style

  • Pace: Moderate, clear
  • Tone: Enthusiastic but professional
  • Technical Terms: Explain on first use

Background Music

  • Intro/Outro: Upbeat, energetic
  • Main Sections: Subtle, ambient
  • Code Sections: Minimal/silent

Editing Notes

  • Add text overlays for key statistics
  • Use arrows/highlights to point to UI elements
  • Include smooth transitions between sections
  • Add zoom effects for emphasis
  • Include code snippets as B-roll

Graphics to Create

  • Title card with app logo
  • Poisson formula animation
  • Lambda symbol visualization
  • Chi-square test diagram
  • Thank you/credits screen

๐ŸŽฌ Alternative: Short Version (2 minutes)

For social media or quick demos:

  1. Introduction (15s): What is Poisson analysis?
  2. Quick Tour (30s): Show all visualizations
  3. Key Insight (30s): One team example (fits vs doesn't fit)
  4. Tech Stack (20s): React + FastAPI + TypeScript
  5. Call to Action (15s): Link to repo

Total Runtime: 5-7 minutes (detailed) or 2 minutes (short)

What's inside

18 scenes with narrator lines, screen directions, production notes, and a 2-minute alternative script

Change this for your project

  • Replace Bundesliga Poisson Analysis with your app name
  • Replace duplys/poisson with your repository URL
  • Replace http://localhost:5173 with your app's URL
  • Replace Bundesliga 2023/24 with your dataset description

Where it goes

Keep it in your repository where the agent or team that needs it will read it.

Worth borrowing

  • Scene-by-scene breakdown with exact timings and visual cues
  • Narrator explains statistical terms (lambda, p-value) in plain language
  • Production notes for camera, music, and graphics help non-video people plan

Related Documents