---
title: Decide whether the rest-of-season board should stop re-pricing board-wide
type: task
status: cancelled
description: >-
  The rest-of-season board re-prices every player whenever any game kicks off, and removing the
  market salary columns does not stop it: projected_points_added_positive_including_cap_savings is
  derived from the same board-wide denominator and is still exposed as a data-view column. Decide
  whether that churn is acceptable or the denominator should seal.
base_uri: user:task/league/decide-rest-of-season-board-repricing.md
created_at: '2026-09-19T16:15:42.493Z'
entity_id: bf0d9493-cf2b-49a4-b349-b0b4aef26cc1
finished_at: '2026-09-19T16:49:26.366Z'
observations:
  - ████████████████████████████████████████████████
owner_identity_uri: █████████████████████████
priority: Medium
public_read: true
relations:
  - succeeds [[████████████████████████-██████-███████-██-██████-████████]]
tags:
  - user:tag/league-xo-football.md
  - user:tag/software-task.md
updated_at: '2026-09-19T16:49:27.415Z'
visibility_analyzed_at: '2026-11-05T23:49:05.609Z'
---

## Problem

`libs-shared/calculate-prices.mjs` derives every price by dividing the discretionary cap by the board-wide sum of positive parts, so one player's game kicking off re-prices the whole rest-of-season board.

Removing the two rest-of-season market salary columns does NOT stop this. `calculate-prices.mjs` also writes `projected_points_added_positive_including_cap_savings`, computed as `pts_added + (market_salary - player_salary) / pts_added_salary_rate` — the same board-wide denominator. That quantity is the entire payload of `league_player_rest_of_season_projection_values` (1,054 rows, all non-null, measured 2026-09-19) and it is exposed to users as the data-view column `player_rest_of_season_projected_points_added_positive_including_cap_savings`.

So after the market salary removal the number on a user's screen still moves when another player's game starts. It is simply no longer called a salary.

## The decision

Two readings of the original objection, and they lead to different work:

- **The objection was to the PRICE being a regular-season quantity.** Then the market salary removal is complete and correct, and this task closes with no code change.
- **The objection was to board-wide re-pricing.** Then the fix is to stabilise the denominator — for example sealing `pts_added_salary_rate` at first kickoff the way the season board seals — and this task carries that work.

## Plan

Draft pending an operator ruling on which reading holds.
