Teer Quant: is my model better than random?

An 18-month build log. Five rebuilds. One breakthrough.

First, the game.

Teer is a 200-year-old archery lottery in Meghalaya, India. Each day, two rounds are played — R1 and R2. The result is a two-digit number, 00 to 99. That's 100 possible outcomes per round. Random chance gives you a 1% hit rate. The entire modelling problem is: can you do better than that?

My first model was worse than a coin flip.

After 18 months of walk-forward testing on version 6.0:

−1.70
Sharpe ratio(deeply unprofitable)
−1,200
units lost(net P&L)
4.5%
hit rate(random baseline = 5.0%)

AN EXPENSIVE RANDOM NUMBER GENERATOR

I was measuring the wrong things.

v6.0 used 6 features. 3 carried signal — the others just added noise.

0.04
Entity frequency
0.31
Head-to-head
0.02
Recent streak
0.01
Target area
0.41
Rest days
0.21
Fatigue

HALF THE FEATURES WERE DEAD WEIGHT

Fix #1 — surgery: delete what doesn't work.

Killed 3 dead features. Redistributed weight into the only three that actually predicted:

52%
Rest days(how long since the club last played)
38%
Head-to-head(what these two clubs do when they meet)
10%
Fatigue(penalty for clubs overbooked this week)

LESS IS MORE. NOISE BURNS CAPITAL.

Fix #2 — learn when not to play.

Some clubs are statistically unpredictable. I built a veto list and stopped betting them.

43%
of capital protected(by simply not betting on coin flips)

DON'T PLAY: Jaiaw (3.1%), Kynthuplang (3.6%), Rangbiria (6.7%), Malki (veto) DO PLAY: Laitumkhrah (16.7%), Senglang (10.7%), Combined 12 (9.9%), Laitkor (9.7%)

Fix #3 — don't pick a single number. Pick a neighborhood.

Old approach: top-5 standalone digits. New approach: top-4 nodes, each expanded ±1. Primary: 27 45 63 84 ±1 Neighbors: 26 28 44 46 62 64 83 37.5% of misses landed within ±2. Proof the signal was real — just not precise enough to spike.

Five iterations. Every number moved the right direction.

VersionSharpeHit rateVerdict

v6.0−1.704.5%disaster
v6.1−1.444.5%disaster
v6.2−0.615.8%progress
v6.4−0.518.3%edge

+3.3 POINTS ABOVE RANDOM. In a 100-digit game, that's a real edge.

2026 became the first profitable year.

+110
units(vs. −1,200 in year one)
94,400
live bankroll
6/14
rounds vetoed
3/8
within ±2

What it taught me about every model.

01

Measure against random.

If you can't beat a coin flip, your features are noise.

02

Know when not to predict.

A veto list beats a smarter algorithm.

03

Spread, don't spike.

Neighborhoods beat point predictions when signal is weak.