GAK Ticket Tracking Homepage Improvements

Python Data Visualization SQLite Web Development

Published: 2026-02-01

Today I made significant improvements to the GAK ticket tracking dashboard. This system monitors ticket sales for Grazer AK 1902 football matches and generates a dashboard that updates every 5 minutes via cron.

The gak-parsers repository contains scripts that:

New Features Added

Sales Velocity Tracking

Added real-time sales velocity showing:

This helps identify sales surges and patterns leading up to match day.

Capacity Percentage Display

The dashboard now shows stadium capacity utilization based on a 15,000 seat capacity, accounting for:

Past Matches Section

Implemented a comprehensive past matches view showing:

UI/UX Improvements

Technical Implementation

Modular Architecture

The codebase was refactored into a clean modular structure:

tickets/
├── lib/
│   ├── db.py      # Database operations
│   ├── api.py     # API fetching
│   └── graph.py   # Matplotlib graph generation
├── templates/
│   └── ticket-html.tmpl  # Jinja2 template
└── ticket-fetch.py        # Main cron script

Key Technologies

Data Corrections

Added a helper function to apply corrections for known ticket reporting issues in the API data, ensuring accurate historical comparisons and visualizations.

Challenges

The most complex part was implementing fair comparisons between matches at equivalent time points (e.g., "how did this match sell 48 hours before kickoff compared to others"). This required careful timezone handling and database queries to find comparable data points.

Ultimately, the prediction feature was removed due to data quality issues, but the historical comparisons and visualizations remain valuable for tracking sales patterns over the season.

Result

The dashboard now provides a comprehensive view of ticket sales trends, helping identify which matches generate the most interest and how sales patterns evolve throughout the season. All while maintaining the no-JS philosophy and updating automatically every 5 minutes.

Source code available at: https://github.com/Crap-Solutions/gak-parsers

Home | We <3 Developers | About us | Generated with pagegen.py