CF Rating Predictor: Visualize your potential rating trajectory with VP history
Difference between en4 and en5, changed 797 character(s)
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↵
↵
![CF Rating Predictor Demo](/predownloaded/3e/e5/3ee5e0df9bf8006b4e402beeba283001fd18f3f9.png)↵
↵
**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!
↵
↵
Update (2025-01-09): Enhanced Data Synchronization↵
--------------------------------------------------↵
↵
Based on user feedback regarding data caching issues, I have pushed a significant update to the Cache Management system:↵
↵
New "Refresh Personal Data" Button: I replaced the generic "Clear Cache" button with a smart refresh feature.↵
↵
Fix for Recent VPs: Previously, if you participated virtually in a contest and then re-checked immediately, the data might not update due to disk caching. This update ensures that clicking the refresh button forces a re-fetch of your latest rank and VP status.↵
↵
Fix for "Handle Not Found": Solves edge cases where a handle was incorrectly cached as "invalid" or "no data."

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en5 English vivid_stareium 2026-01-08 22:05:19 797
en4 English vivid_stareium 2026-01-07 01:00:22 18
en3 English vivid_stareium 2026-01-07 00:54:34 0 (published)
en2 English vivid_stareium 2026-01-07 00:33:44 82 Initial post: Introducing CF Rating Predictor
en1 English vivid_stareium 2026-01-07 00:01:56 2230 Initial revision (saved to drafts)