Bouldering Tracker

Log every gym session, track your V-scale or Font grade progress, and see your sends, flashes, and projects visualised over time. Everything stays in your browser — no account, no server.

Log a Problem

0 problems logged
Date Gym Grade Result Attempts Notes

How it works

Every problem you log is stored as JSON in your browser's localStorage — nothing is sent to a server. The tracker runs entirely in JavaScript.

Send Rate (Sends + Flashes) ÷ total logged × 100 per grade
Attempt-to-Send Ratio Total attempts ÷ number of sends (how many tries per completed problem)
Grade Progression Highest numeric grade you sent or flashed on each unique date
Volume Trend Count of problems logged per session, stacked by result type

Example: three V5 logged — 1 flash, 1 send in 3 attempts, 1 project — gives a 66.7 % send rate and an attempt-to-send ratio of 2.0 for V5.

Frequently asked questions

What is the difference between a Flash, Send, Project, and Attempt?
A Flash means you completed the problem on your very first try with no prior knowledge of the beta. A Send (or "redpoint") means you completed it after one or more failed attempts. A Project means you are still working on it — you've tried it but haven't topped it yet. An Attempt is any partial try that didn't top out. The tracker counts flashes and sends together toward your send rate, but keeps them separate in charts so you can see your on-sight efficiency.
How do V-scale and Font grades compare?
The V-scale (invented by John "The Verm" Sherman) is the standard in North America, running from VB (beginner) through V0–V17. The Fontainebleau (Font) scale, used in Europe and many international gyms, runs from 3 through 9a and uses suffixes like + and letters (e.g. 6a, 6a+, 6b). Roughly: VB ≈ 3–4, V0 ≈ 4+, V2 ≈ 5c, V4 ≈ 6b+, V6 ≈ 7a, V8 ≈ 7b+, V10 ≈ 7c+, V12 ≈ 8b. The tracker stores grades as-is in whichever system you choose — you can mix both within the same log.
Is my data safe? Will it be lost if I clear my browser?
All data lives in your browser's localStorage under the key bt_problems. It persists across page refreshes and browser restarts, but it will be lost if you clear site data or use private/incognito mode. Use the Export CSV button regularly to keep a backup copy. The CSV contains every field and can be re-imported later if you build a custom script, or opened in any spreadsheet app.