Checking access level...

๐Ÿ“ก Callsign Training Analytics Documentation

Complete guide to the comprehensive analytics system that tracks amateur radio callsign recognition training with character-level error analysis, CWOps integration, and performance insights across all difficulty levels.

Callsign Analytics Character Tracking Session Statistics CWOps Integration Live APIs

๐Ÿ“‹ Quick Navigation

๐ŸŽฏ System Overview

The Callsign Training Analytics system provides comprehensive insights into amateur radio callsign recognition training through detailed multi-level data collection and analysis. Every training session automatically captures character-level errors, difficulty-specific performance, and CWOps member callsign analytics.

๐Ÿ”ง Core Innovation

Character-Level Error Analysis: Unlike basic accuracy tracking, this system compares expected vs received callsigns character-by-character to identify specific error patterns:
โ€ข Substitution: User types 'C' instead of 'K' (VK8ABC โ†’ VC8ABC)
โ€ข Missing: User omits a character (VK8DX โ†’ VK8D)
โ€ข Extra: User adds unnecessary character (VK8DX โ†’ VK8DXX)

๐Ÿ“ก Callsign Analytics

Track callsigns by difficulty level with detailed accuracy metrics

๐Ÿ”ค Character Tracking

Individual character errors with position and context analysis

๐Ÿ† CWOps Integration

Special tracking for CWOps member callsigns with member info

๐Ÿ“Š Session Statistics

Comprehensive performance tracking across all difficulty levels

๐ŸŽš๏ธ Difficulty Level Tracking

The system tracks performance across seven distinct difficulty levels, each optimized for specific training objectives:

3-Char Beginner

Short callsigns for initial pattern recognition

4-Char Basic

Standard amateur radio callsign format

5-Char Intermediate

Common longer callsign patterns

6-Char Advanced

Longest standard callsign format

Portable Specialized

Field Day and portable operation formats

CWOps Elite

Real CWOps member callsigns with member data

๐Ÿ“ˆ Progressive Training Analytics

Each difficulty level maintains separate analytics allowing users to track improvement in specific callsign complexity areas. The system identifies which character positions cause the most errors at each difficulty level, enabling targeted practice recommendations.

๐Ÿ† CWOps Member Integration

Advanced integration with the CWOps member database provides enhanced training experience with real amateur radio operator information.

๐ŸŽฏ CWOps Features

  • โ€ข Real Member Callsigns: Practice with actual CWOps member callsigns
  • โ€ข Member Information: Display first name, last name, and member number
  • โ€ข Separate Analytics: Track CWOps vs regular callsign performance
  • โ€ข Enhanced Context: Train with meaningful callsigns from active operators

๐Ÿ“Š CWOps Analytics Tracking

CWOps Callsigns Encountered: Tracked per session
CWOps Character Errors: Flagged separately
CWOps Performance Analysis: Dedicated metrics
Member Context Display: Name + Number

๐Ÿ“Š Three Levels of Analytics

1. Session Level Analytics

Comprehensive session-wide metrics captured automatically after each training session.

๐Ÿ“ˆ Performance Metrics

  • โ€ข Callsigns Trained
  • โ€ข Callsigns Correct
  • โ€ข Accuracy Percentage
  • โ€ข Session Duration

๐Ÿ”ค Character Analysis

  • โ€ข Total Character Errors
  • โ€ข Total Characters Sent
  • โ€ข Character-Level Accuracy
  • โ€ข Error Rate per Character

๐Ÿ“ป Audio Settings

  • โ€ข Character Speed (WPM)
  • โ€ข Effective Speed (WPM)
  • โ€ข Difficulty Level Used
  • โ€ข Training Mode Context

๐Ÿ† CWOps Integration

  • โ€ข CWOps Callsigns Count
  • โ€ข CWOps vs Regular Performance
  • โ€ข Member Info Context
  • โ€ข Premium Training Stats

2. Character-Level Error Analytics

Detailed character-by-character error analysis with position tracking and error type classification.

๐Ÿ”ด Substitution Errors

User types wrong character

Expected: VK8KBC
Received: VK8CBC
Error: K โ†’ C (Position 3)

๐ŸŸก Missing Character Errors

User omits a character

Expected: VK8DX
Received: VK8D_
Missing: X (Position 4)

๐Ÿ”ต Extra Character Errors

User adds unnecessary character

Expected: VK8DX
Received: VK8DXX
Extra: X (Position 5)

3. Dashboard Analytics & Insights

Comprehensive visualization and analysis tools for performance tracking and improvement recommendations.

๐Ÿ“ˆ Performance Visualizations

  • โ€ข Overall statistics with difficulty breakdown
  • โ€ข Character error heat maps
  • โ€ข Session history and best performance
  • โ€ข Progress trends over time
  • โ€ข CWOps vs regular callsign comparison

