Skip to content

Implement Training Camp as API call#15

Merged
jedibob5 merged 4 commits into
masterfrom
trainingcamp
Sep 11, 2025
Merged

Implement Training Camp as API call#15
jedibob5 merged 4 commits into
masterfrom
trainingcamp

Conversation

@jedibob5

@jedibob5 jedibob5 commented Aug 29, 2025

Copy link
Copy Markdown
Collaborator

This will run training camp code once a trainingcamp.csv is added to /data/2026/.

It functions similarly to the previous year's camp code, but with some modifications.

  • Instead of a selection of rookies, every player on an NFL roster will participate in training camp. This includes players on practice squads.
  • Teams will submit the drills they would like their players to perform via a Google Form.
  • Drills will be selected by position group, instead of per individual player.
  • Additionally, there will be one team drill that all players on the team participate in.
  • The position groups are split as follows:
    • QB
    • RB
    • FB
    • WR
    • TE
    • OT, OG, C
    • DE, DT, Pass Rush OLB
    • OLB (except Pass Rush), ILB
    • CB
    • SS, FS
    • P, K
  • The previous iteration of training camp also grouped Run Stopper OLBs with the defensive line, like with Pass Rushers. I don't know if Run Stoppers are intentionally modeled to be primarily 3-4 on-ball LBs, but the Old School defensive scheme has four down linemen and Run Stopper OLB as a scheme fit, so I feel like it makes more sense to have them practice with the rest of the off-ball LBs.
  • For players with secondary positions, users may specify the names of the players they would like to practice with their secondary position on the Google form. If a user specifies a player without a secondary position, that selection will be ignored, and the player will work with their primary position as normal.
  • The drill selection will be largely the same as in rookie minicamps last offseason, except with the addition of power and accuracy drills for the P and K positions.
  • Like last year's rookie camps, each drill will affect its governed attribute for each player in a range of -1 to +3, and a chance for each player to have a camp event that further modifies their drill results an additional -3 to +3.
  • However, more experienced players will have less of a chance of major changes via camp - the odds of drills increasing attributes by more than +1 for veterans are greatly decreased, and veterans will have significantly lower chances of triggering camp events.
    • The reasons for this change are threefold:
      • To provide more avenues of accelerating the development of young players and increase the ability to build quickly through the draft, as opposed to relying on trades and free agency for older players.
      • To ensure that the regression curves of aging players are not adversely affected by repeated large camp bonuses, making it less likely players can remain viable well past their prime ages.
      • To represent that experienced players are more acclimated to the NFL, and are less likely to have major developments at training camp compared to younger players.
    • Players with 5 years of NFL experience or less will have the standard drill result odds.
      • 5%: Bad drill, -1 to drilled attribute
      • 10%: Neutral drill, no change to drilled attribute
      • 35%: Okay drill, +1 to drilled attribute
      • 30%: Good drill, +2 to drilled attribute
      • 20%: Great drill, +3 to drilled attribute
    • Players with greater than 5 years of NFL experience will have much lower odds of highly positive drills results.
    • 5%: Bad drill
    • 35%: Neutral drill
    • 40%: Okay drill
    • 15% Good drill
    • 5% Great drill
  • The odds of camp events also vary by experience level. However, the odds of a camp event being good or bad and its magnitude remain the same as before, based on the player's discipline value.
    • 1st and 2nd year players will have the highest odds of camp events, matching last year's 60% standard.
    • 3rd-5th year players have a 30% chance of a camp event occurring.
    • Players with 6 or more years of NFL experience will have only a 15% chance of a camp event.
  • As before, there is a chance players will get injured during training camp. As before, the chance of a player receiving an injury at camp is 0.25%. There were some minor modifications to the calculation of injury type and severity for the sake of code brevity, but should be very close to being functionally the same as before, with the injury severity affected by the player's injury rating.

I have attached some sample results of the training camps being run locally (with the code relevant to saving the changes to the DB omitted, so it wouldn't change anything for real), to provide a preview of what the results will look like when run for real.

trainingcamp.csv
trainingcamp_results.csv

If anyone wants to pull the branch and test locally, ensure that the readPath and writePath variables in TrainingCampManager.RunTrainingCamps()are pointed towards your local repository, add a trainingcamp.csv file to that folder that matches the format in the linked CSV above, then comment out the following lines of code in TrainingCampManager.runDrills() to ensure that no changes get saved to the live DB:

	player.ApplyTrainingCampInfo(*changedAttrs)
	player.GetOverall()

	repository.SaveNFLPlayer(player, db)

@jedibob5
jedibob5 merged commit 01a874e into master Sep 11, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants