v2.2.1 โ€ข Patch Release โ€ข Latest

Security Hardening, SEO Discoverability & API Catalog

October 9, 2026
๐Ÿ›ก๏ธ Security

HSTS Headers & Brute-Force Authentication Lockout

Equipped all HTTP responses with Strict-Transport-Security: max-age=31536000; includeSubDomains to enforce encrypted HTTPS connections. Hardened the admin authentication endpoint (/api/admin/verify) with IP-aware brute-force protection (extracting client IPs via CF-Connecting-IP / X-Forwarded-For) that enforces a 15-minute HTTP 429 lockout after 5 consecutive failed attempts alongside an intentional 1.0-second delay penalty against automated dictionaries.

๐ŸŒ Discoverability

Search Engine Indexing, Sitemaps & Rich Social Sharing

Generated automated /robots.txt and standard XML /sitemap.xml for web crawlers. Embedded OpenGraph, Twitter Card, and Schema.org JSON-LD structured metadata across all site pages to render rich preview cards on Discord, Reddit, Slack, and social platforms. Configured canonical tags referencing the primary domain axeprogress.com.

๐Ÿ”’ Responsible Disclosure

RFC 9116 security.txt Standard

Implemented the industry standard /.well-known/security.txt security policy and disclosure channel for responsible vulnerability reporting, linked in the platform footer.

๐Ÿ“– Admin Console

Interactive Site REST API Directory

Added a searchable and filterable directory of all 30 local REST API endpoints directly within the Admin Console, detailing HTTP methods, authorization requirements, accepted query/body parameters, and caching policies.

v2.2.0 โ€ข Minor Release

Two-Phase Prioritized League Sync, Interactive Admin Sorting & Operational Hardening

October 9, 2026
โšก League Sync

Two-Phase Prioritized Roster Synchronization

Introduced a high-performance two-phase pipeline for league roster syncing via the League Dossier modal (Sync All Players) and Admin Console (Sync League). Phase 1 (~5โ€“8s) synchronizes only active league night matches and records within 48 hours, immediately hot-reloading standings, schedules, and throw lore in place. Phase 2 continues in the background with an unobtrusive progress stepper to asynchronously backfill remaining career match sheets without locking the user interface.

๐Ÿ“Š Admin Console

Interactive Column Sorting

Added full multi-column client-side sorting across the administrative player registry. Columns for Player ID, Name, Collins Rating, Stored Matches, Last Synced, and Sync Cooldown now support two-way ascending and descending sorting with ARIA-compliant sort state indications.

๐Ÿ›ก๏ธ Security & Reliability

Database Write Serialization & Adversarial Hardening

Elevated SQLite write serialization to a shared database-level async mutex, preventing lock contention across concurrent background syncs. Enforced admin authentication on hard cache purges (full_refresh=true), sealed task-cancellation permit leaks in outbound rate limiters, eliminated startup migration table scans, and added a dedicated database-verified /healthz readiness endpoint.

v2.1.1 โ€ข Patch Release

Admin Sync Accuracy, Trophy Case Color Harmonization & Slate Palette Polish

October 7, 2026
๐Ÿ› ๏ธ Admin & Data Pipeline

Accurate Individual Player Sync Timestamps

Fixed the Last Synced (UTC) column in the admin players registry table to display each thrower's authentic match sheet synchronization timestamp (last_synced_at) rather than falling back to bulk directory upsert timestamps (updated_at). Players who have not yet had individual match sheets synchronized now clearly display a formatted Never status.

๐Ÿ† Trophy Case

Unified Slate Podium Cards with Distinct Metal Labels

