Hello Codeforces!↵
↵
I’m excited to share a tool I’ve been working on: CF Rating Predictor.↵
↵
While many tools display official rating changes, we often lack a way to quantitatively represent the impact of our Virtual Participations (VP) during training. This tool integrates your actual contest history with your VP records to simulate a continuous rating trajectory, giving you a measurable view of your progress.↵
↵
Live Demo: https://cf-vp-predictor-7pgzwzseurssuzy5uqktit.streamlit.app/ GitHub: https://github.com/vividStareium/cf-vp-predictor↵
↵
↵
↵
**Features**↵
↵
VP Integration: Automatically scans your submission history to find Virtual Participations and calculates their potential impact on your rating.↵
↵
Smart Simulation Algorithm: For each VP, the tool finds "proxy" participants from the same contest with similar ratings to calculate a realistic rating Delta.↵
↵
Unrated Contest Support: Includes logic to handle unrated scenarios based on rating caps and provides a toggle to show or hide these contests in the chart.↵
↵
Advanced Visualization: Optimized chart rendering that handles "time-clustered" matches (contests occurring close in time) by dynamically calculating axis offsets to prevent overlapping.↵
↵
**Technical Highlights & Optimizations**↵
↵
Since Codeforces has a vast amount of contest data, I focused heavily on performance:↵
↵
Storage Efficiency: Redesigned the data storage format for both memory and disk using compact structures, significantly reducing resource pressure.↵
↵
Concurrency: Implemented batched requests using ThreadPoolExecutor to speed up data fetching while remaining stable and respecting API rate limits.↵
↵
Lazy Loading: Contest data is synced to the local cache only when needed, ensuring the initial load is as fast as possible.↵
↵
**How to use**↵
↵
Enter your Handle.↵
↵
Set your Initial Rating (the rating you had before your first recorded contest/VP).↵
↵
Toggle "Show Official Rating Comparison" to see the gap between your real path and the simulated one.↵
↵
I'd love to hear your feedback or suggestions for new features!
↵
I’m excited to share a tool I’ve been working on: CF Rating Predictor.↵
↵
While many tools display official rating changes, we often lack a way to quantitatively represent the impact of our Virtual Participations (VP) during training. This tool integrates your actual contest history with your VP records to simulate a continuous rating trajectory, giving you a measurable view of your progress.↵
↵
Live Demo: https://cf-vp-predictor-7pgzwzseurssuzy5uqktit.streamlit.app/ GitHub: https://github.com/vividStareium/cf-vp-predictor↵
↵
↵
↵
**Features**↵
↵
VP Integration: Automatically scans your submission history to find Virtual Participations and calculates their potential impact on your rating.↵
↵
Smart Simulation Algorithm: For each VP, the tool finds "proxy" participants from the same contest with similar ratings to calculate a realistic rating Delta.↵
↵
Unrated Contest Support: Includes logic to handle unrated scenarios based on rating caps and provides a toggle to show or hide these contests in the chart.↵
↵
Advanced Visualization: Optimized chart rendering that handles "time-clustered" matches (contests occurring close in time) by dynamically calculating axis offsets to prevent overlapping.↵
↵
**Technical Highlights & Optimizations**↵
↵
Since Codeforces has a vast amount of contest data, I focused heavily on performance:↵
↵
Storage Efficiency: Redesigned the data storage format for both memory and disk using compact structures, significantly reducing resource pressure.↵
↵
Concurrency: Implemented batched requests using ThreadPoolExecutor to speed up data fetching while remaining stable and respecting API rate limits.↵
↵
Lazy Loading: Contest data is synced to the local cache only when needed, ensuring the initial load is as fast as possible.↵
↵
**How to use**↵
↵
Enter your Handle.↵
↵
Set your Initial Rating (the rating you had before your first recorded contest/VP).↵
↵
Toggle "Show Official Rating Comparison" to see the gap between your real path and the simulated one.↵
↵
I'd love to hear your feedback or suggestions for new features!




