After updating send me the updated script Use th...

생성일: 2026년 9월 30일

답변에 사용된 모델 GPT-5.6 Thinking by Chat01

질문

TennisLocks_v1692_KSR_PAYLOAD_LABEL_20260930.txt

After updating send me the updated script

Use these as the next two audit/fix instructions. They’re written so Gemini can’t turn this into a Dayana/McNally one-match patch.

Match Winner

Use the current TennisLocks script as the only code authority. This is NOT a request to fix Dayana Yastremska vs Caty McNally specifically. That match only exposed a remaining structural Match Winner problem.

The model must produce the correct Winner direction across matches because its inputs, player orientation, KSR state, serve/return decomposition, chronology, and canonical probability tree are correct. Do not hardcode a player, tournament, WTA rule, Beijing condition, probability offset, Elo correction, ranking correction, favorite bias, or match-specific constant.

Current failure that exposed the problem

Latest Match Preview:

Dayana Yastremska vs Caty McNally

Measured/current displayed inputs:

  • Yastremska same-surface serve points won: 58.5%
  • McNally same-surface serve points won: 55.6%
  • Yastremska measured return points won: 37.9%
  • McNally measured return points won: 44.5%

KSR state:

  • Pre-window Yastremska: 54.1%
  • Pre-window McNally: 54.6%
  • ACTIVE KSR Yastremska: 52.9%
  • ACTIVE KSR McNally: 55.4%

Canonical tree:

  • Yastremska Match Winner: 34.8%
  • McNally Match Winner: 65.2%

The important defect is not “make Yastremska win.”

The important question is:

Why can the active KSR transformation materially reverse the player ordering and feed a 65/35 Winner result, and is every step causing that reversal mathematically and directionally correct?
B4 recent fixes match winner was originally favoring Dayana

Earlier versions of the model using the prior point-strength architecture could strongly favor the opposite player. That large directional instability means the remaining Winner audit must start upstream of the PMF, not at winnerDecision.

Hard architectural rules

  1. Winner must remain:
    KSR/current point evidence
    → canonical point state
    → game state
    → set state
    → exact-score PMF
    → exact PMF Winner marginal.
  2. No second Winner model.
  3. No Elo/rank override.
  4. No market odds.
  5. No Winner calibration after the PMF.
  6. No favorite correction.
  7. No arbitrary shrink constant invented to make this match look right.
  8. No population Winner target.
  9. No fallback to a legacy SPW owner if KSR is broken.
  10. A/B swap symmetry must hold.
  11. Do not classify “PMF agrees with Winner marginal” as proof that Winner is correct. That proves settlement consistency only. The upstream SPW pair can still be wrong.

⸻

A. Fully retrace KSR → Winner

Trace the exact live execution, with actual function names, from the rows written by AutoFill through the final Match Winner:

AutoFill point rows
→ selected pricing rows
→ KSR tape/replay observations
→ player serve state
→ player return state
→ opponent matchup transformation
→ active SPW A/B
→ hold A/B
→ Set 1 probability
→ any Set 2 state mutation
→ exact-score PMF
→ Winner marginal
→ publication.

For every stage print:

  • Player A value
  • Player B value
  • source function
  • mathematical transformation
  • sample N
  • date interval
  • surface
  • tour
  • opponent identity
  • whether the quantity is serve skill, return skill, matchup SPW, hold probability, set probability, or match probability.

I need to see exactly where the directional ordering changes.

⸻

B. Audit the KSR serve/return design signs

Inspect the full implementation of:

  • tlKsrDesignV1448R1
  • tlKsrJointV1448R1
  • tlKsrPredictV1448R1
  • tlKsrUpdateV1448R1
  • tlKsrMatchV1448R1
  • tlKsrPlayerV1448R1
  • tlKsrEntryMeanV1448R7
  • every helper that constructs server and receiver observations.

Prove algebraically that:

Player A serving against B:
logit(P(A wins serve point))

uses:

A serve strength - B return/receiving defensive strength

with the correct sign convention.

Then swap A/B and prove the transformation mirrors exactly.

Check for:

  • return ability stored as RPW but consumed as opponent SPW
  • return skill sign reversed
  • receiver coefficient sign reversed
  • server/receiver identity swapped
  • winner/loser row orientation leakage
  • A and B assigned to the wrong design-vector coordinates
  • return observations recorded from the server’s perspective instead of the receiver’s
  • observed point totals attributed to the wrong player.

