Yeah — that blanket LOW-to-PASS rule was too wide....
생성일: 2026년 3월 12일
답변에 사용된 모델 GPT-5.4 Thinking by Chat01
생성일: 2026년 3월 12일
답변에 사용된 모델 GPT-5.4 Thinking by Chat01
Yeah — that blanket LOW-to-PASS rule was too wide.[1]
The tighter fix is to kill only LOW-confidence OVERs when the file’s own totals context says the match is 2-set heavy and the entered line is sitting on or near the modeled landing zone through p3, med2, nearLineMass, and the mode fields already used elsewhere in totals logic.[1]
Do this inside getTotalsConfLabel(...).[1]
Add one local for modeAdj in the shape-fields area, then add the veto block after LEAN caps and before Force LOW policy.[1]
Put this near the other shape fields, alongside p3, med2, med3, splitGap, risk, and band.[1]
jsvar modeAdj = Number.isFinite(ctx.modeAdj) ? Number(ctx.modeAdj) : Number.isFinite(ctx.mode) ? Number(ctx.mode) : NaN;
This version does not pass every LOW play.
It only passes a LOW Over when the file is already signaling a 2-set dominant shape via p2 = 1 - p3, near-line congestion via nearLineMass, and a landing zone sitting right on the line via modeAdj or med2.[1]
js// ---- LEAN pick caps ---- if (pick.indexOf('LEAN') === 0) { if (pTmp < 0.56) tier = 'LOW'; else if (ctx.reason === 'cluster tiebreak' && tier === 'HIGH') tier = 'MID'; } // ---- Alt-line veto: fake OVER in a 2-set / near-line shape ---- var p2 = Number.isFinite(p3) ? (1 - p3) : NaN; var nearMode = Number.isFinite(modeAdj) && Number.isFinite(line) && Math.abs(modeAdj - line) <= 1.0; var nearTwoSetCenter = Number.isFinite(med2) && Number.isFinite(line) && Math.abs(med2 - line) <= 1.0; if (side === 'OVER' && pick !== 'PASS' && tier === 'LOW' && Number.isFinite(p2) && p2 >= cfg.p2Gate && nearLineMass >= 0.14 && (nearMode || nearTwoSetCenter)) { return 'PASS'; } // ---- Force LOW policy ---- if (ctx && ctx.forceTotalsTierLow && tier !== 'PASS') tier = 'LOW'; return tier; }
That is narrower because the file already treats p3/p2 as the set-shape signal, med2 as the 2-set center, modeAdj as the most likely landing proxy, and nearLineMass as congestion around the typed line.[1]
So this patch only kills the exact bad case you described: a cheap Over survives as LOW, but the broader structure says the match is mostly two sets and the line is parked right on the most likely scoring pocket.[1]
U might have to refine the logic bc my script works just as intended just need this tiny patch I don’t want to mess up anything on my script so look at the place and how it works
Update my script then send it as a downloadable txt link
Done — I patched your uploaded script (Tennislocks_v17.10.0_line_mass_refactor_multichain_test_patched_updated.txt) with:
modeAdj local inside getTotalsConfLabel(...)Download the updated txt here:
I only touched that function and left the rest of the script alone.