Table of Contents
This tool, developed for tennis enthusiasts and sports bettors, provides a swift comparative analysis of two ATP tennis players based on essential metrics. Developed from personal insights into factors influencing match outcomes in Singles, it is ideal for users familiar with the intricacies of tennis data. Aimed at facilitating efficient decision-making, especially in sports betting scenarios, users are encouraged to acquaint themselves with the primary metrics before utilization.
It would take me ages to explain the theory behind this, but to summarize, these are the metrics I primarily consider:
- Match percentage: Serves as a key indicator of a player's current form. It offers a comprehensive view of the number of matches played and won by the players in the current year, considering all surfaces.
- RPW/SPW ratio: Analyzes the cross-section of service and return stats to gauge a player's defensive capabilities and advantages over their opponent. Example: A player excelling in receiving against an opponent with weak service indicates a significant advantage.
- Raw Elo: Leverages Tennis Abstract's Elo ratings, deemed more reliable than official ATP rankings. I tend to focus on the Raw Elo specific to the surface of the match under consideration.
- Peak Match: Identifies the pinnacle of a player's career based on Elo performance. Another indicator of a player's form: the more recent the peak match, the better. However, there are cases when this is irrelevant; learning when to take this into account requires time.
- Wildcards / Qualifiers: Draws attention to the impact of wildcards and qualifiers as potential surprises, particularly in the early stages of a tournament. There are psychological and motivational factors contributing to their unpredictability, hence I recommend considering this in the analysis as well.
- Install Python and add to PATH
- Create and activate virtual environment
- Clone or download the repository
- Install all dependencies and download Chromedriver
- Provide the path to Chromedriver in scraper.py
- Once a year you might also want to update line 43 of scraper.py to ensure you take stats of the current year
- Run main.py
- Enter all the requested information
- Wait for the script to generate the results
- Review the results and make your own decisions (again, it would take me a while to explain how I interpret the returned information)
Please note that for player names, they must match the format on Tennis Abstract.
Any contributions are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! 🌟
M. Pomar - @deliverymgt - m.pomar@outlook.com
Project Link: https://github.com/mpomar/TennisAnalysis
First and foremost, I would like to express my gratitude to Tennis Abstract. This small project would not have been possible without the extensive data they have collected over the years and generously shared with the public on the Internet. It is undoubtedly the best resource available for tennis enthusiasts, and I strongly encourage you to delve deeper into their statistics for additional insights. While the script utilizes what, based on my experience, are the most crucial factors in evaluating a tennis match, there is much more valuable information to discover on their website. Keep up the excellent work, guys! ❤️
Other resources: