Finally fixed b03 I rebuilt the BO3 section and w...
作成日: 2026年9月15日
使用モデル GPT-5.6 Thinking by Chat01
作成日: 2026年9月15日
使用モデル GPT-5.6 Thinking by Chat01
Finally fixed b03
I rebuilt the BO3 section and wired the structural correction ahead of the recent-form blend. The original file explicitly had no systemic P3 correction, while the dead _structuralNoPopulationSetTiltV1105 flag was still being passed into production roots. (TennisLocks_FINAL_v1157_BO3_CONDITIONAL_COVERAGE_FIX_20260915.txt) (TennisLocks_FINAL_v1157_BO3_CONDITIONAL_COVERAGE_FIX_20260915.txt)
The v1158 fix now does four important things:
qA/qB are corrected first. Raw P(steal one set | lose) from the fixed-SPW tree gets the cross-set response adjustment before _tlBo3BlendCoverageV1155_ sees it._structuralNoPopulationSetTiltV1105 now occurs zero times in the rebuilt script.I also kept Match Winner immutable and retained the exact-score/Fréchet geometry. Syntax validation passes, and a 5,000-case randomized identity test had maximum numerical error of 2.22e-16. In synthetic checks, raw P3 35.0% became 45.5% from the structural response alone; a raw 42.0% case reached 52.9% naturally—there is no set-count target forcing it there.
Download the corrected v1158 full script
Download the v1157 → v1158 diff
I want to continue correcting
I want to make sure that now it can call under 2.5 on actual matches this finally got p3 to rise up I also want u to look for more issues both ways how p3 can rise and p2 can rise so its not doing it on wrong matches do not hardcode anything this is very deep must do research on the web to further correct and replace the script replace means replace the deleted old parts and wire correctly
Over 2.5 worked here proof on this match we didn’t hardcode either
════════════════════════════════════════
🎾 TENNISLOCKS 🔒
OFFICIAL MATCH MODEL
VERSION 3.0
GENERATED 12:34 AM | September 15, 2026
ENGINE Point • Game • Set Probability Model
════════════════════════════════════════
🎯 WTA 500 (OUTDOOR) | Best of 3 | Line: 20.5
Tour: WTA | Court speed (CPI): 38
Metadata confidence: HIGH
────────────────────────────────────────
Cristina Bucsa vs Panna Udvardy
────────────────────────────────────────
────────────────────────────────────────
💰 MODEL PICKS:
📊 LEANS:
🚫 NO BETS:
Match type: Mixed serve and return, close matchup. (MIXED_EVEN)
Risk: 0.00 (LOW)
Pricing data quality: STRONG | opponent-rank samples 7/7 | trust -
PLAYER INTEL
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
Cristina Bucsa Panna Udvardy
Rank 44 83
Elo 1723 1685
Avg Opp Rank 75 85
Schedule A: SOLID (trust -, ranks 0) | B: SOLID (trust -, ranks 0)
Serve Style ace 1.6% ace 8.2%
Momentum RECENT_RESULTS RECENT_RESULTS
Hold % 70.3% 66.3%
Recent-row SPW (raw) 54.3% 58.8%
Dominance Ratio 0.74 0.77
Recent Hold SD 25.4% 18.1%
Break Rate 33.7% 29.7%
1st Srv Win % 58.2% 70.5%
2nd Srv Win % 45.6% 45.3%
1st Srv In % 63.0% 55.3%
Recent-row implied hold60.6% (54.3% SPW) 71.1% (58.8% SPW)
════════════════════════════════════════
🎲 SETS OUTLOOK
[SET RESEARCH REF] CANONICAL_POINT_ROOT | WTA/HARD/MAIN/CANONICAL_POINT_STATE_SET_COUNTS_V1144 | read-only, no live blend
[SET INPUTS] SPW A/B 58.5% / 56.7% | Hold A/B 70.3% / 66.3% | route UNIFIED_CURRENT_POINT_ROOT_V1113
[SET TB CAL] not applied | tree P(7-6) 15.0% | raw 15.0% | hist not measured | n null | CANONICAL_POINT_ROOT_NO_HISTORICAL_SET_TB_MUTATOR_V1144 | set-winner margin preserved by construction
[SET AUTHORITY] ACTIVE | BO3_POINT_STATE_RESPONSE_PLUS_LOSS_CONDITIONAL_COVERAGE_V1158 | BO3 length priced from player 1+ set coverage and reconciled to Match Winner
[BO3 COVERAGE MODEL] winner anchored | raw structural q -> point-state cross-set response -> optional recent-loss shrinkage | P3 = P(B wins)*qA + P(A wins)*qB | no raw-coverage blend | no corpus/population P3 target | no fixed P3 cap
[BO3 COVERAGE EFFECT] canonical P3 49.2% | response prior P3 60.6% | final P3 56.7% | response +11.4pp | recent -3.9pp
[BO3 PLAYER COVERAGE] A wins 1+ set 83.1% | B wins 1+ set 73.7% | identity 56.7%
[BO3 CONDITIONAL q] A raw/response/recent/final 52.9% / 64.2% / 0.0% / 58.3% || B raw/response/recent/final 46.7% / 58.2% / 40.0% / 55.6%
[SET LENGTH ROOT] final Sets Won / Both Win a Set / Over 2.5 identity P3 56.7% | one exact-score PMF
[SET WINNER ALIGN] final winner error 0.0e+0 | final set-count margin error 0.0e+0
[SET EXACT PMF] 2-0 26.3% | 2-1 33.0% | 0-2 16.9% | 1-2 23.7% | final P3 56.7%
[SET ACTION] LEAN OVER 2.5 | probability 56.7% | model fair odds -131 | MEDIUM | forecast only
[SET BETTING GATE] final exact-score PMF direction always visible | HIGH >= 60.0% = official PICK | MID 55.0%-<60.0% = LEAN | LOW >50.0%-<55.0% = forecast only | no BO3 data-quality confidence cap
[SET FAIR PRICE] Over 2.5 -131 | Under 2.5 +131
[SET TREE DIAGNOSTIC] canonical P(2) 50.8% | canonical P(3) 49.2% | canonical point/game/set tree
📊 Player Stats (Current Live-Source Audit):
Totals Fair Line (canonical structural threshold ref): 25.5 (CDF 50/50) | Full-dist median ref: 26.0
[WARNING] VERIFY INPUT LINE (market far from model fair line): market=20.5 vs fair=25.5 (delta=5.0)
Full-dist range (pricing ref): P10=18 | P50=26 | P90=33
Totals EV (tree mean): 25.2 | Median: 26.0
Projected match duration: ~121 min | 2 sets ~91 min / 3 sets ~143 min | research projection only
Settlement full-dist mode: 29g | settlement density zone: 28-30g 18.8%
All-match median ref: 26.0g | Conditional totals (not picks): E[T|2 sets] 19.7 | E[T|3 sets] 29.5 | selected 3-set probability 57%
Settlement PMF top exacts: 29g 6.4% | 30g 6.2% | 28g 6.1% | 19g 6.1% | 31g 5.9% | 22g 5.9% | 20g 5.7% | 18g 5.7% [canonical full-match mixture]
========================================
🎯 TOTAL GAMES
[OFFICIAL TOTAL GAMES DECISION] PICK OVER 20.5 | 72.6% | OFFICIAL BET
Final pricing direction: OVER 72.6% from the official cumulative full-match Total Games threshold probability.
Pricing method: all legal full-match score paths are summed against your Total Games line. No single exact score controls the pick.
At 20.5: Over 72.6% | Under 27.4%
Total Games probability authority: ONE canonical joint score+games PMF | no second threshold recalibration is applied after the current length root.
Set-count decomposition at 20.5:
2-set lane: 43.3% match mass | P(Over | 2 sets) 36.8% | contributes 16.0pp raw Over mass
3-set lane: 56.7% match mass | P(Over | 3 sets) 99.9% | contributes 56.7pp raw Over mass
Combined no-push P(Over 20.5) = 72.6% from all lanes.
First-server sensitivity (diagnostic only): A serves first -> Over 72.6% | B serves first -> Over 72.6% | mean-total gap 0.02g
Projected total-games distribution: fair line 25.5 | mean 25.2 | median 26 | largest single exact bucket 29g (6.4%, not a majority and not the O/U authority)
Exact-total concentration: dominant 3-game cluster 28-30g = 18.8% | cluster side OVER at 20.5
OVER threshold mass is spread across 19 exact totals | strongest OVER exact 29g = 6.4% unconditional / 8.8% of the OVER side | effective support 21.7 totals.
Unconditional pricing distribution: 80% range 17-32 | SD 5.7 | mode 29g (6.4%) | leaders 29g 6.4% | 30g 6.2% | 28g 6.1% | 19g 6.1% | 31g 5.9%
########################################
🎯 PROP PROJECTIONS 🎯
########################################
📊 Cristina Bucsa - Player Props:
Games Won: mean 13.1 | median 13 | mode 12 | full-match distribution
1st Set Games Won: 5.07 projected
Sets Won: LEAN 2+ SETS | 59.3% | MEDIUM
Serve Games: not requested | enter a service prop line to price
Serve Points Played: not requested | enter a service prop line to price
Serve Points Won: not requested | enter a Serve Points Won line to price
Aces: not requested | enter a Aces line to price
Double Faults: not requested | enter a Double Faults line to price
Breaks Won: not requested | enter a Breaks Won line to price
Break Points Created: not requested | enter a Break Points line to price
BP Conversion: not requested | enter a Break Points line to price
Opp BP Save: not requested | enter a Break Points line to price
Opponent Matchup: opp return 32% | context only; official pricing uses the final match tree
Historical sample: 12.3 service games | projected Games Won CV: 26%
📊 Panna Udvardy - Player Props:
Games Won: mean 12.1 | median 13 | mode 12 | full-match distribution
1st Set Games Won: 4.75 projected
Sets Won: BET 1+ SET | 73.7% | HIGH
Serve Games: not requested | enter a service prop line to price
Serve Points Played: not requested | enter a service prop line to price
Serve Points Won: not requested | enter a Serve Points Won line to price
Aces: not requested | enter a Aces line to price
Double Faults: not requested | enter a Double Faults line to price
Breaks Won: not requested | enter a Breaks Won line to price
Break Points Created: not requested | enter a Break Points line to price
BP Conversion: not requested | enter a Break Points line to price
Opp BP Save: not requested | enter a Break Points line to price
Opponent Matchup: opp return 34% | context only; official pricing uses the final match tree
Historical sample: 12.5 service games | projected Games Won CV: 32%
🎲 Match-Level Context:
Sets Played: LEAN OVER 2.5 | P(2 sets) 43.3% / P(3 sets) 56.7% | expected 2.57 sets
3-set match / both players win a set: YES 56.7% | NO 43.3% | no betting action
Exact match-score paths: Cristina Bucsa 2-0 26.3% | Cristina Bucsa 2-1 33.0% | Panna Udvardy 2-0 16.9% | Panna Udvardy 2-1 23.7%
If forecast winner Cristina Bucsa wins: straight sets 44.4% | Panna Udvardy steals one set 55.6% conditional (33.0% of all match paths)
Individual win 1+ set: Cristina Bucsa 83.1% | Panna Udvardy 73.7% | marginal coverage only; NOT the BO3 3-set probability; includes paths where that player wins the match
Straight-set loss chance: Cristina Bucsa 16.9% | Panna Udvardy 26.3%
Games/aces/breaks use the full match tree, not a single 2-0 or 2-1 scoreline.
Surface: HARD | Tour ace reference 4.4% | double-fault reference 5.1%
Continue thru my script also correct b03, then b05 also b05 will be very different
I continued through the full script and rebuilt both BO3 and BO5 into v1159. This is a replacement build, not an extra patch layered after v1158.
The main BO3 problem was real: v1158 added the same positive logit +shift to both conditional set-steal probabilities, so that structural stage was mathematically one-way toward higher P3. (TennisLocks_FINAL_v1158_BO3_CROSS_SET_RESPONSE_FIX_20260915.txt) More importantly, the posterior point root was already integrating its uncertainty components into the exact-score PMF, so reusing that dispersion as another positive response adjustment risked counting the same uncertainty twice. (TennisLocks_FINAL_v1158_BO3_CROSS_SET_RESPONSE_FIX_20260915.txt)
The research supports a state-dependent treatment rather than forcing “momentum” or “comeback” in either direction. Classical point models provide the structural baseline but explicitly assume iid point probabilities and acknowledge non-iid effects. (Wiley Online Library) A 66,262-match BO3 study found both strategic and psychological set-level effects, while the BO5 research on 8,193 ATP matches found systematic psychological reversal after non-tied scoreboard states. (Sage Journals) That is why v1159 lets the actual matchup evidence determine continuation versus reversal instead of hardcoding either one.
What changed in the replacement:
+SD response is physically gone. _tlBo3PointStateResponseScaleV1158_ and _tlBo3StructuralResponseCalibrationV1158_ no longer exist.P(A wins Set 2 | Set 1 state), not on first-set probability.n>=2 gate and fixed priorN=12. (TennisLocks_FINAL_v1158_BO3_CROSS_SET_RESPONSE_FIX_20260915.txt) It also discarded usable evidence unless both player profiles existed. (TennisLocks_FINAL_v1158_BO3_CROSS_SET_RESPONSE_FIX_20260915.txt) Both restrictions are removed. BO5 now gets state-specific shrinkage from posterior-component uncertainty, with measured point exposure only as fallback, and either valid player profile can contribute. S4→S5 remains excluded because at 2-2 the existence of Set 5 is already determined.The final production-function test started from structural P3 45.0%. Reversal-heavy ordered evidence moved it to 61.9% Over, while continuation-heavy evidence moved the exact same starting P3 to 31.2% P3 / 68.8% Under. So this version can genuinely generate an official Under 2.5 when the evidence is strong enough; Under is no longer dependent merely on the raw canonical tree surviving a one-way inflation stage.
I also ran a fresh 5,000-case full BO3 randomized test through the replacement functions. P3 rose in 2,465 cases and fell in 2,535; maximum Winner/coverage/conditional identity error was only 3.33e-16. BO5's one-player-profile test also altered the 3/4/5-set distribution successfully while preserving a probability sum of 1. Full-script node --check passes.
One timing correction on the Bucsa–Udvardy example: the September 15 Guadalajara match in your printout is still listed as scheduled, so that specific preview cannot yet be treated as an observed Over result. Their earlier Cincinnati meeting on August 13 did finish 2-1 Bucsa. (Sofascore) As a completely external sanity check—not an input to the model—the current Guadalajara market was actually pricing Under 2.5 shorter than Over 2.5, which is another reason it was important to remove the structural one-way P3 lift. (Oddschecker.com)
Download the full v1159 replacement script
Download the complete v1158 → v1159 diff
Download the final validation output
The next useful test is to run this v1159 against a batch containing obvious straight-set mismatches, obvious three-set coin-flip matchups, and BO5 Slam matches. The diagnostics now expose the exact S1→S2 state probabilities and their direction, so when it makes a wrong Under or wrong Over we can trace which causal state moved it, instead of just seeing P3 mysteriously rise.