Skip to content

[BUG]: Elo rating changes are not tracked in debate history #265

@VishalPainjane

Description

@VishalPainjane

Description
This issue addresses a missing feature in the debate history tracking where the Elo rating change is not recorded or displayed for past matches.

Problem
In backend/controllers/profile_controller.go, the code attempts to display the rating change but currently uses a placeholder:

"eloChange":  0, // TODO: Add actual Elo change tracking

The SavedDebateTranscript model lacks a field to store this specific data point. Additionally, the service logic currently saves the transcript before the rating calculation is performed, meaning the rating delta is lost effectively immediately after the match concludes.

Root Cause
The functionality was marked as a TODO but never implemented. The database model and the service workflow do not support persisting the EloChange value.

Impact

  • Users see a "+0" or "0" change for all matches in their "Recent Debates" list.
  • There is no historical record of how individual matches affected a user's ranking.
  • Profile analytics regarding rating progression are incomplete.

Suggested Fix

  1. Model Update: Add an EloChange (float64) field to the SavedDebateTranscript struct in backend/models/transcript.go.
  2. Service Update: Modify SaveDebateTranscript in backend/services/transcriptservice.go to accept the eloChange as a parameter.
  3. Logic Refactor: In JudgeDebate workflows, reorder operations so that UpdateRatings is called before SaveDebateTranscript. Pass the calculated rating delta (from debateRecord.RatingChange) to the save function.
  4. Controller Update: Update backend/controllers/profile_controller.go to read and return the stored transcript.EloChange instead of the hardcoded 0.

@bhavik-mangla, I would like to work on this issue. I've reviewed the backend code and have a plan to implement the missing Elo change tracking. Please assign it to me.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions