#1372 preview: rank pending historical reconciliation

What to tap

1. Phone app (AFTER)

Open the phone app BEFORE (main)
  1. It opens as your team (display only). Tap the search icon at the top.
  2. Type Royals, Carter, McLaughlin or Prescott and tap the name.
  3. Tap Stats. Expect: the 2025 PPG Rk is — for Royals and Carter, with the line “2025 PPG Rk: Rank pending historical reconciliation.” McLaughlin shows 86 and Dak shows 5.

2. Front Office player panel (AFTER, desktop page)

Open Front Office BEFORE (main)
  1. On your Roster, tap McLaughlin, Carter or Prescott. For Royals (Cleon Ca$h), set the team menu to All teams and type royals in the search box first.
  2. Tap Stats in the panel. Expect — in each held 2025 rank cell (hover shows the note on desktop) and a line under the table naming the season and column.

3. Desktop player profile (AFTER)

Open the profile host BEFORE (main)
  1. Tap a name. This opens the real shared/player_profile_master.js modal, the one the Rookie Draft Hub and Roster Workbench open, on a stand-in host page.
  2. Tap Stats. Same expectation as the Front Office panel.

The seven cases

#CasePlayer · 2025Stored rank (today)Clean recountAFTER #1372 shows
1Affected Pts RkJaleel McLaughlin, RB (your team)Pts #94 · PPG #8693 · 86Pts — · PPG #86 (not held)
2Affected PPG RkBarrett Carter, LB (your team)Pts #40 · PPG #5440 · 55Pts #40 · PPG —
3Both fieldsJalen Royals, WR (Cleon Ca$h)Pts #211 · PPG #225208 · 224Pts — · PPG —
4Dak unchangedDak Prescott, QB (your team)Pts #4 · PPG #54 · 5#4 · #5, no note
5Earlier season unaffectedMcLaughlin 2024 · Dak 2024#47 · #54 · #20 · #22not heldunchanged
6Phone shows —, not 0Carter, Royals (PPG Rk column)54 · 225— + one-line note
7Bundle carries the reasonRoyals /api/player-bundlesee below

Points and PPG stay visible in every case. The points shown are today's D1 totals (before Batch 1A); after 1A they become MFL's totals (e.g. Carter 87.5 over 16 wks), and the held ranks stay “—” because the list is keyed by player-season. Clean recount = dense rank within the positional group over every player in src_pointssummary, on MFL Wks 1–17 points and PPG, each rounded to 4 dp.

Case 7: the bundle response (AFTER), Jalen Royals 2025 row

{ "season": 2025, "pos_group": "WR", "games_played": 4, "season_points": 1.8, "avg_ppg": 0.45,
  "pos_rank": null, "pos_ppg_rank": null,
  "rank_pending": { "fields": ["pos_rank", "pos_ppg_rank"],
                    "reason": "Rank pending historical reconciliation (#1307)" } }

BEFORE (today's worker): the same row with "pos_rank": 211, "pos_ppg_rank": 225 and no rank_pending. Dak's 2025 row is identical before and after. Full bodies: Royals after · Royals before · Dak after. The AFTER bodies are the recorded production bundles passed through #1372's own applyRankPending, the function the worker calls on its D1 path. Owners' free text (trade comments, trade-block notes) is blanked in every recorded read.

Proof screenshots (from this exact build)

Phone, 375 px

Royals phone after
AFTER · Royals: 2025 PPG Rk —, note line
Royals phone before
BEFORE · Royals: 225
Carter phone after
AFTER · Carter: 2025 PPG Rk —
McLaughlin phone after
AFTER · McLaughlin: PPG Rk 86 (only his Pts Rk is held; the phone has no Pts Rk column)
Dak phone after
AFTER · Dak: 5 and 22, no note

Phone, 320 px

Royals 320
AFTER · Royals
Carter 320
AFTER · Carter

Front Office player panel

Royals FO after
AFTER · Royals: both —, note line
Royals FO before
BEFORE · Royals: #211, #225
McLaughlin FO
AFTER · McLaughlin: 2025 Pts Rk —; 2024 #47/#54 unchanged
Carter FO
AFTER · Carter: 2025 PPG Rk —
Dak FO
AFTER · Dak: unchanged

Desktop player profile

Royals profile
AFTER · Royals
Carter profile
AFTER · Carter
McLaughlin profile
AFTER · McLaughlin
Dak profile
AFTER · Dak

Covered by tests, not this preview

Not verified here

Known and left alone