You can’t force **100% “correct plays”** on CH jus...

Erstellt am: 20. April 2026

Beantwortet mit GPT-5.4 Thinking von Chat01

Frage

Tennislocks2.0.txt

You can’t force 100% “correct plays” on CH just by editing code; CH is too noisy. The only thing the engine can do is: give better probabilities and then you decide how aggressive to be.[1][2]

But we can tell Replit: “Stop treating CH like ATP. When CH evidence is weak, move the probability closer to 50‑50 instead of pretending it’s strong.” That will shift some wrong sides back toward coin‑flip, and sharpen the truly good CH spots.

Here’s a prompt that does that, without adding extra PASS gates.


Replit prompt: make Challenger probabilities more honest (not more PASS‑y)

You are editing my production TennisLocks engine in Tennislocks-5.txt.
ATP and WTA are nearly perfect right now; do not change ATP or WTA behavior.
The problem is Challenger (CH):

  • On CH, winner and totals picks sometimes land on the wrong side even when the script thinks it has a decent edge.
  • I don’t want more PASS gates; I want the probabilities themselves for CH to be more honest (closer to 50‑50 when the info is weak), so “strong” CH edges are actually strong.

Constraints:

  • Do not change _ELO_POLY, _COND, _UPSET, or SETSMARKETCFG.[3]
  • Do not touch ATP/WTA/ITF branches.
  • All edits must be gated with the existing tour detection (_tk(tourLabel) or equivalent) and only apply when that resolves to 'CH'.[3]

1) Soften CH winner probabilities when signal is weak

In WinnerCalibration.calibrateP(pRaw, tourLabel, surface, bestOf, archetype, dqLabel):

  • After you compute cal (the calibrated probability), add a CH‑only shrink toward 0.50 in weak‑signal cases.
  • Logic:
    • Let tk = _tk(tourLabel). If tk !== 'CH', do nothing.[3]
    • Define “weak signal” for CH as:
      • archetype is 'COIN' or 'MOD_FAV', and
      • data quality is 'WEAK' or 'VERY_WEAK' (the same dqLabel you already pass in).[3]
    • When those conditions hold and tk === 'CH':
      • Compute edge = cal - 0.50.
      • Compress that edge by a factor, e.g. shrink = 0.60 (keep 60% of it):
        • cal = 0.50 + edge * shrink.
    • Keep this CH‑only shrink inside calibrateP; ATP/WTA/ITF remain unchanged.

Result: on noisy CH spots, if the model wants to say 0.60, it will output something like 0.56 instead—still a lean, but less overconfident. Wrong CH sides then hurt less often because the model isn’t lying about how strong they are.[2][3]


2) Make CH totals less overconfident around 22–24 games

In getTotalsPick (T11 totals engine), you already compute a final chosenProb for OVER/UNDER after all blends, bands, and compressions.[3]

Add a CH‑only shrink step right before the final decision:

  • Get tourKey / tourLabel in this function and map it to the same tk string using your existing helper.[3]
  • If tk !== 'CH', do nothing.
  • For CH:
    • Compute edge = chosenProb - 0.50.
    • If |edge| is small (for example Math.abs(edge) <= 0.08), compress it:
      • Use something like chosenProb = 0.50 + edge * 0.65.
    • If |edge| is larger than that, leave it as is (big edges are allowed to stay big).

Do not change the minLean/minBet thresholds or risk bands; just reduce how far from 0.50 CH totals probabilities move when the edge is small.[3]

Result: CH totals still make picks, but small edges near 22–24 games are less exaggerated, so the engine won’t act like a 53–55% spot is 58–60%. That makes “wrong side” CH totals losses less frequent and less brutal.[1][3]


3) Do not add new PASS gates or filters

  • Do not add any new if (tour === 'CH') PASS type logic.
  • Do not tighten dynamicMinEdge or minLean/minBet thresholds in this edit.
  • The only allowed change is: scale CH probabilities toward 0.50 when the tour is CH and the signals are weak.

