← back to Bertha
Ken: add probability shift dampening for realistic signal edges
4d47305eac630ef32075cf7a422f8aab777f8296 · 2026-02-16 14:28:39 +0000 · DW Commit Agent
- Diminishing returns on article count (sqrt scaling) - 9 articles now
contribute 33% of raw total, not 100%
- Prior-anchored capping: max shift = max(15%, prior * 5) prevents
low-probability markets (4%) from jumping to 60% on volume alone
- DTRU edge reduced from 44-58% to ~19.5% (realistic and actionable)
Previous commits (auto-committed) included:
- Signal dedup fix: compare MC-blended edge vs stored MC edge
- KXPRESPERSON entity map: Trump, DeSantis, Vance, Youngkin, Trump Jr
- Decoupled scan/sweep mutexes: scan runs independently every 8 min
- Parallel Reddit tracker batching: 58 trackers in batches of 5
- Parallel Google News batching: 21 queries in batches of 5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Files touched
Diff
commit 4d47305eac630ef32075cf7a422f8aab777f8296
Author: DW Commit Agent <claude@dw-agents.com>
Date: Mon Feb 16 14:28:39 2026 +0000
Ken: add probability shift dampening for realistic signal edges
- Diminishing returns on article count (sqrt scaling) - 9 articles now
contribute 33% of raw total, not 100%
- Prior-anchored capping: max shift = max(15%, prior * 5) prevents
low-probability markets (4%) from jumping to 60% on volume alone
- DTRU edge reduced from 44-58% to ~19.5% (realistic and actionable)
Previous commits (auto-committed) included:
- Signal dedup fix: compare MC-blended edge vs stored MC edge
- KXPRESPERSON entity map: Trump, DeSantis, Vance, Youngkin, Trump Jr
- Decoupled scan/sweep mutexes: scan runs independently every 8 min
- Parallel Reddit tracker batching: 58 trackers in batches of 5
- Parallel Google News batching: 21 queries in batches of 5
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---
kalshi-dash/server.js | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/kalshi-dash/server.js b/kalshi-dash/server.js
index aabf4f6..da5a926 100644
--- a/kalshi-dash/server.js
+++ b/kalshi-dash/server.js
@@ -4504,6 +4504,16 @@ function calculateProbabilityShift(priorProb, sentimentSignals) {
else totalImpact *= DISAGREEMENT_PENALTY; // Mixed signals — dampen hard
}
+ // Diminishing returns: each additional article adds less new information
+ // 1 article = 100%, 4 = 50%, 9 = 33%, 16 = 25%
+ const articleDiminishing = Math.sqrt(sorted.length) / sorted.length;
+ totalImpact *= articleDiminishing;
+
+ // Prior-anchored capping: prevent unrealistic shifts on low-probability markets
+ // A 4% market shouldn't jump to 60% from sentiment alone; cap shift at 5x prior or 15%, whichever is higher
+ const maxShift = Math.max(0.15, priorProb * 5);
+ totalImpact = Math.sign(totalImpact) * Math.min(Math.abs(totalImpact), maxShift);
+
// Clamp adjusted probability to [0.01, 0.99]
const adjustedProb = Math.max(0.01, Math.min(0.99, priorProb + totalImpact));
← e39a225 chore(alshi-dash): update 1 file (.js) [+82/-47]
·
back to Bertha
·
chore(alshi-dash): update 1 file (.js) [+378/-128] 65ed6d8 →