James McCool commited on
Commit
4b826cf
·
1 Parent(s): 51fef7b

Refactor reassess_dupes function in reassess_edge.py to enhance ownership calculation by incorporating a more detailed salary and ownership adjustment mechanism, improving accuracy in metrics.

Browse files
Files changed (1) hide show
  1. global_func/reassess_edge.py +10 -1
global_func/reassess_edge.py CHANGED
@@ -44,7 +44,16 @@ def calculate_weighted_ownership_single_row(row_ownerships):
44
  return weighted * 10000
45
 
46
  def reassess_dupes(row: pd.Series, salary_max: int) -> float:
47
- return math.ceil(row['Dupes'] + ((row['salary_diff'] / 100) + ((salary_max + (salary_max - row['salary'])) / 10000)) * (1 + (row['own_diff'] / 100)))
 
 
 
 
 
 
 
 
 
48
 
49
  def reassess_lineup_edge(row: pd.Series, Contest_Size: int) -> float:
50
  row['Lineup Edge'] = row['Win%'] * ((.5 - row['Finish_percentile']) * (Contest_Size / 2.5))
 
44
  return weighted * 10000
45
 
46
  def reassess_dupes(row: pd.Series, salary_max: int) -> float:
47
+ return math.ceil(row['Dupes'] +
48
+ (
49
+ # Salary component: base +2 + salary_diff/200 for every $100 above threshold
50
+ (max(0, (row['salary'] - (salary_max - 500)) / 100) * (2 + (row['salary_diff'] / 200)) *
51
+ (1 if row['salary_diff'] >= 0 else -1)) +
52
+
53
+ # Ownership component: direct negative/positive effect
54
+ (row['own_diff'] / 10)
55
+ )
56
+ )
57
 
58
  def reassess_lineup_edge(row: pd.Series, Contest_Size: int) -> float:
59
  row['Lineup Edge'] = row['Win%'] * ((.5 - row['Finish_percentile']) * (Contest_Size / 2.5))