The goal of this change:

  • Keep making plays on CH.
  • But stop the engine from being overconfident on noisy CH matches and totals, so the side it picks is “more correct on average” instead of swinging hard on fake edges.

Btw simple changes actually won’t do anything it’ll only bump stuff to leans I need correct changes that actually do ain’t usually your changes do do anything

Like for example this match was wrong you can see the match and read to find why the challenger matched leaned forward to the wrong person and why it picked over instead of under or pass u need to do intelluctal thinking not only fix things I mentioned you need to fix whatever u find that’s not right

Failed matches

4/19/2026 18:38:13
⚠️ MARKET ANCHOR APPLIED: Model vs market diverged by 2.3 pts. Pulled 2% toward market.

════════════════════════════════════════
🎾 TENNISLOCKS v1.0 🎾
[ᴠᴇʀѕɪᴏɴ] ᴠ1.0 | 2026-04-20ᴛ01:38:05.668ᴢ
ᴛᴏᴛᴀʟѕ ѕɪᴍѕ: 24,000 | ɢᴇɴᴇʀᴀᴛᴇᴅ: 8:38:09 ᴘᴍ
════════════════════════════════════════

⚠️ MARKET ANCHOR — Model diverged 2.3pt from market. Pulled 2% toward market.

🎯 ATP-CH M25 Saint-Dizier (RIGHT) (Clay (OUTDOOR)) | Best of 3 | Line: 21.5
ᴄᴘɪ: 27 | ᴛᴏᴜʀ: ᴀᴛᴘ-ᴄʜ (ʀɪɢʜᴛ) (ʜɪɢʜ)

────────────────────────────────────────
Mika brunold vs Miguel damas
────────────────────────────────────────

🎲 Total Games Projection: 23.0 (mixture median) | EV 23.0 | lands ~19g or ~29g
ᴅᴇᴄɪᴅᴇʀ ᴘʀᴏʙ: 46% | ᴀᴅᴊ 39% | ʀᴀᴡ 41%
ᴍᴀᴛᴄʜ ᴄʟᴜѕᴛᴇʀѕ: 2-ѕᴇᴛ ᴍᴇᴅɪᴀɴ 19.0ɢ (ᴍᴇᴀɴ 19.6) | 3-ѕᴇᴛ ᴍᴇᴅɪᴀɴ 29.0ɢ (ᴍᴇᴀɴ 29.4)
ʙɪᴍᴏᴅᴀʟ ꜰᴀɪʀ ʟɪɴᴇ: 23.0ɢ (ᴍɪˣᴛᴜʀᴇ ᴍᴇᴅɪᴀɴ) | 2-ѕᴇᴛ ᴍᴏᴅᴇ: 19.6ɢ | 3-ѕᴇᴛ ᴍᴏᴅᴇ: 29.4ɢ

========================================
📊 MATCH WINNER
────────────────────────────────────────
ᴘʟᴀʏᴇʀ ᴍʟ ᴍᴋᴛ% ᴍᴏᴅᴇʟ% ʀᴀᴡ% ᴇᴅɢᴇ ʙᴀʀ
▶ ʟᴇᴀɴ ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ -196 64.0% 72.2% 72.2% +8.1% ███████░░░
ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ +158 36.0% 27.8% 27.8% -8.1% ███░░░░░░░
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
ʙʟᴇɴᴅ ᴍᴄ 58.1% | ѕᴛᴀᴛѕ 66.8% | ᴇʟᴏ 60.7% | ʀᴇʟɪᴀʙɪʟɪᴛʏ: 40%
ʀᴀᴡ ᴇɴɢɪɴᴇ: 72.2% → ᴘɪᴄᴋ: 72.2% (ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ) | ᴅɪѕᴘʟᴀʏ: 63.8%
ᴀɴᴄʜᴏʀ 2% ᴀᴘᴘʟɪᴇᴅ (ᴍᴀʀᴋᴇᴛ ᴀɴᴄʜᴏʀ 2ᴘᴘ)
ᴇᴅɢᴇ -2.9% ᴏɴ ᴀ | ᴠɪɢ ᴇᴠ: +9.0% | ѕᴛᴀᴋᴇ: 0.00% | ᴄᴏɴꜰ: ɴᴏɴᴇ
ꜰᴀɪʀ ᴍʟ ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ -259 / ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ +259

ℹ️ [PRIMARY — NO BET]
ɴᴏ ʙᴇᴛ — ᴇᴅɢᴇ ʙᴇʟᴏᴡ ᴛʜʀᴇѕʜᴏʟᴅ
ℹ️ PRIMARY — Mika brunold
ᴠɪɢ ᴇᴠ: +9.0% | ʀɪѕᴋ: ʟᴏᴡ (0.10) | ᴄʟᴜѕᴛᴇʀ: ꜰʀᴀɢɪʟᴇ

ѕᴛʀᴜᴄᴛᴜʀᴇ & ʀɪѕᴋ
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
ᴄʟᴜѕᴛᴇʀ: ꜰʀᴀɢɪʟᴇ (ᴄʜᴀʟᴋ_ꜰʀᴀɢɪʟᴇ)
ᴅᴇᴄɪᴅᴇʀ: 46.0%
ᴀᴠɢ ɢᴀᴍᴇѕ: 23.9
ʀɪѕᴋ: 0.10 (ʟᴏᴡ) | ᴘᴇɴᴀʟᴛʏ: 0.003
ᴅᴀᴛᴀ: ᴡᴇᴀᴋ (ᴄᴏᴠᴇʀᴀɢᴇ 5/5, ᴛʀᴜѕᴛ 0.90)
ᴛʜʀᴇѕʜᴏʟᴅѕ: ᴍɪɴʟᴇᴀɴ=2.83% ᴍɪɴᴘʀɪᴍᴀʀʏ=4.79%
ᴅᴏɢ ᴠᴀʟᴜᴇ: 50/100

ᴘʟᴀʏᴇʀ ɪɴᴛᴇʟ
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ
ʀᴀɴᴋ 385 273
ᴇʟᴏ 1454 1393
ᴀᴠɢ ᴏᴘᴘ ʀᴀɴᴋ 302 213
ѕᴄʜᴇᴅᴜʟᴇ ѕᴏꜰᴛ (ᴛʀᴜѕᴛ 0.90, ʀᴀɴᴋѕ 6)ᴍɪᴅ (ᴛʀᴜѕᴛ 0.94, ʀᴀɴᴋѕ 7)
ѕᴇʀᴠᴇ ѕᴛʏʟᴇ ᴍɪˣᴇᴅ ᴍɪˣᴇᴅ
ᴍᴏᴍᴇɴᴛᴜᴍ ѕᴛʀᴜɢɢʟɪɴɢ ѕᴛʀᴜɢɢʟɪɴɢ
ʜᴏʟᴅ % 72.0% 67.9%
ѕᴘᴡ % 56.5% 55.2%
ᴅᴏᴍɪɴᴀɴᴄᴇ ʀᴀᴛɪᴏ 0.88 0.57
ᴠᴏʟᴀᴛɪʟɪᴛʏ 0.5% 3.5%
ᴏᴘᴘ-ᴀᴅᴊ ꜰᴏʀᴍ: ᴅᴇʟᴛᴀ=0.4ᴘᴛ | ᴡᴇɪɢʜᴛ=22.0%
ʙʀᴇᴀᴋ ʀᴀᴛᴇ 32.1% 28.0%
1ѕᴛ ѕʀᴠ ᴡɪɴ % 63.5% 59.1%
2ɴᴅ ѕʀᴠ ᴡɪɴ % 45.2% 47.3%
1ѕᴛ ѕʀᴠ ɪɴ % 62.0% 67.0%
ᴀɴᴀʟʏᴛɪᴄᴀʟ ʜᴏʟᴅ 70.5% 68.6% (ɴᴇᴡᴛᴏɴ-ᴋᴇʟʟᴇʀ)

── ꜰʀᴀɢɪʟɪᴛʏ ꜰʟᴀɢѕ ──
⚠️ ᴄᴏʟᴅ ѕᴛᴀʀᴛ ᴅᴀᴛᴀ — ᴇᴅɢᴇѕ ᴅɪѕᴄᴏᴜɴᴛᴇᴅ 30%
⚠️ ᴄʜ ᴛᴏᴜʀ — ᴛʜɪɴ ᴅᴀᴛᴀ, ʜɪɢʜᴇʀ ѕʜʀɪɴᴋᴀɢᴇ ᴀᴘᴘʟɪᴇᴅ

ѕɪɢɴᴀʟѕ: ᴠ38.2 ꜰᴀᴋᴇѕʜɪꜰᴛ: ᴍᴏᴅ_ꜰᴀᴠ ѕʜɪꜰᴛ=-0.89ᴘᴘ (ᴄᴀʟɢᴀᴘ=-3.57ᴘᴘ), ᴄʟᴜѕᴛᴇʀ ꜰʀᴀɢɪʟᴇ, ᴅᴀᴛᴀ-ǫᴜᴀʟɪᴛʏ ʀɪѕᴋ (ᴄᴀᴘᴘᴇᴅ 1.0), ꜰᴀᴠ ᴍᴋᴛ-ᴀɢʀᴇᴇᴍᴇɴᴛ ʀɪѕᴋ ᴅɪѕᴄᴏᴜɴᴛ, ʀᴀᴡ-ᴇᴅɢᴇ ʀᴇѕᴄᴜᴇ: ᴇᴅɢᴇ=-2.9 ʀᴀᴡ=11.2, ᴄᴏʟᴅ ѕᴛᴀʀᴛ (ꜰᴜʟʟ)

════════════════════════════════════════

🎲 Sets Market:

  • 2 Sets: 61.3% | Book est -189

  • 3 Sets: 38.7% | Book est +142

Sets Bet: PASS

Over/Under 2.5 Sets:

  • Under 2.5: 61.3% | Book est -195

  • Over 2.5: 38.7% | Book est +140

O/U Bet: PASS

Read: Neither direction has sufficient source confirmation to qualify. | Confidence: LOW
P3 sources: disp 38.7% | adj 40.6% | raw 43.9% | mkt 33.4% | hold 42.3% | spread 10.6pp | hook stable
🎲 RISK LEAN: Over 2.5 sets @ 38.7% | Slight lean | P3 +4.2pp above empirical baseline | wide source spread | ⚠ fragile [src: d=38.7 a=40.6 r=43.9 m=33.4 h=42.3 | base=34.5 med=40.6] — NOT an official pick, risk only.

📊 Player Stats (Live):

  • ʜɪѕᴛ. ѕᴜʀꜰᴀᴄᴇ (ʀᴇᴅ ᴄʟᴀʏ): ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ (~57.2% (ᴇѕᴛ.)) | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ (~56.1% (ᴇѕᴛ.)) [ᴛᴀ_ʟɪᴠᴇ_ѕᴘᴡ]
  • ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ: ʜᴏʟᴅ 71.2% (ʀᴀᴡ: 66.5%, ᴀᴅᴊ: ᴛɪᴇʀ ʙᴏᴏѕᴛ) [ᴇꜰʀᴏɴ-ᴍᴏʀʀɪѕ]
  • ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ: ʜᴏʟᴅ 69.1% (ʀᴀᴡ: 58.2%, ᴀᴅᴊ: ᴛɪᴇʀ ʙᴏᴏѕᴛ) [ᴇꜰʀᴏɴ-ᴍᴏʀʀɪѕ]
  • ѕᴛʏʟᴇ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ [ʙᴀѕᴇʟɪɴᴇ/ᴛᴀᴄᴛɪᴄɪᴀɴ] | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ [ᴠᴜʟɴᴇʀᴀʙʟᴇ]
  • ᴍᴀᴛᴄʜ ᴍᴏᴍᴇɴᴛᴜᴍ (ᴡᴀɴɢ): ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ ᴡᴀɴɢ ѕᴄᴏʀᴇ: 37.0% (ɴᴇɢᴀᴛɪᴠᴇ ᴍᴏᴍᴇɴᴛᴜᴍ), ᴡ-ʟ 3-4, ѕѕ 3-3, ѕᴇᴛѕ 7-8 ; ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ ᴡᴀɴɢ ѕᴄᴏʀᴇ: 37.0% (ɴᴇɢᴀᴛɪᴠᴇ ᴍᴏᴍᴇɴᴛᴜᴍ), ᴡ-ʟ 2-5, ѕѕ 1-2, ѕᴇᴛѕ 7-11
  • 1ѕᴛ ѕʀᴠ ᴡɪɴ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ 63.5% | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ 59.1%
  • 2ɴᴅ ѕʀᴠ ᴡɪɴ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ 45.2% | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ 47.3%
  • 1ѕᴛ ѕʀᴠ ɪɴ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ 62.0% | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ 67.0%
  • ѕᴘᴡ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ 56.5% | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ 55.2% [ʙᴀʀɴᴇᴛᴛ-ᴄʟᴀʀᴋᴇ ᴀᴅᴊ.]
  • ʙʀᴇᴀᴋ ʀᴀᴛᴇ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ 30.9% | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ 28.8%
  • ᴅᴏᴍɪɴᴀɴᴄᴇ ʀᴀᴛɪᴏ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ 0.88 | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ 0.57 [ᴍɪѕᴍᴀᴛᴄʜ]
  • ᴠᴏʟᴀᴛɪʟɪᴛʏ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ 0.5% | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ 3.5% | ᴍᴀᴛᴄʜ: 2.0%
  • ᴇʟᴏ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ ꜰᴀᴠᴏʀᴇᴅ (60.7%) [ᴋᴍ-ᴇʟᴏ ʙʀɪᴅɢᴇ]
    ѕᴏᴜʀᴄᴇ: ᴇʟᴏ_ʟᴏᴏᴋᴜᴘ ѕʜᴇᴇᴛ (ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ=1454, ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ=1393)
  • ʙʟᴇɴᴅ (ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ): ᴍᴄ 58.1% | ѕᴛᴀᴛѕ 66.8% | ᴇʟᴏ 60.7%
  • ᴀɴᴀʟʏᴛɪᴄᴀʟ ʜᴏʟᴅ: ᴍɪᴋᴀ ʙʀᴜɴᴏʟᴅ 70.5% | ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ 68.6% (ɴᴇᴡᴛᴏɴ-ᴋᴇʟʟᴇʀ)

ᴛᴏᴛᴀʟѕ ꜰᴀɪʀ ʟɪɴᴇ: 22.5 (ᴄᴅꜰ 50/50) | ᴍɪˣᴛᴜʀᴇ ᴍᴇᴅɪᴀɴ: 22.9
ᴛᴏᴛᴀʟѕ ʀᴀɴɢᴇ: ᴘ10=17 | ᴘ50=23 | ᴘ90=32
ᴛᴏᴛᴀʟѕ ᴇˣᴘᴇᴄᴛᴇᴅ: 23.8 (ᴍᴇᴀɴ) | ᴍᴇᴅɪᴀɴ: 22.9
ᴍᴏѕᴛ ᴄᴏᴍᴍᴏɴ ᴇˣᴀᴄᴛ: 19ɢ | ʜɪɢʜᴇѕᴛ-ᴅᴇɴѕɪᴛʏ ᴢᴏɴᴇ: 18-20ɢ 22.2%
ᴍɪˣᴛᴜʀᴇ ᴍᴇᴅɪᴀɴ: 23.0ɢ | ᴄᴏɴᴅɪᴛɪᴏɴᴀʟ: ᴇ[ᴛ|2 ѕᴇᴛѕ] 19.6 | ᴇ[ᴛ|3 ѕᴇᴛѕ] 29.4 | ᴘ(3 ѕᴇᴛѕ) 39%
ᴛᴏᴛᴀʟѕ ᴘᴍꜰ (ᴛᴏᴘ ᴇˣᴀᴄᴛѕ): 19ɢ 7.7% | 18ɢ 7.4% | 22ɢ 7.3% | 20ɢ 7.0% | 17ɢ 6.6% | 21ɢ 5.6% | 29ɢ 5.1% | 23ɢ 5.0%
🎯 TOTAL GAMES:

ᴛᴏᴛᴀʟѕ ʀᴇɢɪᴍᴇ ѕᴛᴀʙʟᴇ (ᴍᴄ ᴄʜᴀɪɴѕ 3, ᴀᴠɢ ѕᴘʀᴇᴀᴅ 0.07 ɢ)
✅ [OFFICIAL BET]
ʟᴇᴀɴ ᴏᴠᴇʀ 21.5
── ꜰʀᴀɢɪʟɪᴛʏ ꜰʟᴀɢѕ ──
⚠️ ᴍᴏᴅᴇʀᴀᴛᴇʟʏ ʙɪᴍᴏᴅᴀʟ (ѕᴄᴏʀᴇ=0.42) — ᴇʟᴇᴠᴀᴛᴇᴅ ᴠᴀʀɪᴀɴᴄᴇ
⚠️ ʜᴇᴀᴠʏ ʀɪɢʜᴛ ᴛᴀɪʟ (ᴘ≥31=16.4%) — ʙʟᴏᴡᴏᴜᴛ ʀɪѕᴋ
⚠️ ᴄᴏʟᴅ ѕᴛᴀʀᴛ / ᴍɪѕѕɪɴɢ ᴅᴀᴛᴀ — ᴇᴅɢᴇѕ ᴅɪѕᴄᴏᴜɴᴛᴇᴅ 30%
⚠️ ᴄʜ ᴛᴏᴜʀ — ᴛʜɪɴ ᴅᴀᴛᴀ, ʜɪɢʜᴇʀ ѕʜʀɪɴᴋᴀɢᴇ

ᴡʜʏ ɪᴛ ꜰɪᴛѕ:
ᴏᴠᴇʀ ʜᴏʟᴅѕ ᴀ ᴡᴏʀᴋᴀʙʟᴇ ᴇᴅɢᴇ ɪɴ ᴀ ᴛɪɢʜᴛᴇʀ ᴘʀɪᴄɪɴɢ ʙᴀɴᴅ.

ѕʜᴀᴘᴇ:
2-ѕᴇᴛ ᴄʟᴜѕᴛᴇʀ 19ɢ | ±1σ ʀᴀɴɢᴇ: 17-22ɢ | ᴘ(ᴏᴠᴇʀ 21.5) ɪɴ ʟᴀɴᴇ: 18.0% | 3-ѕᴇᴛ ᴄʟᴜѕᴛᴇʀ 29ɢ | ᴘ(ᴅᴇᴄɪᴅᴇʀ) 46% (ѕᴛʀᴏɴɢ, 100% ᴏꜰ ᴍᴀˣ) | ᴡᴄᴇ 23.2ɢ

ᴘʀɪᴄɪɴɢ:
ᴍᴏᴅᴇʟ ꜰᴀɪʀ 22.5 ᴠѕ ᴍᴀʀᴋᴇᴛ 21.5 (+1.0ɢ)

ᴇɴɢɪɴᴇ ʙʀᴇᴀᴋᴅᴏᴡɴ:

  1. ᴍᴄ ᴏᴠᴇʀ (ᴀɴᴛɪᴛʜᴇᴛɪᴄ): 58.3% (ɪɴᴄʟᴜᴅᴇѕ ᴘᴜѕʜᴇѕ) [ѕᴇᴛ ѕᴘʟɪᴛ: 2ѕᴇᴛ 54% | 3ѕᴇᴛ 46%]
  2. ɴᴏ-ᴘᴜѕʜ ᴍᴄ: 58.0% ᴏᴠᴇʀ
  3. ɢᴏᴠᴇʀɴᴏʀ ᴏᴠᴇʀ: 60.1% (ʙʟᴇɴᴅ ᴡᴇɪɢʜᴛ: 0%)
  4. ᴏᴡɴᴇʀ (ᴘɪᴄᴋ): 53.4% ᴏᴠᴇʀ
  5. ᴅɪѕᴘʟᴀʏ ᴏᴠᴇʀ: 58.2% (ᴄᴏѕᴍᴇᴛɪᴄ ᴏɴʟʏ, ɴᴏᴛ ᴜѕᴇᴅ ꜰᴏʀ ᴘɪᴄᴋ)
    ᴍᴀʀᴋᴏᴠ ᴄʀᴏѕѕᴄʜᴇᴄᴋ: 57.5% ᴏᴠᴇʀ
    ꜰᴀɪʀ ʟɪɴᴇѕ - ᴍᴄ: 22.5 | ᴍᴀʀᴋᴏᴠ: 22.5 | ɢᴀᴘ: 1.1ᴘᴛѕ, 0.00ɢ
    ʜᴀʟꜰ-ʟɪɴᴇ 21.5 - ᴍᴄ: ᴜɴᴅᴇʀ 41.4% | ᴏᴠᴇʀ 58.6%
    ʜᴀʟꜰ-ʟɪɴᴇ 21.5 - ᴍᴀʀᴋᴏᴠ: ᴜɴᴅᴇʀ 42.5% | ᴏᴠᴇʀ 57.5%
    ᴛᴀɪʟ - ᴘ(>=30): 21.2% | ᴘ(>=31): 16.4% | ᴘ(>=35): 3.5%
    ʙᴜᴄᴋᴇᴛѕ: ʟᴇꜰᴛᴛᴀɪʟ(ʟ-6) 2.1% | ʟᴏᴄᴀʟᴍᴀѕѕ ʟᴏᴡ 14.7% ʜɪɢʜ 7.1%
    ɴᴇᴀʀ-ʟɪɴᴇ ᴍᴀѕѕ @21.5: 12.9% (ᴘ(21)+ᴘ(22)) | ʟᴏᴄᴀʟ 20-22: 19.9% | 19-23: 32.6%
    ᴀᴅᴊᴀᴄᴇɴᴛ ᴇˣᴀᴄᴛѕ: ᴘ(21ɢ) 5.6% | ᴘ(22ɢ) 7.3%
    ᴍᴀʀᴋᴏᴠ 3-ѕᴇᴛ ᴀᴅᴊ: 43.8% (ᴘᴇɴᴀʟᴛʏ 0.0%)
    ʜᴏᴏᴋ ᴍᴀѕѕ @21.5: 2ѕᴇᴛ 22.0% | 3ѕᴇᴛ 1.2% | ʙʟᴇɴᴅᴇᴅ 12.4% [ʜᴏᴏᴋ ꜰʀᴀɢɪʟᴇ] | ꜰʟᴏᴏʀ(21ɢ) 5.4% ᴠѕ ᴄᴇɪʟ(22ɢ) 7.1% | ɢʀᴀᴠɪᴛʏ 21.57ɢ | ɴᴜᴅɢᴇ ᴏᴠᴇʀ 1.4ᴘᴘ
    ʟᴍᴘ: ѕᴋᴇᴡ=-0.169 ᴅɪʀᴄʀᴇᴅɪᴛ=-15.97ᴘᴘ ᴜɴᴄᴘᴇɴ=56.3% ɴᴇᴀʀ=12.9% ᴄᴏᴍ=21.04 ᴇɴᴛ=3.254 ᴡ3=22.2%[18-20]