Do not merely inspect variable names. Derive the equations actually executed.

⸻

C. Trace the seven current replay rows individually

The Preview reports:

  • recent rows: 7 / 7
  • pricing replay rows: 3 / 6
  • selected replay: 7
  • tournament-start date precision on all seven rows.

List every replay observation used for both players.

For each row provide:

  • player
  • opponent
  • event
  • surface
  • date stored by the script
  • real ordering position used by replay
  • service points won / attempted
  • return points won / attempted
  • whether the player won/lost the match
  • whether player was observation server or receiver
  • KSR state before row
  • innovation
  • update to serve state
  • update to return state
  • KSR state after row.

Then determine exactly why:

Yastremska:
54.1% → 52.9%

McNally:
54.6% → 55.4%

Do not summarize this as “current form.”

I want the numerical cause.

⸻

D. Tournament-start date problem

All seven recent rows are currently labeled:

tournament-start date

That is not an exact match timestamp.

Audit whether multiple matches from the same tournament are therefore receiving the same ms.

Check:

  • tlKsrTapeMsV1628
  • row sorting
  • queue sorting
  • same-day tie breaker
  • target exclusion
  • target match contamination
  • chronological replay order.

If several tournament matches share one midnight timestamp, determine whether the current priority ordering is equivalent to their real chronology.

Specifically check whether a later round can update KSR before an earlier round simply because rows share the same calendar timestamp.

If true, replace this with a causal ordering using the strongest available information already in the script:

  • exact date when available
  • round order
  • match number
  • source sequence
  • target identity.

Do not invent clock timestamps.

⸻

E. Selected replay vs pricing replay discrepancy

Preview reports:

pricing replay rows 3 / 6
selected replay 7

Explain exactly what each number means.

Determine whether all seven rows are actually influencing central SPW or whether only 3/6 are direct current-window pricing evidence.

Audit for accidental asymmetry where one player receives more effective KSR updates than the other because of:

  • missing point denominators
  • tour routing
  • duplicated matches
  • opponent bridge construction
  • row-quality gates
  • match dedupe
  • surface gates.

The effective evidence for A and B should not differ merely because the pipeline represents the same type of row differently.

⸻

F. Prior-state and opponent bridge audit

Preview reports:

  • field bridge: 456
  • prior rows: 9239
  • 550 players
  • prior through 2026-07-27
  • fit anchor 2026-08-01.

Trace how those 9,239 observations become a pre-window SPW near 54%.

Determine whether KSR is over-shrinking actual player skill toward the field.

Check:

  • entry mean
  • state covariance
  • process variance
  • surface term
  • tournament/event intercept
  • serve/return covariance
  • player uncertainty
  • field bridge
  • cold opponent treatment.

Do not change shrinkage because of this match.

Instead determine whether the fitted model mathematically warrants moving a player with observed same-surface SPW around 58.5% to a matchup SPW near 52.9%.

Separate three quantities clearly:

  1. player serve ability
  2. opponent return ability
  3. final matchup SPW.

The Preview currently makes those concepts difficult to distinguish.

⸻

G. Verify current rows are genuinely current

The user previously had a major defect where refreshed historical rows were labeled current.

For every KSR replay row verify:

  • actual match date
  • actual event
  • surface
  • tour
  • opponent
  • exact identity
  • point denominators.

A refresh timestamp is never evidence freshness.

Reject stale or wrong-tour rows rather than silently including them.

⸻

H. Ranking and Elo isolation

Rank and Elo may be displayed, but prove they cannot enter:

  • KSR serve state
  • KSR return state
  • SPW matchup pair
  • hold calculation
  • Winner PMF.

Search all paths for rank, elo, rating, favorite, seed, and any strength bridge.

Classify every occurrence as:

  • display only
  • uncertainty only
  • pricing input.

There must be no hidden Winner directional correction.

⸻

I. A/B identity invariant

Add or verify a regression test:

Original:
A vs B → pWinA = x

Swapped:
B vs A → pWinB = x

Also require:

  • SPW A/B swap
  • hold A/B swap
  • Set 1 win probabilities swap
  • exact score cells transpose
  • final Winner probabilities complement.

Run this through KSR itself, not only through the final PMF.

⸻

J. Compare KSR state to direct current-point evidence

This is a diagnostic comparison, not a second pricing owner.

For a sample of matches, print:

  • raw same-surface SPW
  • raw same-surface RPW
  • KSR latent serve component
  • KSR latent return component
  • matchup-adjusted KSR SPW
  • difference between raw and KSR
  • uncertainty.

Flag unusually large directional reversals for audit.

Do NOT blend the raw rate back into KSR just because the values differ.

The point is to discover whether KSR is working correctly.

⸻

K. Search for remaining duplicate point owners

Search the whole script for every source capable of assigning:

  • spwA
  • spwB
  • holdA
  • holdB
  • pWinA
  • WINNER_FINAL.

List every writer.

There should be one live pricing path.

Delete stale executable alternatives only after proving they have no required non-pricing role.

⸻

L. Required Winner regression suite

Do not certify Winner until these pass:

  1. A/B full KSR swap symmetry.
  2. Same input twice gives same Winner.
  3. Rank/Elo changes alone cannot change Winner.
  4. Display-only surface rates cannot overwrite KSR.
  5. Missing Q1 fails according to the intended architecture, never silently changes point owner.
  6. Same-day replay ordering is causal.
  7. Target match cannot enter its own pre-match state.
  8. Future row cannot enter replay.
  9. Duplicate match cannot update state twice.
  10. Player serve/return states stay attached to correct player.
  11. Score PMF Winner marginal equals canonical Winner to 1e-10.
  12. No post-PMF Winner mutation.
  13. BO3 and BO5 both pass.
  14. Test multiple ATP, WTA, Challenger and qualifying matches.

Deliverable

Return:

  1. corrected live call graph
  2. exact point where player ordering can flip
  3. mathematical KSR serve/return equation as implemented
  4. current replay-row trace
  5. chronology defects
  6. identity/orientation defects
  7. prior/shrinkage defects
  8. all duplicate owners or stale paths
  9. exact functions requiring correction
  10. replacement code or precise patches
  11. regression results.

Do not call the model correct simply because the exact-score PMF and Winner marginal agree.

The target is not “pick Yastremska.”

The target is:

When TennisLocks picks Player A or Player B, the direction must come from correctly oriented, causal, current point-strength evidence and one canonical tennis probability tree.

Sets Played / Over 2.5

Audit and correct the remaining BO3 Sets Played logic in the current TennisLocks script.

This is NOT a request to make the model pick OVER 2.5 more often.

It is also NOT permission to tune one match.

The requirement is:

The BO3 exact-score tree must be capable of assigning P(3 sets) above 50%, below 50%, or anywhere justified by the actual state evidence. It must not structurally drift toward UNDER 2.5 because KSR, the Set-2 index, history shrinkage, or transition logic suppresses split-set probability.

The current Dayana Yastremska vs Caty McNally match happened to produce a reasonable near-coin-flip Sets Played result:

  • Baseline P3: 48.4%
  • Adjusted P3: 47.7%
  • UNDER 2.5: 52.3%

That individual result is not the complaint.

The concern is whether the architecture still has full freedom to identify matches where OVER 2.5 is truly the most likely outcome, including P3 > 50%, after all recent KSR and Set-2 changes.

Do not make the Set model compensate for a broken Winner/KSR model. Winner/KSR must be repaired independently.

Hard rules

  1. No P3 cap.
  2. No P3 floor.
  3. No population P3 target.
  4. No “ATP/WTA usually straight sets” prior used as authority.
  5. No artificial boost to OVER.
  6. No artificial boost to UNDER.
  7. No line-specific correction.
  8. No threshold tuning to 50%.
  9. No match-specific constants.
  10. P3 must come from the same exact-score state tree.
  11. Sets Played, Both Win a Set, and Sets Won must remain identities from that same PMF.
  12. KSR point strength and Set-2 state response must have distinct roles.

⸻

A. Re-establish exact BO3 identities

Verify for every completed pre-match PMF:

P2 = P(2-0) + P(0-2)

P3 = P(2-1) + P(1-2)

P2 + P3 = 1

Both Win a Set = P3

Player A:
O0.5 Sets = 1 - P(0-2)
O1.5 Sets = P(A wins match)

Player B:
O0.5 Sets = 1 - P(2-0)
O1.5 Sets = P(B wins match)

No publication code may alter these after the PMF.

⸻

B. Determine whether the current model can mathematically produce P3 > 50%

Do not answer from theory.

Run the actual live functions across a synthetic but legal grid of KSR SPW pairs.

For example, vary A/B point strength through realistic tennis ranges while maintaining legal probability values.

For each pair compute:

  • Set 1 probability
  • Set 2 after A wins Set 1
  • Set 2 after B wins Set 1
  • exact-score PMF
  • P3.