๐ŸŽฏ Personalized Recommendations

  • โ€ข Most problematic characters identification
  • โ€ข Suggested practice focus areas
  • โ€ข Difficulty level progression advice
  • โ€ข Character substitution pattern analysis
  • โ€ข CWOps training recommendations

๐Ÿ—„๏ธ Database Schema

callsign_sessions Table

CREATE TABLE callsign_sessions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) NOT NULL,
    difficulty_level VARCHAR(20) NOT NULL,        -- '3', '4', '5', '6', 'portable', 'all', 'cwops'
    callsigns_trained INT NOT NULL DEFAULT 0,
    callsigns_correct INT NOT NULL DEFAULT 0,
    callsigns_incorrect INT NOT NULL DEFAULT 0,
    accuracy_percentage DECIMAL(5,2) NOT NULL DEFAULT 0.00,
    session_duration DECIMAL(8,2) NOT NULL DEFAULT 0.00,  -- in seconds
    character_errors INT DEFAULT 0,
    total_characters INT DEFAULT 0,
    speed_wpm DECIMAL(6,2) DEFAULT 0.00,          -- Character speed
    effective_wpm DECIMAL(6,2) DEFAULT 0.00,     -- Effective speed  
    cwops_callsigns_count INT DEFAULT 0,          -- Number of CWOps callsigns in session
    session_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_user_difficulty (username, difficulty_level),
    INDEX idx_session_date (session_date),
    INDEX idx_difficulty_level (difficulty_level)
);

callsign_character_errors Table

CREATE TABLE callsign_character_errors (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) NOT NULL,
    difficulty_level VARCHAR(20) NOT NULL,
    expected_char CHAR(1) NOT NULL,               -- Expected character
    received_char CHAR(1) DEFAULT '',             -- What user typed (empty for missing)
    error_type ENUM('substitution', 'missing', 'extra') NOT NULL,
    position_in_callsign INT NOT NULL,            -- Position where error occurred (0-based)
    callsign_context VARCHAR(10) NOT NULL,        -- Full callsign where error occurred
    is_cwops_callsign BOOLEAN DEFAULT FALSE,      -- Whether callsign is from CWOps member
    session_duration DECIMAL(8,2) DEFAULT 0.00,
    session_accuracy DECIMAL(5,2) DEFAULT 0.00,
    speed_wpm DECIMAL(6,2) DEFAULT 0.00,
    effective_wpm DECIMAL(6,2) DEFAULT 0.00,
    error_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_user_char (username, expected_char),
    INDEX idx_error_type (error_type),
    INDEX idx_difficulty_level (difficulty_level),
    INDEX idx_cwops_flag (is_cwops_callsign),
    INDEX idx_timestamp (error_timestamp)
);

๐Ÿ“ˆ Database Design Considerations

Indexing Strategy
  • โ€ข Composite indexes for common query patterns
  • โ€ข Separate indexes for time-based filtering
  • โ€ข CWOps flag indexing for premium analytics
  • โ€ข Character-level error pattern optimization
Data Integrity
  • โ€ข Foreign key relationships maintained
  • โ€ข Enum constraints for error types
  • โ€ข Timestamp precision for session correlation
  • โ€ข Character position validation

๐Ÿ”Œ API Endpoints

Session Analytics API

POST /api/callsign-session-analytics.php
GET /api/callsign-session-analytics.php?difficulty={level}&timeframe={period}

POST Request Body:

{
  "difficulty_level": "5",
  "callsigns_trained": 10,
  "callsigns_correct": 8,
  "callsigns_incorrect": 2,
  "session_duration": 180.5,
  "character_errors": 12,
  "total_characters": 50,
  "speed_wpm": 25.0,
  "effective_wpm": 18.0,
  "cwops_callsigns_count": 3
}

GET Response:

{
  "success": true,
  "overall_stats": {
    "total_sessions": 25,
    "total_callsigns": 250,
    "average_accuracy": 87.2,
    "best_accuracy": 96.0,
    "total_practice_time": 3600
  },
  "difficulty_breakdown": {...},
  "recent_sessions": [...],
  "best_sessions": [...]
}

Character Error Analytics API

POST /api/callsign-character-errors.php
GET /api/callsign-character-analytics.php?difficulty={level}&timeframe={period}

POST Character Errors:

{
  "difficulty_level": "5",
  "character_errors": [
    {
      "expected": "K",
      "received": "C", 
      "type": "substitution",
      "callsign": "VK8ABC",
      "is_cwops": false
    },
    {
      "expected": "9",
      "received": "",
      "type": "missing", 
      "callsign": "W9XYZ",
      "is_cwops": true
    }
  ],
  "session_context": {...}
}

GET Analytics Response:

{
  "success": true,
  "error_types_breakdown": [
    {
      "error_type": "substitution",
      "count": 45,
      "percentage": 67.2
    }
  ],
  "most_problematic_characters": [
    {
      "expected_char": "K",
      "error_count": 12,
      "common_mistakes": "C,G",
      "avg_session_accuracy": 76.3
    }
  ],
  "cwops_analysis": {...}
}

Additional API Endpoints

POST /api/callsign-clear-statistics.php

Clear all callsign analytics data for the current user. Returns confirmation of deletion.

GET /debug-callsign-analytics-setup.php

Setup and testing tool for database tables and API endpoints. Admin access required.

โš™๏ธ Implementation Details

JavaScript Analytics Integration

Character Error Analysis Method:

analyzeCharacterErrors(expected, received) {
    const errors = [];
    const expectedChars = expected.split('');
    const receivedChars = received.split('');
    
    for (let i = 0; i < Math.max(expectedChars.length, receivedChars.length); i++) {
        const expectedChar = expectedChars[i] || '';
        const receivedChar = receivedChars[i] || '';
        
        if (expectedChar !== receivedChar) {
            if (!expectedChar && receivedChar) {
                // Extra character
                errors.push({
                    expected: '', received: receivedChar,
                    type: 'extra', position: i, callsign: expected
                });
            } else if (expectedChar && !receivedChar) {
                // Missing character  
                errors.push({
                    expected: expectedChar, received: '',
                    type: 'missing', position: i, callsign: expected
                });
            } else {
                // Substitution
                errors.push({
                    expected: expectedChar, received: receivedChar,
                    type: 'substitution', position: i, callsign: expected
                });
            }
        }
    }
    return errors;
}

๐Ÿ”ง Key Integration Points

  • โ€ข submitAnswer(): Enhanced to capture character errors during training
  • โ€ข finishSession(): Calls saveCallsignAnalytics() after session completion
  • โ€ข CWOps Detection: Automatic identification of CWOps member callsigns
  • โ€ข Non-Intrusive: No modification to existing training functionality
  • โ€ข Error Handling: Graceful degradation if analytics APIs unavailable

๐Ÿ“ System File Structure

Frontend Components

/callsign-training-analytics.html
    - Main analytics dashboard
    - Comprehensive visualizations
    - Filter controls and insights

/callsign-training.html (modified)
    - Added analytics access button
    - Enhanced UI integration

/callsign-training.js (enhanced)
    - Character error analysis
    - CWOps detection logic
    - Analytics data capture

Backend APIs

/api/callsign-session-analytics.php
    - Session data save/retrieve
    - Performance metrics API

/api/callsign-character-analytics.php
    - Character error analytics
    - Problematic character analysis

/api/callsign-character-errors.php
    - Individual error logging
    - Character-level data capture

/api/callsign-clear-statistics.php
    - Data management utility
    - User analytics reset

๐Ÿš€ Development & Deployment

โœ… Completed Features

  • โ€ข Database schema design
  • โ€ข API endpoint implementation
  • โ€ข Character error analysis engine
  • โ€ข CWOps member integration
  • โ€ข Analytics dashboard UI
  • โ€ข Global menu integration
  • โ€ข Admin-only documentation

โšก Ready for Production

  • โ€ข Non-intrusive integration
  • โ€ข Comprehensive error handling
  • โ€ข Database table auto-creation
  • โ€ข API testing utilities
  • โ€ข Mobile-responsive design
  • โ€ข Performance optimizations
  • โ€ข Security validations

๐Ÿ”ฎ Future Enhancements

  • โ€ข Export functionality (CSV/PDF)
  • โ€ข Advanced visualizations
  • โ€ข Comparative user analytics
  • โ€ข AI-powered recommendations
  • โ€ข Contest integration
  • โ€ข Historical trend analysis
  • โ€ข Mobile app integration

๐Ÿš€ Getting Started

๐Ÿ“ก Ready to Use - No Setup Required!

1๏ธโƒฃ

Complete Callsign Training

Run any callsign training session to automatically save detailed analytics

2๏ธโƒฃ

View Analytics Dashboard

Access comprehensive insights through the analytics dashboard

3๏ธโƒฃ

Track Improvement

Use character error insights to focus practice on weak areas

๐Ÿ“ž Support & Related Pages

๐Ÿ“š Related Resources

๐Ÿ”ง Technical Files

  • ๐Ÿ—„๏ธ api/callsign-session-analytics.php
  • ๐Ÿ”ค api/callsign-character-analytics.php
  • ๐Ÿ’พ api/callsign-character-errors.php
  • ๐Ÿงช debug-callsign-analytics-setup.php
  • ๐Ÿ“ก callsign-training.html