Sports clubs across Europe still rely on spreadsheets for competition management. When a canoe slalom club with 193 Excel worksheets and dozens of VBA macros needed a modern solution, the SSS-WYC Competition Evaluation System was born — a full-stack web application that replaces fragile spreadsheet workflows with real-time, multi-user competition management.

The Problem

Club championship events in canoe slalom are complex affairs. Multiple competition stages (qualifying rounds, knockout rounds, finals) must be managed simultaneously. Each run is timed to the millisecond. Penalties are assessed for gate touches, missed gates, capsizes, and other infractions, each carrying different point values. Results must be calculated in real time so spectators, coaches, and athletes can follow the action.

For years, this was managed through an elaborate Excel workbook containing 193 sheets (42 visible worksheets), extensive VBA macros for automation, and complex calculation formulas. While functional, this approach suffered from critical limitations:

  • Single-user access — Only one person could enter data at a time
  • No real-time updates — Spectators and coaches had no live view of results
  • Fragile macros — VBA code broke when Excel versions changed
  • Data integrity risks — Accidental formula overwrites corrupted results
  • No mobile access — Officials had to use a desktop computer

„We had 193 Excel sheets, dozens of macros, and one person who understood how it all worked. If that person was unavailable on competition day, we had a serious problem.“

The Solution

The SSS-WYC Competition Evaluation System is a modern web application built with a FastAPI backend and a React + TypeScript frontend. It faithfully reproduces all functionality from the original Excel system while adding multi-user capability, real-time WebSocket updates, mobile responsiveness, and proper data integrity through a relational database.

The system was built by extracting all business logic from the original VBA macros, converting the data structures from worksheet layouts to a proper database schema, and implementing the calculation engine as server-side Python code.

Key Features

  • Multi-Stage Competition Management — Full support for WL 01 (qualifying), WL 02, WL 03, and WKR (final) competition stages
  • Real-Time Result Tracking — WebSocket-powered live updates push results to all connected clients instantly
  • Comprehensive Penalty System — 27 penalty types including Zeit (time), Knoten (knots), Steg (bridge), Tore (gates), and Schikane (chicane) with configurable point values
  • Driver Registration and Check-In — Digital registration workflow replacing paper sign-in sheets, with 14 pre-registered drivers from the original system
  • Live Rankings and Leaderboards — Automatically calculated standings updated in real time after each run
  • Timer Integration — Built-in time measurement interface for precise timing of competition runs
  • Multi-User Support — Multiple officials can enter data simultaneously from different devices
  • Mobile Responsive — Full functionality on phones and tablets for trackside operation

Data Migration from Excel

The system includes a data migration layer that imported all original Excel data:

  • 14 registered drivers with their profiles and categories
  • 27 penalty types with their point values and descriptions
  • 4 competition stages with their rules and progression logic
  • The complete competition structure and scoring formulas

Conclusion

The SSS-WYC Competition Evaluation System demonstrates how legacy spreadsheet-based workflows can be transformed into modern, real-time web applications without losing any functionality. By converting 193 Excel sheets and dozens of VBA macros into a clean FastAPI + React architecture, the project delivers multi-user access, real-time updates, mobile responsiveness, and data integrity — everything a sports club needs for professional competition management on event day.