Show the maximum P3 the current implementation can generate.

If P3 effectively hits an undocumented ceiling near 50%, identify the exact function causing it.

Check especially:

  • tlCanonicalStateSetDistV1601
  • tlBo3Set2TargetV1601
  • tlBo3PairedSetIndexEvidenceV1601
  • tlBo3ApplySignedTransitionStrengthV1668
  • tlBo3PointStateToTargetV1601.

There must be no hidden geometry preventing a legitimate split-set match from exceeding 50%.

⸻

C. Fully audit the Set-2 index after the recent correction

The recent architecture removed the duplicated positive split adjustment and now shrinks the historical index against structural prior precision.

Verify exactly how the current implementation computes:

  • structural Set-2 probability
  • player historical posterior
  • opponent historical posterior
  • paired index
  • evidence N
  • structural prior N
  • final signed transition strength
  • target Set-2 probability
  • solved point-logit shift.

Print the equations.

Determine whether the shrinkage is neutral or whether it systematically pulls Set-2 probability toward the same first-set winner.

A shrinkage rule should reduce noisy historical influence, not automatically favor straight sets.

⸻

D. Test both Set-2 branches independently

For every match there are two different Set-2 contexts:

  1. A won Set 1
  2. B won Set 1.

For branch 1 test:

P(A wins Set2 | A won Set1)

For branch 2 test:

P(A wins Set2 | A lost Set1)

The model must be able to learn:

  • persistence
  • reversal
  • asymmetric response
  • effectively no state response.

It must not force both branches toward persistence.

If the historical evidence says Set-1 losers frequently recover, that needs to be capable of increasing P3 naturally.

⸻

E. Check index orientation and sign

For every paired historical observation prove:

  • S2_AFTER_WIN is interpreted from the correct player perspective.
  • S2_AFTER_LOSS is interpreted from the correct player perspective.
  • Opponent recovery evidence is mirrored correctly.
  • A/B swaps negate/transpose the index correctly.
  • H2H dedupe does not accidentally remove legitimate independent observations.
  • The same historical match is not counted twice from opposite perspectives.

Then construct explicit tests:

A profile strongly reversal-prone after Set 1.

B profile strongly reversal-prone after Set 1.

The resulting P3 should increase if the evidence genuinely supports split sets.

Likewise, strong persistence evidence should reduce P3.

⸻

F. Small-N behavior

Run:

N = 0, 1, 2, 3, 5, 10, 20

for representative historical results:

  • all recovery
  • mostly recovery
  • neutral
  • mostly persistence
  • all persistence.

For each N print:

  • Jeffreys posterior
  • paired index
  • prior precision
  • shrink weight
  • final Set-2 target
  • resulting P3.

A single historical transition must not dominate the model.

But small-N shrinkage also must not always collapse to the straight-set structural path.

⸻

G. Separate KSR strength from Set-2 response

KSR owns current/player serve-return point strength.

The Set-2 transition model owns conditional response after Set 1.

Audit whether the same current-form information is effectively being counted twice:

  • once inside KSR
  • again in the ordered Set-2 history.

If the ordered historical sample is simply re-encoding player strength, the transition index may punish underdogs or reinforce favorites rather than estimate genuine state dependence.

Find whether the index is centered relative to the player’s expected structural Set-2 probability or relative to raw 50%.

A state-response estimator should measure:

observed conditional result relative to what current strength would have predicted.

It should not treat a strong player winning Set 2 frequently as automatic “momentum.”

⸻

H. Inspect structural prior ownership

The current code calculates a structural prior precision.

Prove where that prior comes from.

It must be based on current point-state uncertainty/evidence, not:

  • population set rates
  • tour P3 rates
  • rank buckets
  • arbitrary N
  • hardcoded preference for straight sets.

Then verify its effective N is on a comparable statistical scale to the transition evidence N.

If priorN is much larger than historical evidence by construction, the index may technically exist but never materially change P3.

⸻

I. Verify Set 3

Current design reportedly returns Set 3 to baseline KSR point strength.

Audit whether that is still true.

If match reaches 1-1:

  • no Set-1 winner carryover
  • no Set-2 index remains attached
  • no historical continuation modifier leaks into Set 3 unless explicitly modeled/researched.

This matters because incorrectly preserving the Set-2 shift into Set 3 can distort both Winner and Total Games.

⸻

J. Winner error must not contaminate Sets diagnosis