ѕɪᴍᴜʟᴀᴛɪᴏɴ (24000 ʀᴜɴѕ): ᴍᴇᴅɪᴀɴ 22.9ɢ, 59% ᴏᴠᴇʀ 21.5.
ᴍᴀᴛᴄʜ ѕʜᴀᴘᴇ (ᴍᴀʀᴋᴏᴠ ꜰᴀɪʀ 22.5ɢ, 2-ѕᴇᴛ ᴄʟᴜѕᴛᴇʀ 19ɢ (61% ᴏꜰ ᴘᴀᴛʜѕ), 3-ѕᴇᴛ ᴄʟᴜѕᴛᴇʀ 29ɢ (39% ᴏꜰ ᴘᴀᴛʜѕ)) — ѕʟɪɢʜᴛ ᴏᴠᴇʀ ʟᴇᴀɴ.
ᴡɪᴛʜɪɴ 2-ѕᴇᴛ ᴄʟᴜѕᴛᴇʀ: ±1σ ʀᴀɴɢᴇ: 17-22ɢ | ᴘ(ᴏᴠᴇʀ 21.5) ɪɴ ʟᴀɴᴇ: 18.0%
ᴀᴜᴅɪᴛ: ᴅɪʀᴍᴄ=ᴏᴠᴇʀ | ᴘѕɪᴅᴇᴍᴄ=56.2% | ᴄʟᴜѕᴛᴇʀᴅɪʀ=ᴜɴᴅᴇʀ | ᴄʜᴏѕᴇɴᴅɪʀ=ᴏᴠᴇʀ | ɪɴᴠᴀʀɪᴀɴᴛ=ᴏᴋ

📊 ᴜɴᴅᴇʀᴅᴏɢ ᴀѕѕᴇѕѕᴍᴇɴᴛ:
ɴᴏ ᴇᴅɢᴇ ᴏɴ ᴍɪɢᴜᴇʟ ᴅᴀᴍᴀѕ (27.8% ᴍᴏᴅᴇʟ | ɪᴍᴘʟɪᴇᴅ 36%).

Update my script then send it as a downloadable txt link

Again simple surface level fixes like change two thinks won’t actually do anything

What is crazy is Miguel won 2:0

Fix more then two thinks I said only fixing two things won’t do anything

Gedanke

bash -lc cp /mnt/data/Tennislocks2.0_CH_fix.txt /tmp/tl_fix.js && node --check /tmp/tl_fix.js

Thought for 1m 59s

Antwort

I updated the script and saved it here:

Download the updated txt

What I changed, CH-only:

  • Winner calibration honesty: in WinnerCalibration.calibrateP, weak-signal CH spots (COIN / MOD_FAV + WEAK / VERY_WEAK) now get extra shrink toward 50/50, without touching _ELO_POLY, _COND, _UPSET, or ATP/WTA/ITF behavior. That targets the exact pattern where CH favorites still looked too strong after calibration. (Tennislocks2.0.txt)
  • Winner market anchor fix for weak CH: your winner path already had CH-specific anchor constants, but weak CH spots still weren’t being pulled enough when the evidence was thin. I added a CH-only stronger market pull for weak-data COIN / MOD_FAV cases so noisy CH favorites do not keep too much conviction.
  • Totals decider-over dampening: the totals engine has an explicit 3-set + OVER reinforcement path. I kept it, but cut it in half on ambiguous CH shapes: hook-fragile / near-line / bimodal CH spots with only modest P3 elevation. That is the kind of path that can turn a marginal Over into a fake “good” Over.
  • Extra CH totals compression before classification: I added a CH-only ambiguous-line compression when the match is near the number, hook-fragile, or bimodal and the edge is still small. Then I added the final small-edge CH shrink you asked for. This does not add new PASS gates; it just makes weak CH totals probabilities more honest before the existing decision logic runs.

Why this was worth fixing beyond the two things you mentioned:

  • Your winner miss was not just “bad luck on CH.” The live file already calibrates winner probabilities, but weak CH favorites could still stay too far from 50/50 after calibration, which is exactly the failure mode in a Brunold-type spot.
  • Your totals miss was not just “small edge overstated.” The engine also has a specific OVER reinforcement from decider geometry, and in CH that can still be too aggressive when the line is fragile and the shape is bimodal/near-hook.

I also syntax-checked the modified file after patching.

I cannot honestly claim this makes CH “100% correct,” and one failed match is not enough to prove the exact best magnitude. But this is a real structural fix set, not just two cosmetic nudges.

Diesen Q&A teilen