π¬ Demo Video Script
Guides recording a 5-7 minute demo of a sports analytics app, covering statistical concepts, UI walkthrough, and codebase highlights.
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
π¬ 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:
- Introduction (15s): What is Poisson analysis?
- Quick Tour (30s): Show all visualizations
- Key Insight (30s): One team example (fits vs doesn't fit)
- Tech Stack (20s): React + FastAPI + TypeScript
- 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 Analysiswith your app name - Replace
duplys/poissonwith your repository URL - Replace
http://localhost:5173with your app's URL - Replace
Bundesliga 2023/24with 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
βοΈ Content Creation Prompts
Provides 10 structured prompt templates for creating blog posts, social captions, email sequences, ad copy, video scripts, case studies, subject lines, repurposing plans, landing pages, and newsletters.
Demo Video Script - Kinetic Ledger
Provides a complete 10-scene video script for demoing a blockchain-based fitness fraud detection app, including voiceover, visuals, and post-production checklist.
Scriptwriting
Converts a research brief into a structured video script with timed segments, visual types, and narration rules for two specific formats.
Demo Video Script (30-60 Seconds)
Guides recording and editing a 30, 60 second product demo video with a timed script, screen prep, and post-production steps.