The current Match Winner/KSR sector has a separate unresolved directional issue.

Therefore, perform two Sets tests:

  1. using the current KSR point pair
  2. using controlled legal SPW pairs.

This isolates whether Sets Played itself has an Under bias independent of KSR.

Do not “fix” Sets by compensating for incorrect KSR probabilities.

⸻

K. Test realistic Over-2.5 scenarios

Construct legitimate state configurations that should make three sets common:

  • two near-equal players
  • asymmetric Set-2 recovery tendencies
  • opposing serve/return matchups
  • player A stronger initially but B strong after losing Set 1
  • player B stronger initially but A strong after losing Set 1.

The engine should be capable of producing:

  • P3 40%
  • P3 50%
  • P3 55%
  • P3 60%+

when the state probabilities mathematically warrant it.

Do not force the model to hit those numbers. Demonstrate whether the current equations permit them.

⸻

L. Check for hidden Under-selection logic

Search the entire script for:

  • p3
  • p2
  • UNDER 2.5
  • OVER 2.5
  • sets played
  • threeSet
  • straight
  • decider
  • thresholds around .50, .52, .55, .60, .65
  • clamps
  • min/max
  • confidence gates.

Classify each as:

  • probability construction
  • publication only
  • dead code
  • display.

There must be no probability mutation after the canonical exact-score PMF.

⸻

M. Total Games interaction

Do NOT alter the working Total Games architecture merely because P3 changes.

Total Games should consume the final set-count structure and its within-lane game geometry.

Verify:

P(Total Games) uses the same final P2/P3 mass.

No second TG function should secretly reweight P3.

A correct Sets fix can naturally change Total Games because the canonical root changed. That is allowed.

A separate TG correction applied afterward is not.

⸻

N. Required regression tests

Before accepting the Sets sector:

  1. P2 + P3 = 1.
  2. Both Win = P3.
  3. A/B PMF transpose symmetry.
  4. P3 can exceed 0.50.
  5. P3 can fall well below 0.50.
  6. No cap or floor.
  7. No population P3 owner.
  8. N=1 does not dominate.
  9. Large real evidence can materially move Set 2.
  10. Recovery evidence can increase P3.
  11. Persistence evidence can decrease P3.
  12. Neutral evidence leaves structural model approximately unchanged.
  13. Player swap mirrors transition effects.
  14. Set 3 returns to intended baseline state.
  15. Winner marginal still agrees with exact PMF.
  16. Sets Won remains exact PMF marginal.
  17. Total Games uses the same set-count mass.
  18. ATP, WTA and Challenger examples.
  19. High line and low line examples.
  20. No special match names or event constants.

Deliverable

Return:

  1. exact live Sets call graph
  2. full Set-2 equations
  3. evidence construction
  4. prior/shrink equations
  5. effective N analysis
  6. P3 reachable range
  7. branch orientation proof
  8. small-N table
  9. A/B symmetry results
  10. hidden Under-bias paths, if any
  11. exact functions requiring correction
  12. code patches
  13. regression results.

The target is not “bet OVER 2.5.”

The target is:

TennisLocks must be free to price straight sets or three sets in either direction according to the actual current point-state and genuine state-dependent transition evidence.

When Gemini sends the response, send it here and I’ll trace its claims against the live script before we accept or patch anything.

답변

I’ll audit the live KSR→Winner path and BO3 Set-2/P3 path in the uploaded v1692 script, patch only structural defects, then run targeted regression checks and return the updated .txt script. I’ll preserve the one-root architecture and avoid any match-specific, rank/Elo, or post-PMF corrections.

사고

Inspected audit script, KSR functions, extracted lines, and reviewed estimator gaps

답변

The first concrete issue is in the KSR replay chronology: selected rows are currently sorted by ms and then string ID, so multiple TOURNEY_START_DATE rows can be replayed in a non-causal round order. The serve/return design itself is oriented as “server serve skill − receiver return skill,” so I’m keeping that sign convention and focusing the patch on causal row ordering/identity plus auditability before touching any probability math.

사고

Fixing branch logic

I’m identifying a structural flaw: both Set 1 outcomes currently lead to the same Set 2 target. I’m replacing that unconditional transition with branch-specific residuals, adjusted against structural win probability rather than a raw 50% baseline.

Fixed branch logic

Refining posterior transitions

I’m keeping the Jeffreys prior, centering each branch’s posterior rate on structural win probability, converting residuals into bounded strength adjustments, and applying effective sample-size shrinkage with mirrored-match deduplication.

