AHStats — your main-arena career, without the copy-paste
All credit to Spatula for the orig idea, this app is all new code, but Spatula was the inspiration!
It scrapes your pilot and squad info from the HiTech stats site into a local database and gives you a career summary, per-tour breakdowns, a kills-by-plane matrix, squad rosters and arena leaderboards — with charts, and CSV/HTML export if you want to take it elsewhere.
Only one full career is loaded in it so far, which is mine, so every demo number below is me — warts included. Consider it a worked example rather than a brag:
212 tours, April 2001 to June 2026. 2,786 hours in the air — 116 days of my life, apparently.
Hurricane Mk IIC: 1,290 kills. More than a third of everything the per-plane pages tracked, and nearly 8× the next type. I also died in it 962 times, so it earned its keep.
Ship gunners have killed me 216 times. I have killed a ship gunner zero times. The app will tell you this in a nice sortable grid, in case you enjoy watching a man confront himself.
The P-51D and I are dead even — 153 to 156 — after twenty-five years. Some things just don't resolve.
The point isn't my flak problem, it's that once your own career's in there, all of this is a click. Best tour, best rank, which plane actually earns its slot, who keeps killing you — it's all queryable.
One caveat: the per-plane matrix covers 3,624 of my 6,595 career kills, because those pages only exist for tours where HTC published them. The career totals are complete; the per-plane view is as complete as the source allows, and the app says so rather than pretending.
Get it: AHStats.exe from the releases page, no Python needed. Defender may flag it as a false positive on first run — that's the usual PyInstaller single-exe heuristic, not the app doing anything; restore it from quarantine, or build from source yourself, the code's all in the repo.
Getting it running
1. Download. Grab AHStats.exe from the releases page. That's the whole thing — no Python, no installer, no dependencies. Put it wherever you like and double-click it.
Defender may flag it as a false positive on first run. That's the usual PyInstaller single-exe heuristic, not the app doing anything; restore it from quarantine, or build from source yourself — the code's all in the repo. It keeps its database and log in %LOCALAPPDATA%\AHStats, so it won't scatter files where you put the exe.
2. First sync. Type your in-game ID in the Pilot/Squad ID box, click the arena you actually fly (Melee for most people), leave Sync Mode on Full History, and hit Sync Full History.
Then go and do something else. It's pulling every tour that arena has ever had — In my case 226 of them for Melee — and it deliberately waits 3 seconds between requests so it isn't hammering HTC's server for a hobby project. Expect 15 to 35 minutes for a long career, less if you started recently. The progress bar tells you where it's up to, Stop quits cleanly, and if you close the app mid-sync it offers to resume from where it stopped next time you open it.
You only ever do that once. After the first run it fetches just the new tour, which takes seconds.
3. Look at it. The tabs are populated from that point on: Career Summary for the lifetime totals, Tour Detail for one tour, Tour History for all of them in one grid, Kills by Plane for the matrix. Every grid sorts on a left-click and filters on a right-click, and exports to CSV or HTML if you want it elsewhere.
For a squad, flip the pilot/squad toggle and put the squad name in the same box. For someone else's squad roster, the Squad tab takes any player name and any tour.
https://github.com/steelington/AHStats





