This system uses a USCF-style Elo-inspired model and updates ratings per weapon (foil/epee/saber) independently.
Expected score: E = 1 / (1 + 10^((R_opponent - R_player)/400))
Rating update: R_new = R_old + K x (S - E)
Each fencer has three independent ratings. A foil bout only updates foil ratings; epee and saber are unchanged.
Each submitted bout creates a rating-history record containing old rating, new rating, and delta for both fencers.
Note: This is a practical club rating system inspired by USCF-style equations, not an official USCF rating service.