Refined posterior transitions

사고

Inspected match metadata, pricing logic, state-space modules, and updated evidence weighting

답변

A second structural issue is confirmed: KSR’s newcomer/entry mean currently uses player ranking, which violates the requested isolation rule because rank can alter serve/return state before the PMF. I’m removing rank from the KSR pricing state entirely, and I’m also changing Set-2 history from one branch-independent drift to two branch-specific, structurally centered recovery/persistence estimators.

사고

Updating the script

I’m removing rank from KSR entry priors, preserving serve/return symmetry, and replacing branch-independent Set-2 drift with structurally centered branch-specific evidence.

Auditing causal ordering

I’m preserving the valid KSR sign structure while correcting replay chronology, removing ranking from entry priors, and making Set-2 persistence or reversal genuinely branch-specific rather than shared.

Updated the script

사고

Patched rank-neutral KSR winner logic after inspecting scripts and payloads

답변

The patched script now has three structural changes in place: rank is removed from KSR entry-state pricing, same-timestamp replay carries round/match/source ordering, and BO3 Set-2 response is branch-specific and centered on the live structural probability rather than 50%. I’m running syntax/static invariants now and checking that these changes did not create a second pricing owner or a post-PMF mutation.

사고

Inspected and updated tennis regression logic, scoring, Elo usage, and tests

답변

The final regression harness is clean: 19/19 targeted checks passed, including deterministic repeat, full BO3 A/B score transpose, rank-only invariance, missing-SPW fail-closed, ATP/WTA/Challenger BO3 builds, ATP BO5, and exact Winner/PMF identities. Synthetic legal state tests also confirm P3 has no ~50% ceiling: reversal evidence can push it well above 50%, while persistence can push it well below.

사고

Used container tool

Worked for 17m 18s

답변

Updated script is ready. I kept the existing one-root architecture—KSR/current point evidence → game/set state → exact-score PMF → Winner/Sets marginals—as required by the uploaded build. (TennisLocks_v1692_KSR_PAYLOAD_LABEL_20260930.txt)

[Download the updated TennisLocks v1693 script]

Download the regression results

Key structural fixes in v1693:

  • Removed rank/Elo from KSR pricing state. _tlKsrEntryMeanV1448R7_ is now field-centered; rank cannot move serve state, return state, SPW, hold, or Winner. The unused executable Elo→Winner prior helpers were also removed.
  • Fixed same-timestamp KSR chronology. Replay now orders by date → tournament/event → round → match number → source sequence where available, rather than ms + lexical ID. AutoFill notes now persist round order and match number.
  • Strengthened selected-row dedupe/identity using date, event, round, match number, and player pair.
  • Added per-row KSR replay tracing: serve/return latent state before/after, service-point observations, predicted logits, innovations, event/round/date, and ordering metadata.
  • Kept the executed KSR orientation as
    server serve + server surface − receiver return − receiver surface + surface mean + event intercept.
  • Rebuilt BO3 Set-2 evidence as two independent branches: after A wins Set 1 and after B wins Set 1. The historical response is now centered on the live structural Set-2 probability—not raw 50%.
  • Structural Set-2 shrink precision now comes from the joint KSR posterior covariance (v11/v22/v12) propagated through the set function, rather than the old legacy current-point exposure counts.
  • Set 3 remains on baseline KSR point strength; the Set-2 adjustment is not carried into the decider.
  • No P3 cap/floor, population P3 target, Winner calibration, favorite correction, rank/Elo override, or post-PMF probability rewrite was added.

The executable regression harness passed 19/19 targeted checks, including full BO3 A/B transpose, deterministic repeat, rank-only invariance, fail-closed missing SPW, ATP/WTA/Challenger BO3, ATP BO5, P2 + P3 = 1, and Winner = exact-score PMF marginal. The legal synthetic Set-2 tests produced P3 on both sides of 50%; strong reversal evidence reached about 97.4% P3, while equally strong persistence evidence reached about 2.6%, confirming there is no structural ~50% ceiling.

One limitation: the uploaded file is source code only—it does not contain the live Match Inputs/Q1 data for the seven Yastremska/McNally replay observations. I therefore did not invent their row-by-row numerical states. This v1693 build now records those exact rows and innovations during the authorized KSR replay, so the next AutoFill/build + Match Preview will expose the numerical cause of the 54.1% → 52.9% and 54.6% → 55.4% moves directly.

이 Q&A 공유하기