Eliminated muddy reddish-brown backgrounds across the Trophy Case modal. Champion (1st), Finalist (2nd), and Podium (3rd) summary boxes and historical seasonal finish cards now all share the identical cool dark slate container styling as 2nd place (bg-slate-900/60 border-slate-800). Finishes are distinguished cleanly via gold (#eab308), silver (#cbd5e1), and bronze (#f59e0b) typographic highlights without jarring high-contrast card background clashes.

๐ŸŽจ Visual Cohesion

Dark Theme Harmonization & Translucent Amber Accents

Audited and refreshed cards, pills, and alert banners across the site to replace opaque brown slabs with clean dark slate containers and glowing translucent accents. Updated offline notice banners, upstream outage alerts, upcoming match make-up badges, toss-up indicators, tactical trait badge fallbacks, and the profile banner Lane Scout drawer trigger. True red is strictly reserved for actionable attention states such as losses, negative rating shifts, and system errors.

v2.1.0 โ€ข Minor Release

Dashboard Consolidation, Lane Mode Default, Terminology Standardization & E2E Test Suite

October 6, 2026
๐ŸŽฏ Unified Interface

Consolidated Throw Progression & Score Distribution Card

Merged the upper Throw Rhythm Sequence Diagnostics card and the lower Score Distribution Table into a single authoritative Throw Progression & Score Distribution card. In Lane Mode, throwers see high-signal diagnostics and responsive micro-bar progression cards (T1 โ†’ T5). In Pro Mode, an integrated view switcher allows seamless toggling between visual cards and the comprehensive 7/5/3/1/0 tabular breakdown. Sudden Death overtime records and milestone rounds (Natural 25s, Supernatural 27s, 75 Club, 81 Club) are integrated directly beneath the active data view.

๐Ÿ“Š Data Visualization

Full-Width Opponent Tier Performance Chart

Relocated the Opponent Scoring Tier Performance chart from its previous cramped split-column layout beside the duplicate score table into a clean, dedicated full-width card in Pro Mode. Provides Chart.js with substantial horizontal canvas width to clearly plot win rates and scoring averages across Elite (โ‰ฅ68), Competitive (62โ€“67.9), Mid-Tier (55โ€“61.9), and Developing (<55) tiers.

๐Ÿ“ฑ Mobile Venue UX

Lane Mode Default & Micro-Card Responsiveness

Established Lane Mode as the default view mode across the platform for immediate, low-clutter venue scouting. Progression cards have been compacted with 5px slim micro-bars and a 2-column mobile wrap to completely eliminate horizontal container clipping on mobile screens, with user view preference seamlessly preserved in localStorage.

๐Ÿ“… Information Architecture

Upcoming Matches Promoted to 2nd Tab

Promoted Upcoming Matches to the 2nd tab immediately following Overview in both the navigation bar and view hierarchy (Overview & Intelligence โ†’ Upcoming Matches โ†’ Seasons & Tournaments โ†’ Opponent Matrix & Scouting โ†’ Circuit & Majors), providing immediate access to upcoming scheduled matchdays and pre-match opponent intelligence.

โœจ UI Polish & De-Duplication

De-Duplication of Tactical Traits & Dynamic Discipline Filtering

Eliminated stacked duplicate trait strips: in Lane Mode, the banner badge strip is hidden so the inline Lane Scout dossier holds single authoritative prominence, while Pro Mode retains the compact summary and drawer trigger. Furthermore, unplayed disciplines (0 matches, such as Big Axe or Knives for Standard-only throwers) are automatically hidden in Lane Mode so active disciplines expand cleanly, and dimmed with subtle opacity in Pro Mode.

โš–๏ธ Terminology & Metrics

Standardized Rubber Deciders & Symmetric Situational Clutch

Standardized on Rubber Deciders (R3) across profile KPIs, Lane Scout cards, and modal dialogs, unifying previously split naming. Renamed situational clutch to Situational Clutch Performance, updated trailing metrics to When Trailing Entering T5 to avoid collision with margin-of-victory modeling, added When Tied Entering T5 to complete the symmetric Leading / Tied / Trailing tri-state breakdown, and added a direct View Complete Opponent Matrix โ†’ bridge to the H2H tab.

๐Ÿงช Automated Testing

Playwright End-to-End Browser UI Test Suite

Integrated pytest-playwright with 8 comprehensive end-to-end headless Chromium tests verifying landing page interactivity, default Lane Mode styling, Pro mode toggling, DOM hydration, mobile viewport adaptation without clipping, modal keyboard escape dismissal, consolidated throw card view switching, and cross-tab navigation.

v2.0.0 โ€ข Major Release

Competitive Axe Throwing Intelligence Suite, Lane Mode & Materialized Analytics

October 6, 2026
๐ŸŽฏ Competitive Intelligence

Throw Rhythm Diagnostics & Sequence Tracking

Introduced sequence-level breakdown across all throws in a match round (T1 โ†’ T5 for Standard, T1 โ†’ T7 for Premier). Calculates the Cold Start Delta (evaluating opening throw vulnerability vs mid-round stability) and Pre-Clutch Focus Stability (evaluating whether a thrower tightens up or drops form on throw 4 before calling clutch). Visualized through an interactive 5-bar rhythm progression chart.

โ„๏ธ Leverage Clutch & Ice Factor

High vs. Low Leverage Clutch Analytics

Evaluates clutch shots by true competitive stakes. Distinguishes High-Leverage / Must-Hit attempts (โ‰ค 6 pt differential entering throw 5, where hitting clutch directly decides the round outcome) from Low-Leverage / Insulated attempts (โ‰ฅ 7 pt differential entering throw 5, where the round is mathematically decided). Computes the Ice Factor and categorizes throwers with competitive ratings (Ice in Veins, Pressure Sensitive, or Equanimous).

๐Ÿ“ Discipline Translation

Standard vs. Premier Finesse Modeling

Models true competitive discipline physics: identical target ring geometry, but Standard governed by 50% blade majority versus Premier governed by touching the lowest line and a 5/7 split clutch. Translates scoring across formats to quantify Bullseye Retention Rate, Finesse Index, and cross-discipline clutch conversion differentials.

๐Ÿ“ฑ Mobile Venue UX

Lane Mode & 5-Second Lane Scout Drawer

Added view mode switcher between Lane Mode (optimized for fast mobile scouting between throws in venue lighting) and Pro Analytics Mode (deep data explorer). Features tactical competitor badges (Cold Starter, Ice in Veins, Game 3 Closer, Bullseye Machine) and a dedicated Lane Scout Quick View drawer summarizing opening round win rates, deciding Game 3 records, and clutch reliability at a glance.

โšก Performance & Storage

Ingestion Differential Calculation & Materialized SQLite Cache

Pre-calculates score differentials entering throw 5 (differential_before) and tags is_high_leverage directly during match ingestion in SQLite with specialized indexing. Full analytics summaries are materialized and cached in player_analytics_materialized for sub-2ms instant cold starts, with automated cache invalidation upon sync.

v1.1.0 โ€ข Minor Release

Two-Tier Prioritized Sync, Summary Caching, Offline PWA & Site-Wide Harmonization

October 6, 2026
โšก Performance Architecture

Two-Tier Prioritized Match Syncing (Active Season in 2โ€“3s)

Implemented a two-tier synchronization pipeline that prioritizes active and recent season matches (within 90 days or current season) in Tier 1 so thrower profiles and active metrics render in 2โ€“3 seconds. Historical career seasons (hundreds of matches) seamlessly backfill asynchronously in Tier 2 with real-time progress updates, rating timeline reconstruction, and intermediate dashboard refreshes.

๐ŸŽ๏ธ In-Memory Caching

Materialized Summary Caching & Thread-Safe Eviction

Engineered an in-memory summary cache inside AnalyticsEngine with thread-safe lock management, deep-copy response isolation, and sub-millisecond query returns. Filter switches (Standard, Premier, Big Axe, timeframes) and repeated profile visits no longer trigger expensive multi-table joins. Caches automatically invalidate upon background sync milestones, Tier 1 completions, or administrative record deletions.

๐Ÿ“ฑ Mobile & Offline PWA

Lane-Side Offline Service Worker & Web App Manifest

Added full Progressive Web App (PWA) support with a Web App Manifest (manifest.json) and root-scoped Service Worker (/sw.js). Features stale-while-revalidate API caching for thrower summaries and cache-first delivery for CSS, JS, and vendor dependencies, guaranteeing full functionality and opponent scouting access inside axe venues with poor or dead cellular reception. Added automated offline/online status alerts.

๐Ÿงญ Navigation & Routing

Cross-Page Header Harmonization, Admin Layout Alignment & Dedicated Player Toolbar

Standardized top headers across all pages with unified branding, the "Not affiliated with IATF" companion badge, and complete reciprocal navigation links across all views (Insights, Changelog, About & Policy, Support, and Dashboard). Decluttered the header by moving thrower search and discipline/time range filter pills out of the global header into a dedicated player controls toolbar on the active dashboard, eliminating redundant search inputs on the landing page. Aligned the Admin Console padding and container width to precisely match all other views.

โ™ฟ Accessibility (a11y)

Keyboard Tab Navigation, ARIA Attributes & Semantic Form Elements

Added full ArrowLeft, ArrowRight, Home, and End keyboard navigation to the dashboard tab list with synchronized aria-selected, tabindex, and URL hash routing. Converted unsemantic search dropdown items to accessible <button type="button" role="option"> elements, added role="group" with synchronized aria-pressed toggles across all filter groups, added scope="col" across data tables, and replaced misleading external link icons on internal thrower profile switches.

๐ŸŽจ UI & Responsiveness

Consistent Max-Width Alignment, Premier Badge Styling & Modal Dismissal

Unified the main column container width across all secondary views (Changelog, About & API Policy, Community Insights) to max-w-7xl, matching the main Dashboard layout for consistent usable screen real estate. Corrected league standings placeholder colspans to 7 columns, wrapped the rating history ledger in horizontal scroll containers, added bottom close dismissal buttons to the League Dossier modal, styled Premier league badges with distinct purple palette styling, and eliminated redundant hardcoded inline border colors.

๐Ÿ”„ Data Sync & Accuracy

Full Historical Match Ingestion & Fresh Database Sync Resolution

Fixed an issue in _determine_needed_match_ids where fresh database initializations erroneously applied a 90-day recency cutoff to unrecorded historical matches, truncating veteran player records from hundreds of career matches down to recent matches. All unrecorded historical matches are now comprehensively ingested while continuing to preserve intelligent skip logic for old completed matches during subsequent delta syncs.

โœจ UI Polish & Stability

Glitch-Free Match Syncing & Cumulative Layout Shift Elimination

Eliminated cyclical polling and alert toggling during match synchronization. Scoped tier-readiness tracking, added silent in-memory dashboard updating for intermediate and completion milestones, and delegated sync progress exclusively to the dedicated live progress banner. Fixed CSS stacking contexts (z-index) on the player toolbar so the thrower autocomplete search dropdown cleanly overlays on top of profile cards and metrics without being clipped.

v1.0.0 โ€ข General Availability

General Availability: Security Hardening, Zero-Rate Precision & Out of Beta

October 5, 2026
๐Ÿš€ Official Release

Out of Beta & General Availability Milestone

AxeProgress officially graduates from beta to v1.0.0 General Availability following comprehensive 5-dimensional security, logic, and operational hardening across all core services.

๐Ÿ›ก๏ธ Security Hardening

Fail-Closed Admin Auth, Strict CSP & DOM XSS Elimination

Hardened admin endpoints to fail closed with 503 Service Unavailable when unconfigured in production, removed external CDNs from Content Security Policy (CSP) for pure 'self' isolation, and added attribute-safe quote escaping (escapeJsAttr) across interactive opponent selection modals.

๐ŸŽฏ Simulation Accuracy

True Zero-Rate Preservation & Sudden Death Resilience

Fixed falsy rate fallbacks in the Monte Carlo simulation engine to accurately preserve legitimate 0.0% clutch and sudden death win rates, with built-in zero-sum defense for unplayed overtime match states.

v0.11.0 (Beta)

Schedule Monte Carlo Forecasts, Prediction Accuracy Analytics & Bayesian Calibration

September 5, 2026
๐ŸŽฒ Monte Carlo Forecast

Schedule Win Probability & Spread Modeling

Integrated an interactive Monte Carlo Forecast mode across league schedules, displaying projected win probabilities, score spreads, Tale of the Tape comparisons, and dynamic ๐Ÿ”ฅ Toss-Up and โšก Upset Alert indicators.

โš–๏ธ Outcome Analysis

Side-by-Side Actual Results & Forecast Verification

Completed matches in the forecast view now render side-by-side actual scorelines alongside the prediction model, clearly highlighting verified favorite wins (โœ“ Forecast Verified) or underdog upsets (โšก Upset Occurred).

๐Ÿ“Š Model Accuracy

Overall & Per-Week Forecast Accuracy Tracking

Introduced a 4-card overall accuracy KPI banner tracking overall forecast success rates, total verified matches, logged upsets, and pending matches, alongside per-week accuracy breakdown pills.

๐Ÿง  Bayesian Modeling

Sample-Size Shrinkage & Clutch Regression to the Mean

Calibrated the simulation engine with Bayesian sample shrinkage toward league baselines ($K = 60\text{ axes}$) and clutch regression ($K = 10\text{ calls}$), guarding against small-sample distortions in early-season matchups.

v0.10.1 (Beta)

Situational Clutch Precision, Dynamic 75 Club Synthesis & Gzip Acceleration

September 5, 2026
๐ŸŽฏ Clutch Accuracy

Pre-Throw Situational Score Differential Analysis

Corrected situational clutch calculations (When Leading, When Trailing / Comeback Pressure, and Level / Tied) to evaluate the pre-throw round score differential entering Throw 5 (r.player_score - t.score vs r.opponent_score - 5.0). Eliminates post-throw feedback distortion where hitting a clutch 7 previously flipped trailing comeback rounds into leading statistics.

๐Ÿ† Milestone Synthesis

Dynamic 75 Club Synthesis for Premier Seasons

Milestone badges for the 75 Club are now dynamically synthesized and enriched directly from the thrower's stored league seasons with averages $\ge 75.0$, bridging upstream registry synchronization gaps across modern Premier seasons.

โšก Performance

Dynamic HTTP GZip Compression Middleware

Enabled FastAPI GZipMiddleware with a 1 KB threshold, providing automatic gzip compression across all JSON payloads, HTML templates, and static assets.

v0.10.0 (Beta)

Community & Insights Hub, Skills Championships & Hall of Endurance

September 4, 2026
๐Ÿงญ Insights Hub

Dedicated Community & Insights Page (/insights)

Established a dedicated community home page highlighting long-form endurance duels, official IATC skills competition standings, and historical scoring lore, keeping the About page focused purely on architecture, telemetry, and API stewardship.

โšก Endurance

Hall of Endurance Coverage & Playoff Transparency Disclaimer

Relocated the sudden death marathon leaderboard with explicit dataset visibility documentation detailing the coverage of regular season matches and 1-day tournaments versus aggregate-only Week 8 league playoffs.

๐ŸŽฏ Skills Contests

Official IATC Skills Competitions Ingestion (GET /api/skills/{type})

Ingested official AxeScores competition results across all four core IATC skills disciplines: Ambidextrous (Ambi), Doubles, Time Trial, and Around The World.

v0.9.0 (Beta)

League Clutch Intelligence, Sudden Death Marathon Leaderboard & Historical Podiums

September 4, 2026
๐ŸŽฏ Clutch Accuracy

League Dossier Standings & Season Clutch Accuracy Display

Added dedicated clutch calling percentage and success metrics directly into the League Dossier standings table and the Active Season overview header cards (e.g. 50.0% (42/84) with detailed 7s breakdowns), providing granular insight into thrower clutch performance under competitive pressure.

โšก Hall of Endurance

Longest Sudden Death & Big Axe Tiebreaker Leaderboard (GET /api/records/sudden-death-marathons)

Introduced a new fun statistics section on the About page tracking the longest sudden death overtime duels and Big Axe tiebreakers across all stored matches in the platform database. In addition, throwers now have their personal longest sudden death duel highlighted directly in their profile overview scouting card.

๐Ÿ† Trophy Case

Consolidated League Championships & Playoff Podiums

Added a historical podiums summary to the thrower's Trophy Case modal and accolades tray, computing 1st place championship titles, 2nd place finalist finishes, and 3rd place podium finishes entirely from cached player profile seasons without generating extra upstream network requests.

๐Ÿ“… Data Integrity

Factual Dates Verification & Ledger Integrity

Refined the Collins Rating History ledger and match tables to display exact single-day tournament dates or event week labels without synthetic weekly date estimations.

v0.8.0 (Beta)

Public Site Statistics, Telemetry Transparency & Admin Streamlining

September 2, 2026
๐Ÿ“Š Public Transparency

Live Platform Statistics & Outbound Upstream Telemetry

Launched the Live Site Statistics & Telemetry dashboard on the About page, exposing local platform storage footprint (players, matches, throws, leagues, venues, milestones, circuit rankings, SQLite DB size), time-windowed API calls (24h/7d/30d), total wire bandwidth retrieved, 24h average roundtrip latency and pacing delay, and upstream success rate.

๐ŸŒ API Telemetry

Granular AxeScores API Endpoint Breakdown Table

Added a granular telemetry table categorizing requests and wire bandwidth across all active synchronization categories: /match, /player, /ratings, /records, /club, /iatc, /tournament, and /league.

โš™๏ธ Architecture & Admin

Public Site Stats API (GET /api/site-stats) & Admin Console Streamlining

Created a dedicated public JSON endpoint GET /api/site-stats for live telemetry inspection without authentication. Cleaned up the Admin Console to remove redundant metrics and keep the interface focused strictly on player cache controls, force synchronization, and real-time request logging.

v0.7.0 (Beta)

Tale of the Tape Competitor Comparison & Universal Scouting

August 31, 2026
๐ŸฅŠ Competitor Intelligence

Granular Side-by-Side Performance & Situational Advantage Meters

Launched the Tale of the Tape comparison modal, comparing 3s, 1s, drop percentages, aimed throw accuracy (Throws 1โ€“4), clutch call frequencies, and situational clutch conversion across leading, trailing comeback pressure, and tied scenarios. Includes dynamic temporal chips (Active Year 2026, 90 Days, 60 Days, 30 Days), discipline selectors, and full unbounded direct encounter match history.

๐ŸŒ Directory Search

Universal Global Thrower & Rival Search

The Interactive Scouting Dossier search bar now indexes across both encountered past rivals and 27,000+ unencountered global directory throwers with automatic background match sheet caching and instant profile simulation.

โšก Performance

Parallel Profile Query Execution

Engineered a dedicated get_comparison_profile engine utilizing multi-threaded concurrent execution (ThreadPoolExecutor) to extract comparative profiles in parallel, cutting comparative query latency by over 55%.

v0.6.2 (Beta)

Deterministic Tournament & Marathon Classification

August 30, 2026
๐ŸŽฏ Analytics Accuracy

Physical Duration-First Hierarchy & Match Date Clustering

Replaced keyword title heuristics with a physical date-span hierarchy. Events spanning โ‰ค 4 days (Ironman tournaments, Daddy's Daycare, Super Bowl Sunday, Farewell Marathons) are deterministically classified as tournaments, while leagues spanning โ‰ฅ 14 days are classified as multi-week regular seasons. Added match calendar clustering analysis for undated events.

v0.6.1 (Beta)

Platform Performance Sweep & Sub-Millisecond Query Optimization

August 30, 2026
โšก Performance

Sub-Method Analytics Acceleration & Query Optimization

Conducted an end-to-end performance sweep of the entire analytics engine. Eliminated nested 1.5M row scans in get_perfect_round_breakdown (dropping query latency from 220ms to 2.5ms, an 85x speedup), optimized sudden death tiebreaker round scans from 39ms down to 7ms, and replaced chunked N+1 database queries with fast indexed batch operations.

๐Ÿ—„๏ธ Database Architecture

Composite Covering Indexes & Single-Pass Aggregation

Engineered dedicated composite covering indexes across throws, rounds, and matches (idx_rounds_player_match_order, idx_throws_player_match_clutch, idx_throws_player_round_score) and consolidated situational clutch metrics into a unified single-pass SQL execution. Yields up to 71% profile loading latency reduction across heavy multi-thousand match profiles.

v0.6.0 (Beta)

Tournament Circuit Standings, IATC Bubble Tracker & Rating Ledger

August 30, 2026
๐Ÿ“ˆ Interactive Ledger

Collins Rating History Ledger & Match Explorer

Added a full-featured Rating Ledger modal accessible directly via the rating progression header or by clicking any data point on the Chart.js line graph. Features instant opponent and league text search, multi-axis filtering (Wins/Losses, Rating Gains/Drops, High Stakes โ‰ฅ10 pts), multi-criteria sorting, dynamic summary KPIs (Filtered Net ฮ”, Peak in View, Best Win ฮ”, Toughest Drop ฮ”), and smooth internal table scrolling.

๐Ÿ† Circuit & Majors

IATF Tournament Circuit Standings & Seed Gap Analysis

Track official tournament rankings across all sanctioned divisions with active competitor counts and field percentiles (e.g. Top 3% of division). Includes bracket seed gap calculations (+X pts to overtake next rank) and Top 8 / Top 16 Regional Championship Playoff Cutoff indicators with cycle selector tabs (โšก Active Cycle, ๐Ÿ“ 2025-2026, ๐ŸŒ All Cycles).

๐Ÿ‘‘ IATC Pathway

IATC World Championship Bid & Bubble Diagnostics

Live qualification pathway tracker for the upcoming June 2027 IATC World Championship cycle. Identifies confirmed bids (Premier Top 8, Standard Top 4, Wilson Cup, 70+ Average) as well as bubble criteria diagnostics (seasons with member club / 3, 70+ season counters, best finishes).

โšก Pressure Analysis

Tournament vs. Regular League Pressure Diagnostics

Comparative high-stakes analytics contrasting elimination tournament performance against regular weekly league play across 4 core metrics: Match Win Rate, 3-Round Throw Score Average, Throw 5 Clutch Accuracy, and deciding Round 3 Rubber Win Rate with player pressure profiles (โšก Tournament Riser, โš ๏ธ High-Stakes Shift, โš–๏ธ Steady Competitor).

โœจ Accolades & Contact

Interactive Trophy Case & Direct Contact Modals

Streamlined accolades tray with an interactive modal detailing IATC bids, 81/75 Club perfect games, and World Records. Added a direct contact modal with fast one-click copy for email, Telegram, and Signal.

v0.5.0 (Beta)

Smart Auto-Sync, 6.5x Speedup, IATF Knives & Zero-Spam Protection

August 30, 2026
๐Ÿš€ New Feature

Smart Background Auto-Sync & Streamlined Profile Header

Looking up any thrower now automatically refreshes their match history in the background if their cached data is more than 24 hours old or has never been synced before. Profile pages render instantly from local cache while updates download quietly. When the 1-hour cooldown expires, an inline [Sync Fresh Matches] action appears right on the cache status bar. Streamlined the profile header to give milestone badges (81 Club, World Records) and multi-discipline ratings plenty of breathing room.

๐Ÿ—ก๏ธ Disciplines

Full IATF Knives Discipline Support

Added first-class support for IATF Knives competitions. Features a dedicated Knives dynamic filter pill in the navbar, full throw accuracy aggregations, and an expanded 4-card Discipline Performance Matrix (Standard, Premier, Big Axe, Knives) on the overview tab.

โšก Performance

6.5x Faster Analytics Engine for High-Volume Throwers

Overhauled query indexing and analytics aggregation across career match histories. For players with over 2,000 matches (43,000+ individual throws), full profile loading and rating progression generation dropped from 6.4 seconds down to under 1 second (978ms).

๐Ÿ›ก๏ธ Server Protection

AxeScores API Courtesy & Server Protection

To ensure we never overload upstream AxeScores servers:

  • Zero Redundant Queries: 99% of page views and searches are served directly from local cache.
  • Rate Limiting & Cooldowns: Enforced a 1-hour manual sync cooldown per thrower to prevent spamming.
  • Request Deduplication: Concurrent requests for the same player share a single background download worker.
๐Ÿ“ˆ Visual Analytics

Collapsed vs. Calendar Collins Rating Progression

Added an interactive toggle on the Collins Rating chart allowing throwers to switch between Collapsed mode (consecutive match sequence, collapsing off-season hiatuses) and Calendar mode (proportional time scale showing dates and season gaps).

๐Ÿ› Bug Fixes & UI Polish

Unique Opponent Matching & Header Affiliation Disclaimer

Enforced unique opponent ID isolation to prevent stats merging for players with identical names. Added an unobtrusive Not affiliated with IATF disclaimer badge in headers linking to platform attribution and policies.

v0.4.3 (Beta)

Full Cache Purge / Re-sync, IATF Lore Glossary & Perfect Round Intelligence

August 29, 2026
๐Ÿ”„ Admin Controls

Full Player Cache Purge & 100% Re-download

Added dedicated Full Reset actions across the Admin Dashboard table and direct player ID lookups alongside Delta Sync. Completely purges cached match records and re-downloads historical throw sheets fresh from AxeScores.

โœจ IATF Lore

Natural, Unnatural & Supernatural Perfect Round Breakdown

Added granular tracking for Natural 25s (5 pure bullseyes), Supernatural 27s (4 bullseyes + 1 clutch), Unnatural 25s (dropped regulation throws recovered via clutch), 75 Club matches, and 81 Club Premier perfect games with interactive tooltips.

๐Ÿ“– Platform Guide

Competitive Scoring Lore & Terminology Glossary

Added a comprehensive scoring terminology guide on the About page and interactive tooltips on the League Dossier modal table explaining 81s vs 15s.

v0.4.2 (Beta)

Design Consistency, Tab Badge Harmonization & Icon Standardization

August 29, 2026
๐ŸŽจ Design Consistency

Unified Metric Sub-Card Border Styling

Standardized all 8 footer metric cards across the Opponent Scoring Tier and Throw-by-Throw Sudden Death tiebreaker panels to uniform bg-slate-900/60 border border-slate-800 rounded-xl p-3 flex flex-col justify-between styling. Eliminates border weight and color mismatches while preserving semantic title highlights.

๐Ÿท๏ธ Navigation UI

Harmonized Navigation Tab Count Badges

Unified the badge styling for Seasons & Tournaments, Opponent Matrix, and Upcoming Matches to a clean, consistent bg-slate-800 border border-slate-700/60 text-slate-300 font-mono badge pill.

โšก Icon & Emoji System

Standardized Lucide SVG Icons & Deliberate Podium Medals

Replaced sporadic raw unicode emojis across event badges, season dates, and list headers with sharp Lucide SVG icons (zap, calendar, trophy), reserving emojis strictly for podium medal rankings (๐Ÿ† 1st, ๐Ÿฅˆ 2nd, ๐Ÿฅ‰ 3rd).

v0.4.1 (Beta)

Overview Layout Geometry, Tier Metrics & Favicon Ecosystem

August 29, 2026
๐ŸŽฏ Analytics & UI

Opponent Scoring Tier Tactical Metrics Grid

Added a 4-tier KPI breakdown footer underneath the Opponent Scoring Tier bar chart. Displays sample match counts, win rates, win-loss records, and scoring spread differentials (ฮ” pts vs opponent avg) across Elite (โ‰ฅ68), Competitive (62-67.9), Mid-Tier (55-61.9), and Developing (<55) opponents.

๐Ÿ“ Layout Architecture

Dynamic Flex Canvas & Symmetrical Height Alignment

Upgraded the Tier Performance chart container to dynamic flex-growth (flex-1 min-h-[300px]). Eliminates middle negative space voids and symmetrically balances the visual card height with the 6-row Throw Distribution table and Sudden Death tiebreaker grid.

๐ŸŒ Asset Pipeline

Standardized SVG Favicon & Root Discovery

Created a standalone static SVG favicon asset (/static/favicon.svg) featuring the emerald crosshair brand mark, wired explicit GET /favicon.ico root discovery in FastAPI, and unified icon link declarations across all views.

โšก Performance

Client-Side Search LRU Cache & Global Stats Caching

Integrated a 50-item in-memory LRU cache on player search autocomplete and 5-minute sessionStorage caching for global statistics, eliminating redundant server queries.

v0.4.0 (Beta)

Week 8 Playoffs, Sub-Millisecond Caching & Production Asset Pipeline

August 29, 2026
๐Ÿ† New Feature

Week 8 End-of-Season Playoff Tournaments

Added complete double-elimination Week 8 Playoff tournament intelligence. Features a dedicated Week 8 Playoffs tab in the League Dossier modal, Playoff KPI summary cards (Tournament Champion, Enrolled Throwers, Playoff Clutches, Big Axe Deciders), full playoff standings with podium medals (๐Ÿ† 1st, ๐Ÿฅˆ 2nd, ๐Ÿฅ‰ 3rd), match records, SPA, sweeps, and tiebreaker deciders.

โšก Performance

Sub-Millisecond Multi-Tier Dossier Caching

Implemented a high-performance multi-tier caching architecture combining persistent SQLite storage and in-memory client caching. Re-opening league dossiers is now instantaneous (0ms in-memory, ~8ms SQLite cache hit), completely eliminating the ~2,400ms upstream AxeScores API latency bottleneck.

๐ŸŽจ Design & Frontend

Pre-Compiled Production CSS & Component Modularization

Replaced the 3MB runtime Tailwind Play CDN with a pre-compiled, tree-shaken 34KB minified stylesheet (tailwind.min.css). Refactored monolithic templates into modular Jinja2 components (templates/components/, templates/modals/) and extracted client analytics scripts into cached static JavaScript (/static/js/app.js).

โ™ฟ Accessibility

WAI-ARIA Accessibility & Keyboard Navigation

Enhanced modal and table accessibility with standard role="dialog", aria-modal="true", scope="col" attributes, and global Escape key dismissal for modals and search dropdowns.

v0.3.0 (Beta)

Full League Dossiers, Unplayed Match Isolation & Event Date Alignment

August 28, 2026
โšก New Feature

Full League Dossier Standings & KPIs

Complete interactive season dossier with real-time league-wide KPI summary cards (League Average, Bullseye Accuracy %, Enrolled Throwers, Total Matches), full standings table with 7-point clutches and perfect games (81s/15s), and 8-week match pairings.

๐ŸŽฏ Accuracy

Unplayed Scheduled Match Isolation

Pre-scheduled future matches (Not Started, 0-0) are clearly marked with neutral Upcoming badges and isolated from win/loss records, scoring averages, clutches, and rating impact.

๐Ÿ“… Data Integrity

Verified AxeScores Event Dates

Removed synthetic per-match date interpolation in favor of official AxeScores tournament and season date ranges. Single-day marathon tournaments and multi-week leagues are strictly distinguished and preserved.

๐Ÿ” Directory

Global Player Search & Deduplication

Refined global search ranking and automatic deduplication across player directory indexes to ensure rapid, collision-free profile lookup.

v0.2.0 (Beta)

Sudden Death Intelligence, Cloud Persistence & Smart Roster Sync

August 28, 2026
โšก New Feature

Sudden Death & Big Axe Tiebreaker Scouting

Added deep situational statistics for Round 4+ overtime throws. Includes a dedicated Sudden Death row in the Throw-by-Throw table and a 4-card intelligence summary featuring overtime match records, win rates, Big Axe clutch accuracy, bullseye rate, and pressure drop percentages.

๐ŸŽฏ Accuracy

Contextual Opponent Resolution

Enhanced schedule pairing algorithms to disambiguate opponent names across active league schedules using contextual player match history and personal H2H records (resolving nickname clashes such as "badger" or "Lucas Skywalker").

๐Ÿ”ง Improvement

Independent Match Sync Cooldowns

Global player directory refreshes no longer reset or lock individual match sync cooldowns. Unsynced throwers can immediately sync their career match sheet without waiting.

โ˜๏ธ Infrastructure

Continuous Cloud Persistence via Litestream

Integrated Litestream continuous SQLite WAL replication to DigitalOcean Spaces. Database snapshots are backed up in real-time and restored on boot in ~500ms across container redeployments.

๐Ÿ… Milestones

Elite Milestone Badges & World Records

Added honor badge recognition for the 75 Club, 81 Perfect Game Club, and official IATF World Records on player profiles and the admin dossier.

v0.1.1 (Beta)

Collins Rating Trajectory, Round 3 Deciders & Nemeses

August 27, 2026
โšก New Feature

Collins Rating Progression Timeline

Interactive rating progression chart with dynamic time range filtering (30 Days, 90 Days, 6 Months, 1 Year, All Time) to visualize skill trajectory over time.

โšก New Feature

Rubber Round 3 Decider Analytics

Analyzes decisive Round 3 scenarios (tied 1-1 in sets), tracking clutch call conversion when leading versus trailing and final round win rates.

โšก New Feature

Rivalries & Nemeses Dossier

Head-to-head scouting report surfacing most challenging opponents and favorable matchups with historical point differentials and records.

๐Ÿ›ก๏ธ Data

Delta Syncing & Rate-Limiting Engine

Engineered safe rate-limiting with exponential backoff and incremental sync so completed matches are never re-fetched unnecessarily.

v0.1.0 (Beta) โ€ข Foundation

Initial AxeProgress Launch

August 26, 2026
โšก Core Engine

Throw-by-Throw Score Distribution

Granular scoring breakdown across regulation throws 1 through 5 (7s, 5s, 3s, 1s, 0s), clutch calling accuracy, and aimed bullseye precision.

โšก Core Engine

Tier Performance Matrix

Win rate and scoring breakdown categorized by opponent scoring average tiers (Elite โ‰ฅ68, Competitive 62-67.9, Mid-Tier 55-61.9, Developing <55).

๐Ÿ›ก๏ธ Architecture

Public Factual Sports Data Stewardship

Built with zero tracking, local SQLite caching, 1-hour cooldown protections, and transparent open-source architecture.