XXMiner commited on
Commit
519d6ed
·
verified ·
1 Parent(s): a0a895e

v90: loss mechanism pinned (100% of lost terms only in call bodies); two wrong conclusions corrected; held-out gain +0.259 char, a tenth of the oracle; 419 tests

Browse files
base_rate_test.json ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "quartiles": [
3
+ {
4
+ "quartile": 1,
5
+ "n": 37,
6
+ "losers": 0,
7
+ "loser_rate": 0.0,
8
+ "mean_uniq_at_risk": 7.9
9
+ },
10
+ {
11
+ "quartile": 2,
12
+ "n": 37,
13
+ "losers": 8,
14
+ "loser_rate": 0.2162,
15
+ "mean_uniq_at_risk": 32.7
16
+ },
17
+ {
18
+ "quartile": 3,
19
+ "n": 37,
20
+ "losers": 9,
21
+ "loser_rate": 0.2432,
22
+ "mean_uniq_at_risk": 82.5
23
+ },
24
+ {
25
+ "quartile": 4,
26
+ "n": 39,
27
+ "losers": 4,
28
+ "loser_rate": 0.1026,
29
+ "mean_uniq_at_risk": 239.8
30
+ }
31
+ ],
32
+ "rate_spread": 0.2432,
33
+ "flat_prediction_holds": false,
34
+ "corr_loss_vs_atrisk_among_losers": -0.2078
35
+ }
base_rate_test.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json, statistics, random
2
+ from pathlib import Path
3
+ R=Path("/var/lib/octave/sn114/repo")
4
+ feats={f["cid"]:f for f in json.load(open(R/"routable_feature.json"))}
5
+ per=json.load(open(R/"per_challenge_cap_effect.json"))
6
+ # PREDICTION from the base-rate argument: if consequence is question-driven and independent
7
+ # of at-risk volume, then P(loser) should be roughly FLAT across at-risk quartiles.
8
+ xs=sorted(per, key=lambda p: feats[p['cid']]['uniq_at_risk'])
9
+ n=len(xs); q=n//4
10
+ out={'quartiles':[]}
11
+ for i in range(4):
12
+ grp=xs[i*q:(i+1)*q] if i<3 else xs[3*q:]
13
+ losers=sum(1 for p in grp if p['loss']>1e-9)
14
+ out['quartiles'].append({'quartile':i+1,'n':len(grp),'losers':losers,
15
+ 'loser_rate':round(losers/len(grp),4),
16
+ 'mean_uniq_at_risk':round(statistics.fmean([feats[p['cid']]['uniq_at_risk'] for p in grp]),1)})
17
+ rates=[x['loser_rate'] for x in out['quartiles']]
18
+ out['rate_spread']=round(max(rates)-min(rates),4)
19
+ out['flat_prediction_holds']=bool(out['rate_spread']<0.20)
20
+ # also: is loss magnitude related to at-risk volume among losers only?
21
+ L=[p for p in per if p['loss']>1e-9]
22
+ def corr(a,b):
23
+ ma,mb=statistics.fmean(a),statistics.fmean(b)
24
+ num=sum((x-ma)*(y-mb) for x,y in zip(a,b))
25
+ da=sum((x-ma)**2 for x in a)**0.5; db=sum((y-mb)**2 for y in b)**0.5
26
+ return num/(da*db) if da and db else 0.0
27
+ out['corr_loss_vs_atrisk_among_losers']=round(corr([p['loss'] for p in L],[feats[p['cid']]['uniq_at_risk'] for p in L]),4)
28
+ json.dump(out, open(R/"base_rate_test.json","w"), indent=2)
29
+ for x in out['quartiles']: print(' Q%d n=%-4d mean at-risk %-7s losers %-3d rate %.4f'%(x['quartile'],x['n'],x['mean_uniq_at_risk'],x['losers'],x['loser_rate']))
30
+ print()
31
+ print(' loser-rate spread across quartiles: %.4f flat prediction holds: %s'%(out['rate_spread'],out['flat_prediction_holds']))
32
+ print(' corr(loss magnitude, at-risk volume) among the 21 losers: %+.4f'%out['corr_loss_vs_atrisk_among_losers'])
q1_attack_policy.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "in_sample": [
3
+ {
4
+ "threshold": 10,
5
+ "attacked": 25,
6
+ "losers_attacked": 0,
7
+ "term": 0.936,
8
+ "char_pct": 78.228
9
+ },
10
+ {
11
+ "threshold": 15,
12
+ "attacked": 41,
13
+ "losers_attacked": 0,
14
+ "term": 0.936,
15
+ "char_pct": 78.322
16
+ },
17
+ {
18
+ "threshold": 20,
19
+ "attacked": 44,
20
+ "losers_attacked": 0,
21
+ "term": 0.936,
22
+ "char_pct": 78.34
23
+ },
24
+ {
25
+ "threshold": 25,
26
+ "attacked": 49,
27
+ "losers_attacked": 1,
28
+ "term": 0.936,
29
+ "char_pct": 78.378
30
+ },
31
+ {
32
+ "threshold": 30,
33
+ "attacked": 52,
34
+ "losers_attacked": 3,
35
+ "term": 0.9357,
36
+ "char_pct": 78.411
37
+ },
38
+ {
39
+ "threshold": 40,
40
+ "attacked": 62,
41
+ "losers_attacked": 5,
42
+ "term": 0.9355,
43
+ "char_pct": 78.564
44
+ }
45
+ ],
46
+ "heldout": {
47
+ "trials": 200,
48
+ "mean_threshold": 24.5,
49
+ "mean_attacked_of_75": 24.5,
50
+ "mean_losers_attacked": 1.035,
51
+ "trials_with_zero_losers_attacked": 95,
52
+ "mean_term": 0.9358,
53
+ "mean_base_term": 0.936,
54
+ "mean_char": 78.396,
55
+ "mean_base_char": 78.137
56
+ }
57
+ }
q1_attack_policy.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json, statistics, random
2
+ from pathlib import Path
3
+ R=Path("/var/lib/octave/sn114/repo")
4
+ feats={f["cid"]:f for f in json.load(open(R/"routable_feature.json"))}
5
+ per=json.load(open(R/"per_challenge_cap_effect.json"))
6
+ tot_raw=sum(p['raw'] for p in per)
7
+ def policy(attack_set):
8
+ ret=[]; comp=0
9
+ for p in per:
10
+ if p['cid'] in attack_set: ret.append(p['ret20']); comp+=p['len20']
11
+ else: ret.append(p['ret60']); comp+=p['len60']
12
+ return round(statistics.fmean(ret),4), round(100*(1-comp/tot_raw),3), len(attack_set)
13
+ vals=sorted(feats[p['cid']]['uniq_at_risk'] for p in per)
14
+ res=[]
15
+ # in-sample thresholds
16
+ for thr in (10,15,20,25,30,40):
17
+ atk={p['cid'] for p in per if feats[p['cid']]['uniq_at_risk']<thr}
18
+ t_,c_,n_=policy(atk)
19
+ lost=sum(1 for p in per if p['cid'] in atk and p['loss']>1e-9)
20
+ res.append({'threshold':thr,'attacked':n_,'losers_attacked':lost,'term':t_,'char_pct':c_})
21
+ # HELD-OUT: pick threshold on half, evaluate on the other half, 200 splits
22
+ rnd=random.Random(20260817)
23
+ cids=[p['cid'] for p in per]
24
+ byc={p['cid']:p for p in per}
25
+ holds=[]
26
+ for _ in range(200):
27
+ sh=cids[:]; rnd.shuffle(sh)
28
+ tr=set(sh[:75]); te=set(sh[75:])
29
+ # choose the largest threshold with ZERO losers in the training half
30
+ best=0
31
+ for thr in range(1,300,1):
32
+ atk={c for c in tr if feats[c]['uniq_at_risk']<thr}
33
+ if any(byc[c]['loss']>1e-9 for c in atk): break
34
+ best=thr
35
+ atk_te={c for c in te if feats[c]['uniq_at_risk']<best}
36
+ bad=sum(1 for c in atk_te if byc[c]['loss']>1e-9)
37
+ ret=[]; comp=0; raw=0
38
+ for c in te:
39
+ p=byc[c]; raw+=p['raw']
40
+ if c in atk_te: ret.append(p['ret20']); comp+=p['len20']
41
+ else: ret.append(p['ret60']); comp+=p['len60']
42
+ base=[byc[c]['ret60'] for c in te]; bcomp=sum(byc[c]['len60'] for c in te)
43
+ holds.append({'thr':best,'attacked':len(atk_te),'bad':bad,
44
+ 'term':statistics.fmean(ret),'base_term':statistics.fmean(base),
45
+ 'char':100*(1-comp/raw),'base_char':100*(1-bcomp/raw)})
46
+ out={'in_sample':res,'heldout':{
47
+ 'trials':200,
48
+ 'mean_threshold':round(statistics.fmean([h['thr'] for h in holds]),1),
49
+ 'mean_attacked_of_75':round(statistics.fmean([h['attacked'] for h in holds]),1),
50
+ 'mean_losers_attacked':round(statistics.fmean([h['bad'] for h in holds]),3),
51
+ 'trials_with_zero_losers_attacked':sum(1 for h in holds if h['bad']==0),
52
+ 'mean_term':round(statistics.fmean([h['term'] for h in holds]),4),
53
+ 'mean_base_term':round(statistics.fmean([h['base_term'] for h in holds]),4),
54
+ 'mean_char':round(statistics.fmean([h['char'] for h in holds]),3),
55
+ 'mean_base_char':round(statistics.fmean([h['base_char'] for h in holds]),3)}}
56
+ json.dump(out, open(R/"q1_attack_policy.json","w"), indent=2)
57
+ print('IN-SAMPLE:')
58
+ for x in res: print(' thr %-4d attacked %-4d losers hit %-3d term %.4f char %.3f%%'%(x['threshold'],x['attacked'],x['losers_attacked'],x['term'],x['char_pct']))
59
+ h=out['heldout']
60
+ print()
61
+ print('HELD-OUT (200 splits, threshold chosen on 75, evaluated on 75):')
62
+ print(' mean threshold %.1f attacked %.1f of 75 losers attacked %.3f clean trials %d/200'%(
63
+ h['mean_threshold'],h['mean_attacked_of_75'],h['mean_losers_attacked'],h['trials_with_zero_losers_attacked']))
64
+ print(' term %.4f vs baseline %.4f (%+.4f)'%(h['mean_term'],h['mean_base_term'],h['mean_term']-h['mean_base_term']))
65
+ print(' char %.3f%% vs baseline %.3f%% (%+.3f)'%(h['mean_char'],h['mean_base_char'],h['mean_char']-h['mean_base_char']))
routable_feature.json ADDED
@@ -0,0 +1,902 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "cid": "1533",
4
+ "is_loser": false,
5
+ "uniq_at_risk": 62,
6
+ "bodies_at_risk": 14
7
+ },
8
+ {
9
+ "cid": "1534",
10
+ "is_loser": false,
11
+ "uniq_at_risk": 27,
12
+ "bodies_at_risk": 6
13
+ },
14
+ {
15
+ "cid": "1535",
16
+ "is_loser": false,
17
+ "uniq_at_risk": 102,
18
+ "bodies_at_risk": 21
19
+ },
20
+ {
21
+ "cid": "1536",
22
+ "is_loser": false,
23
+ "uniq_at_risk": 14,
24
+ "bodies_at_risk": 3
25
+ },
26
+ {
27
+ "cid": "1537",
28
+ "is_loser": false,
29
+ "uniq_at_risk": 71,
30
+ "bodies_at_risk": 16
31
+ },
32
+ {
33
+ "cid": "1538",
34
+ "is_loser": false,
35
+ "uniq_at_risk": 43,
36
+ "bodies_at_risk": 13
37
+ },
38
+ {
39
+ "cid": "1539",
40
+ "is_loser": false,
41
+ "uniq_at_risk": 166,
42
+ "bodies_at_risk": 32
43
+ },
44
+ {
45
+ "cid": "1540",
46
+ "is_loser": false,
47
+ "uniq_at_risk": 12,
48
+ "bodies_at_risk": 5
49
+ },
50
+ {
51
+ "cid": "1541",
52
+ "is_loser": true,
53
+ "uniq_at_risk": 168,
54
+ "bodies_at_risk": 33
55
+ },
56
+ {
57
+ "cid": "1542",
58
+ "is_loser": false,
59
+ "uniq_at_risk": 16,
60
+ "bodies_at_risk": 4
61
+ },
62
+ {
63
+ "cid": "1543",
64
+ "is_loser": true,
65
+ "uniq_at_risk": 69,
66
+ "bodies_at_risk": 7
67
+ },
68
+ {
69
+ "cid": "1544",
70
+ "is_loser": false,
71
+ "uniq_at_risk": 73,
72
+ "bodies_at_risk": 13
73
+ },
74
+ {
75
+ "cid": "1545",
76
+ "is_loser": false,
77
+ "uniq_at_risk": 185,
78
+ "bodies_at_risk": 25
79
+ },
80
+ {
81
+ "cid": "1546",
82
+ "is_loser": false,
83
+ "uniq_at_risk": 64,
84
+ "bodies_at_risk": 29
85
+ },
86
+ {
87
+ "cid": "1547",
88
+ "is_loser": false,
89
+ "uniq_at_risk": 119,
90
+ "bodies_at_risk": 26
91
+ },
92
+ {
93
+ "cid": "1548",
94
+ "is_loser": false,
95
+ "uniq_at_risk": 13,
96
+ "bodies_at_risk": 6
97
+ },
98
+ {
99
+ "cid": "1549",
100
+ "is_loser": false,
101
+ "uniq_at_risk": 14,
102
+ "bodies_at_risk": 5
103
+ },
104
+ {
105
+ "cid": "1550",
106
+ "is_loser": false,
107
+ "uniq_at_risk": 8,
108
+ "bodies_at_risk": 2
109
+ },
110
+ {
111
+ "cid": "1551",
112
+ "is_loser": false,
113
+ "uniq_at_risk": 1,
114
+ "bodies_at_risk": 1
115
+ },
116
+ {
117
+ "cid": "1552",
118
+ "is_loser": true,
119
+ "uniq_at_risk": 20,
120
+ "bodies_at_risk": 6
121
+ },
122
+ {
123
+ "cid": "1553",
124
+ "is_loser": false,
125
+ "uniq_at_risk": 10,
126
+ "bodies_at_risk": 2
127
+ },
128
+ {
129
+ "cid": "1554",
130
+ "is_loser": false,
131
+ "uniq_at_risk": 200,
132
+ "bodies_at_risk": 51
133
+ },
134
+ {
135
+ "cid": "1555",
136
+ "is_loser": false,
137
+ "uniq_at_risk": 5,
138
+ "bodies_at_risk": 2
139
+ },
140
+ {
141
+ "cid": "1556",
142
+ "is_loser": false,
143
+ "uniq_at_risk": 32,
144
+ "bodies_at_risk": 8
145
+ },
146
+ {
147
+ "cid": "1557",
148
+ "is_loser": true,
149
+ "uniq_at_risk": 134,
150
+ "bodies_at_risk": 15
151
+ },
152
+ {
153
+ "cid": "1558",
154
+ "is_loser": false,
155
+ "uniq_at_risk": 14,
156
+ "bodies_at_risk": 9
157
+ },
158
+ {
159
+ "cid": "1559",
160
+ "is_loser": false,
161
+ "uniq_at_risk": 80,
162
+ "bodies_at_risk": 18
163
+ },
164
+ {
165
+ "cid": "1560",
166
+ "is_loser": false,
167
+ "uniq_at_risk": 173,
168
+ "bodies_at_risk": 43
169
+ },
170
+ {
171
+ "cid": "1561",
172
+ "is_loser": false,
173
+ "uniq_at_risk": 3,
174
+ "bodies_at_risk": 2
175
+ },
176
+ {
177
+ "cid": "1562",
178
+ "is_loser": false,
179
+ "uniq_at_risk": 331,
180
+ "bodies_at_risk": 48
181
+ },
182
+ {
183
+ "cid": "1563",
184
+ "is_loser": false,
185
+ "uniq_at_risk": 125,
186
+ "bodies_at_risk": 11
187
+ },
188
+ {
189
+ "cid": "1564",
190
+ "is_loser": false,
191
+ "uniq_at_risk": 179,
192
+ "bodies_at_risk": 30
193
+ },
194
+ {
195
+ "cid": "1565",
196
+ "is_loser": true,
197
+ "uniq_at_risk": 96,
198
+ "bodies_at_risk": 22
199
+ },
200
+ {
201
+ "cid": "1566",
202
+ "is_loser": false,
203
+ "uniq_at_risk": 48,
204
+ "bodies_at_risk": 5
205
+ },
206
+ {
207
+ "cid": "1567",
208
+ "is_loser": false,
209
+ "uniq_at_risk": 79,
210
+ "bodies_at_risk": 22
211
+ },
212
+ {
213
+ "cid": "1568",
214
+ "is_loser": false,
215
+ "uniq_at_risk": 96,
216
+ "bodies_at_risk": 23
217
+ },
218
+ {
219
+ "cid": "1569",
220
+ "is_loser": false,
221
+ "uniq_at_risk": 7,
222
+ "bodies_at_risk": 4
223
+ },
224
+ {
225
+ "cid": "1570",
226
+ "is_loser": false,
227
+ "uniq_at_risk": 144,
228
+ "bodies_at_risk": 31
229
+ },
230
+ {
231
+ "cid": "1571",
232
+ "is_loser": false,
233
+ "uniq_at_risk": 34,
234
+ "bodies_at_risk": 12
235
+ },
236
+ {
237
+ "cid": "1572",
238
+ "is_loser": true,
239
+ "uniq_at_risk": 33,
240
+ "bodies_at_risk": 18
241
+ },
242
+ {
243
+ "cid": "1573",
244
+ "is_loser": false,
245
+ "uniq_at_risk": 51,
246
+ "bodies_at_risk": 20
247
+ },
248
+ {
249
+ "cid": "1574",
250
+ "is_loser": false,
251
+ "uniq_at_risk": 73,
252
+ "bodies_at_risk": 18
253
+ },
254
+ {
255
+ "cid": "1575",
256
+ "is_loser": false,
257
+ "uniq_at_risk": 209,
258
+ "bodies_at_risk": 26
259
+ },
260
+ {
261
+ "cid": "1576",
262
+ "is_loser": false,
263
+ "uniq_at_risk": 2,
264
+ "bodies_at_risk": 1
265
+ },
266
+ {
267
+ "cid": "1577",
268
+ "is_loser": false,
269
+ "uniq_at_risk": 21,
270
+ "bodies_at_risk": 11
271
+ },
272
+ {
273
+ "cid": "1578",
274
+ "is_loser": false,
275
+ "uniq_at_risk": 715,
276
+ "bodies_at_risk": 123
277
+ },
278
+ {
279
+ "cid": "1579",
280
+ "is_loser": false,
281
+ "uniq_at_risk": 11,
282
+ "bodies_at_risk": 5
283
+ },
284
+ {
285
+ "cid": "1580",
286
+ "is_loser": true,
287
+ "uniq_at_risk": 40,
288
+ "bodies_at_risk": 14
289
+ },
290
+ {
291
+ "cid": "1581",
292
+ "is_loser": false,
293
+ "uniq_at_risk": 81,
294
+ "bodies_at_risk": 15
295
+ },
296
+ {
297
+ "cid": "1582",
298
+ "is_loser": false,
299
+ "uniq_at_risk": 94,
300
+ "bodies_at_risk": 23
301
+ },
302
+ {
303
+ "cid": "1583",
304
+ "is_loser": false,
305
+ "uniq_at_risk": 13,
306
+ "bodies_at_risk": 8
307
+ },
308
+ {
309
+ "cid": "1584",
310
+ "is_loser": false,
311
+ "uniq_at_risk": 4,
312
+ "bodies_at_risk": 2
313
+ },
314
+ {
315
+ "cid": "1585",
316
+ "is_loser": false,
317
+ "uniq_at_risk": 9,
318
+ "bodies_at_risk": 3
319
+ },
320
+ {
321
+ "cid": "1586",
322
+ "is_loser": false,
323
+ "uniq_at_risk": 170,
324
+ "bodies_at_risk": 26
325
+ },
326
+ {
327
+ "cid": "1587",
328
+ "is_loser": true,
329
+ "uniq_at_risk": 53,
330
+ "bodies_at_risk": 11
331
+ },
332
+ {
333
+ "cid": "1588",
334
+ "is_loser": false,
335
+ "uniq_at_risk": 23,
336
+ "bodies_at_risk": 4
337
+ },
338
+ {
339
+ "cid": "1589",
340
+ "is_loser": false,
341
+ "uniq_at_risk": 3,
342
+ "bodies_at_risk": 2
343
+ },
344
+ {
345
+ "cid": "1590",
346
+ "is_loser": false,
347
+ "uniq_at_risk": 163,
348
+ "bodies_at_risk": 22
349
+ },
350
+ {
351
+ "cid": "1591",
352
+ "is_loser": false,
353
+ "uniq_at_risk": 339,
354
+ "bodies_at_risk": 33
355
+ },
356
+ {
357
+ "cid": "1592",
358
+ "is_loser": false,
359
+ "uniq_at_risk": 109,
360
+ "bodies_at_risk": 22
361
+ },
362
+ {
363
+ "cid": "1593",
364
+ "is_loser": true,
365
+ "uniq_at_risk": 93,
366
+ "bodies_at_risk": 11
367
+ },
368
+ {
369
+ "cid": "1594",
370
+ "is_loser": false,
371
+ "uniq_at_risk": 51,
372
+ "bodies_at_risk": 21
373
+ },
374
+ {
375
+ "cid": "1595",
376
+ "is_loser": false,
377
+ "uniq_at_risk": 6,
378
+ "bodies_at_risk": 3
379
+ },
380
+ {
381
+ "cid": "1596",
382
+ "is_loser": false,
383
+ "uniq_at_risk": 238,
384
+ "bodies_at_risk": 41
385
+ },
386
+ {
387
+ "cid": "1597",
388
+ "is_loser": false,
389
+ "uniq_at_risk": 14,
390
+ "bodies_at_risk": 4
391
+ },
392
+ {
393
+ "cid": "1598",
394
+ "is_loser": false,
395
+ "uniq_at_risk": 13,
396
+ "bodies_at_risk": 7
397
+ },
398
+ {
399
+ "cid": "1599",
400
+ "is_loser": false,
401
+ "uniq_at_risk": 10,
402
+ "bodies_at_risk": 5
403
+ },
404
+ {
405
+ "cid": "1600",
406
+ "is_loser": false,
407
+ "uniq_at_risk": 7,
408
+ "bodies_at_risk": 3
409
+ },
410
+ {
411
+ "cid": "1601",
412
+ "is_loser": true,
413
+ "uniq_at_risk": 113,
414
+ "bodies_at_risk": 15
415
+ },
416
+ {
417
+ "cid": "1602",
418
+ "is_loser": false,
419
+ "uniq_at_risk": 239,
420
+ "bodies_at_risk": 24
421
+ },
422
+ {
423
+ "cid": "1603",
424
+ "is_loser": false,
425
+ "uniq_at_risk": 107,
426
+ "bodies_at_risk": 18
427
+ },
428
+ {
429
+ "cid": "1604",
430
+ "is_loser": true,
431
+ "uniq_at_risk": 129,
432
+ "bodies_at_risk": 18
433
+ },
434
+ {
435
+ "cid": "1605",
436
+ "is_loser": false,
437
+ "uniq_at_risk": 65,
438
+ "bodies_at_risk": 13
439
+ },
440
+ {
441
+ "cid": "1606",
442
+ "is_loser": false,
443
+ "uniq_at_risk": 12,
444
+ "bodies_at_risk": 4
445
+ },
446
+ {
447
+ "cid": "1607",
448
+ "is_loser": false,
449
+ "uniq_at_risk": 75,
450
+ "bodies_at_risk": 16
451
+ },
452
+ {
453
+ "cid": "1608",
454
+ "is_loser": false,
455
+ "uniq_at_risk": 358,
456
+ "bodies_at_risk": 26
457
+ },
458
+ {
459
+ "cid": "1609",
460
+ "is_loser": false,
461
+ "uniq_at_risk": 106,
462
+ "bodies_at_risk": 29
463
+ },
464
+ {
465
+ "cid": "1610",
466
+ "is_loser": false,
467
+ "uniq_at_risk": 508,
468
+ "bodies_at_risk": 69
469
+ },
470
+ {
471
+ "cid": "1611",
472
+ "is_loser": true,
473
+ "uniq_at_risk": 78,
474
+ "bodies_at_risk": 12
475
+ },
476
+ {
477
+ "cid": "1612",
478
+ "is_loser": false,
479
+ "uniq_at_risk": 8,
480
+ "bodies_at_risk": 2
481
+ },
482
+ {
483
+ "cid": "1613",
484
+ "is_loser": false,
485
+ "uniq_at_risk": 73,
486
+ "bodies_at_risk": 23
487
+ },
488
+ {
489
+ "cid": "1614",
490
+ "is_loser": false,
491
+ "uniq_at_risk": 77,
492
+ "bodies_at_risk": 16
493
+ },
494
+ {
495
+ "cid": "1615",
496
+ "is_loser": false,
497
+ "uniq_at_risk": 189,
498
+ "bodies_at_risk": 18
499
+ },
500
+ {
501
+ "cid": "1616",
502
+ "is_loser": false,
503
+ "uniq_at_risk": 7,
504
+ "bodies_at_risk": 3
505
+ },
506
+ {
507
+ "cid": "1617",
508
+ "is_loser": false,
509
+ "uniq_at_risk": 44,
510
+ "bodies_at_risk": 10
511
+ },
512
+ {
513
+ "cid": "1618",
514
+ "is_loser": false,
515
+ "uniq_at_risk": 110,
516
+ "bodies_at_risk": 40
517
+ },
518
+ {
519
+ "cid": "1619",
520
+ "is_loser": false,
521
+ "uniq_at_risk": 7,
522
+ "bodies_at_risk": 4
523
+ },
524
+ {
525
+ "cid": "1620",
526
+ "is_loser": false,
527
+ "uniq_at_risk": 113,
528
+ "bodies_at_risk": 24
529
+ },
530
+ {
531
+ "cid": "1621",
532
+ "is_loser": false,
533
+ "uniq_at_risk": 329,
534
+ "bodies_at_risk": 68
535
+ },
536
+ {
537
+ "cid": "1622",
538
+ "is_loser": false,
539
+ "uniq_at_risk": 66,
540
+ "bodies_at_risk": 12
541
+ },
542
+ {
543
+ "cid": "1623",
544
+ "is_loser": true,
545
+ "uniq_at_risk": 77,
546
+ "bodies_at_risk": 12
547
+ },
548
+ {
549
+ "cid": "1624",
550
+ "is_loser": false,
551
+ "uniq_at_risk": 30,
552
+ "bodies_at_risk": 10
553
+ },
554
+ {
555
+ "cid": "1625",
556
+ "is_loser": false,
557
+ "uniq_at_risk": 61,
558
+ "bodies_at_risk": 13
559
+ },
560
+ {
561
+ "cid": "1626",
562
+ "is_loser": false,
563
+ "uniq_at_risk": 362,
564
+ "bodies_at_risk": 105
565
+ },
566
+ {
567
+ "cid": "1627",
568
+ "is_loser": false,
569
+ "uniq_at_risk": 67,
570
+ "bodies_at_risk": 21
571
+ },
572
+ {
573
+ "cid": "1628",
574
+ "is_loser": false,
575
+ "uniq_at_risk": 242,
576
+ "bodies_at_risk": 36
577
+ },
578
+ {
579
+ "cid": "1629",
580
+ "is_loser": true,
581
+ "uniq_at_risk": 30,
582
+ "bodies_at_risk": 16
583
+ },
584
+ {
585
+ "cid": "1630",
586
+ "is_loser": false,
587
+ "uniq_at_risk": 13,
588
+ "bodies_at_risk": 5
589
+ },
590
+ {
591
+ "cid": "1631",
592
+ "is_loser": false,
593
+ "uniq_at_risk": 24,
594
+ "bodies_at_risk": 7
595
+ },
596
+ {
597
+ "cid": "1632",
598
+ "is_loser": false,
599
+ "uniq_at_risk": 143,
600
+ "bodies_at_risk": 16
601
+ },
602
+ {
603
+ "cid": "1633",
604
+ "is_loser": true,
605
+ "uniq_at_risk": 58,
606
+ "bodies_at_risk": 8
607
+ },
608
+ {
609
+ "cid": "1634",
610
+ "is_loser": false,
611
+ "uniq_at_risk": 7,
612
+ "bodies_at_risk": 3
613
+ },
614
+ {
615
+ "cid": "1635",
616
+ "is_loser": false,
617
+ "uniq_at_risk": 16,
618
+ "bodies_at_risk": 7
619
+ },
620
+ {
621
+ "cid": "1636",
622
+ "is_loser": false,
623
+ "uniq_at_risk": 3,
624
+ "bodies_at_risk": 2
625
+ },
626
+ {
627
+ "cid": "1637",
628
+ "is_loser": false,
629
+ "uniq_at_risk": 15,
630
+ "bodies_at_risk": 5
631
+ },
632
+ {
633
+ "cid": "1638",
634
+ "is_loser": false,
635
+ "uniq_at_risk": 193,
636
+ "bodies_at_risk": 35
637
+ },
638
+ {
639
+ "cid": "1639",
640
+ "is_loser": true,
641
+ "uniq_at_risk": 111,
642
+ "bodies_at_risk": 13
643
+ },
644
+ {
645
+ "cid": "1640",
646
+ "is_loser": false,
647
+ "uniq_at_risk": 9,
648
+ "bodies_at_risk": 6
649
+ },
650
+ {
651
+ "cid": "1641",
652
+ "is_loser": true,
653
+ "uniq_at_risk": 25,
654
+ "bodies_at_risk": 8
655
+ },
656
+ {
657
+ "cid": "1642",
658
+ "is_loser": true,
659
+ "uniq_at_risk": 71,
660
+ "bodies_at_risk": 25
661
+ },
662
+ {
663
+ "cid": "1643",
664
+ "is_loser": false,
665
+ "uniq_at_risk": 128,
666
+ "bodies_at_risk": 34
667
+ },
668
+ {
669
+ "cid": "1644",
670
+ "is_loser": false,
671
+ "uniq_at_risk": 178,
672
+ "bodies_at_risk": 25
673
+ },
674
+ {
675
+ "cid": "1645",
676
+ "is_loser": false,
677
+ "uniq_at_risk": 31,
678
+ "bodies_at_risk": 17
679
+ },
680
+ {
681
+ "cid": "1646",
682
+ "is_loser": true,
683
+ "uniq_at_risk": 95,
684
+ "bodies_at_risk": 23
685
+ },
686
+ {
687
+ "cid": "1647",
688
+ "is_loser": false,
689
+ "uniq_at_risk": 35,
690
+ "bodies_at_risk": 15
691
+ },
692
+ {
693
+ "cid": "1648",
694
+ "is_loser": false,
695
+ "uniq_at_risk": 339,
696
+ "bodies_at_risk": 102
697
+ },
698
+ {
699
+ "cid": "1649",
700
+ "is_loser": false,
701
+ "uniq_at_risk": 5,
702
+ "bodies_at_risk": 2
703
+ },
704
+ {
705
+ "cid": "1650",
706
+ "is_loser": false,
707
+ "uniq_at_risk": 368,
708
+ "bodies_at_risk": 51
709
+ },
710
+ {
711
+ "cid": "1651",
712
+ "is_loser": false,
713
+ "uniq_at_risk": 156,
714
+ "bodies_at_risk": 25
715
+ },
716
+ {
717
+ "cid": "1652",
718
+ "is_loser": false,
719
+ "uniq_at_risk": 182,
720
+ "bodies_at_risk": 14
721
+ },
722
+ {
723
+ "cid": "1653",
724
+ "is_loser": false,
725
+ "uniq_at_risk": 268,
726
+ "bodies_at_risk": 47
727
+ },
728
+ {
729
+ "cid": "1654",
730
+ "is_loser": false,
731
+ "uniq_at_risk": 45,
732
+ "bodies_at_risk": 9
733
+ },
734
+ {
735
+ "cid": "1655",
736
+ "is_loser": true,
737
+ "uniq_at_risk": 215,
738
+ "bodies_at_risk": 28
739
+ },
740
+ {
741
+ "cid": "1656",
742
+ "is_loser": false,
743
+ "uniq_at_risk": 9,
744
+ "bodies_at_risk": 4
745
+ },
746
+ {
747
+ "cid": "1657",
748
+ "is_loser": true,
749
+ "uniq_at_risk": 25,
750
+ "bodies_at_risk": 15
751
+ },
752
+ {
753
+ "cid": "1658",
754
+ "is_loser": false,
755
+ "uniq_at_risk": 11,
756
+ "bodies_at_risk": 5
757
+ },
758
+ {
759
+ "cid": "1659",
760
+ "is_loser": false,
761
+ "uniq_at_risk": 59,
762
+ "bodies_at_risk": 20
763
+ },
764
+ {
765
+ "cid": "1660",
766
+ "is_loser": false,
767
+ "uniq_at_risk": 8,
768
+ "bodies_at_risk": 4
769
+ },
770
+ {
771
+ "cid": "1661",
772
+ "is_loser": false,
773
+ "uniq_at_risk": 8,
774
+ "bodies_at_risk": 4
775
+ },
776
+ {
777
+ "cid": "1662",
778
+ "is_loser": false,
779
+ "uniq_at_risk": 171,
780
+ "bodies_at_risk": 26
781
+ },
782
+ {
783
+ "cid": "1663",
784
+ "is_loser": false,
785
+ "uniq_at_risk": 3,
786
+ "bodies_at_risk": 2
787
+ },
788
+ {
789
+ "cid": "1664",
790
+ "is_loser": false,
791
+ "uniq_at_risk": 6,
792
+ "bodies_at_risk": 4
793
+ },
794
+ {
795
+ "cid": "1665",
796
+ "is_loser": false,
797
+ "uniq_at_risk": 644,
798
+ "bodies_at_risk": 73
799
+ },
800
+ {
801
+ "cid": "1666",
802
+ "is_loser": false,
803
+ "uniq_at_risk": 37,
804
+ "bodies_at_risk": 17
805
+ },
806
+ {
807
+ "cid": "1667",
808
+ "is_loser": false,
809
+ "uniq_at_risk": 9,
810
+ "bodies_at_risk": 2
811
+ },
812
+ {
813
+ "cid": "1668",
814
+ "is_loser": false,
815
+ "uniq_at_risk": 11,
816
+ "bodies_at_risk": 6
817
+ },
818
+ {
819
+ "cid": "1669",
820
+ "is_loser": false,
821
+ "uniq_at_risk": 7,
822
+ "bodies_at_risk": 2
823
+ },
824
+ {
825
+ "cid": "1670",
826
+ "is_loser": false,
827
+ "uniq_at_risk": 13,
828
+ "bodies_at_risk": 5
829
+ },
830
+ {
831
+ "cid": "1671",
832
+ "is_loser": false,
833
+ "uniq_at_risk": 65,
834
+ "bodies_at_risk": 21
835
+ },
836
+ {
837
+ "cid": "1672",
838
+ "is_loser": false,
839
+ "uniq_at_risk": 141,
840
+ "bodies_at_risk": 33
841
+ },
842
+ {
843
+ "cid": "1673",
844
+ "is_loser": false,
845
+ "uniq_at_risk": 56,
846
+ "bodies_at_risk": 21
847
+ },
848
+ {
849
+ "cid": "1674",
850
+ "is_loser": false,
851
+ "uniq_at_risk": 104,
852
+ "bodies_at_risk": 21
853
+ },
854
+ {
855
+ "cid": "1675",
856
+ "is_loser": false,
857
+ "uniq_at_risk": 67,
858
+ "bodies_at_risk": 23
859
+ },
860
+ {
861
+ "cid": "1676",
862
+ "is_loser": false,
863
+ "uniq_at_risk": 85,
864
+ "bodies_at_risk": 45
865
+ },
866
+ {
867
+ "cid": "1677",
868
+ "is_loser": false,
869
+ "uniq_at_risk": 22,
870
+ "bodies_at_risk": 5
871
+ },
872
+ {
873
+ "cid": "1678",
874
+ "is_loser": false,
875
+ "uniq_at_risk": 35,
876
+ "bodies_at_risk": 14
877
+ },
878
+ {
879
+ "cid": "1679",
880
+ "is_loser": false,
881
+ "uniq_at_risk": 50,
882
+ "bodies_at_risk": 13
883
+ },
884
+ {
885
+ "cid": "1680",
886
+ "is_loser": false,
887
+ "uniq_at_risk": 36,
888
+ "bodies_at_risk": 11
889
+ },
890
+ {
891
+ "cid": "1681",
892
+ "is_loser": false,
893
+ "uniq_at_risk": 80,
894
+ "bodies_at_risk": 19
895
+ },
896
+ {
897
+ "cid": "1682",
898
+ "is_loser": false,
899
+ "uniq_at_risk": 49,
900
+ "bodies_at_risk": 15
901
+ }
902
+ ]
routable_feature.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json, csv, importlib.util, statistics, re
2
+ from pathlib import Path
3
+ R=Path("/var/lib/octave/sn114/repo"); PL=Path("/var/lib/octave/sn114/external/SOMA-plugin")
4
+ csv.field_size_limit(50_000_000)
5
+ D=R/"miner/plain_text_compression/sample_tasks/CoT-Compression-1"
6
+ rows={r["challenge_id"]:r for r in csv.DictReader(open(D/"challenges.csv"))}
7
+ per=json.load(open(R/"per_challenge_cap_effect.json"))
8
+ def loadm(fn):
9
+ sp=importlib.util.spec_from_file_location("u_"+fn[:9], PL/fn)
10
+ m=importlib.util.module_from_spec(sp); sp.loader.exec_module(m); return m
11
+ SH=loadm('structural_cot_compressor.py')
12
+ G1=chr(0xab); G2=chr(0xbb); BS=chr(92)
13
+ CALL=re.compile(G1+'c'+BS+'d+[a-z]{2}(.*?)'+G2, re.DOTALL)
14
+ IDENT=re.compile(r'[A-Za-z_][A-Za-z0-9_.]{3,}')
15
+ feats=[]
16
+ for p in per:
17
+ raw=rows[p['cid']]['challenge_text']
18
+ SH.MAX_TOOL_CALL=10**6; full=SH.compress_content(raw)
19
+ SH.MAX_TOOL_CALL=60
20
+ bodies=CALL.findall(full)
21
+ stripped=CALL.sub(' ', full).lower()
22
+ # compress-time-only feature: identifiers beyond byte 20 of a body, unique to that body
23
+ uniq_at_risk=0; bodies_at_risk=0
24
+ for bd in bodies:
25
+ if len(bd)<=20: continue
26
+ tail=bd[20:]
27
+ cands={t.lower() for t in IDENT.findall(tail)}
28
+ uniq={t for t in cands if t not in stripped and t not in bd[:20].lower()}
29
+ if uniq: bodies_at_risk+=1; uniq_at_risk+=len(uniq)
30
+ feats.append({'cid':p['cid'],'is_loser':p['loss']>1e-9,
31
+ 'uniq_at_risk':uniq_at_risk,'bodies_at_risk':bodies_at_risk})
32
+ json.dump(feats, open(R/"routable_feature.json","w"), indent=2)
33
+ L=[f for f in feats if f['is_loser']]; N=[f for f in feats if not f['is_loser']]
34
+ def m(xs,k): return round(statistics.fmean([x[k] for x in xs]),2)
35
+ print(' uniq_at_risk losers %-8s non-losers %s'%(m(L,'uniq_at_risk'),m(N,'uniq_at_risk')))
36
+ print(' bodies_at_risk losers %-8s non-losers %s'%(m(L,'bodies_at_risk'),m(N,'bodies_at_risk')))
37
+ print(' losers with ZERO at-risk bodies: %d of %d'%(sum(1 for f in L if f['bodies_at_risk']==0),len(L)))
38
+ print(' non-losers with SOME at-risk bodies: %d of %d'%(sum(1 for f in N if f['bodies_at_risk']>0),len(N)))
39
+ ranked=sorted(feats,key=lambda f:-f['uniq_at_risk'])
40
+ top21={f['cid'] for f in ranked[:21]}
41
+ true={f['cid'] for f in L}
42
+ print(' top-21 by uniq_at_risk recall of the 21 losers: %.4f'%(len(top21&true)/len(true)))
span_level_probe.json ADDED
@@ -0,0 +1,1502 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "cid": "1533",
4
+ "is_loser": false,
5
+ "loss": 0.0,
6
+ "n_lost_terms": 0,
7
+ "lost_in_call_bodies": 0,
8
+ "lost_ONLY_in_call_bodies": 0,
9
+ "n_bodies": 16,
10
+ "n_bodies_over_20": 16
11
+ },
12
+ {
13
+ "cid": "1534",
14
+ "is_loser": false,
15
+ "loss": 0.0,
16
+ "n_lost_terms": 0,
17
+ "lost_in_call_bodies": 0,
18
+ "lost_ONLY_in_call_bodies": 0,
19
+ "n_bodies": 10,
20
+ "n_bodies_over_20": 10
21
+ },
22
+ {
23
+ "cid": "1535",
24
+ "is_loser": false,
25
+ "loss": 0.0,
26
+ "n_lost_terms": 0,
27
+ "lost_in_call_bodies": 0,
28
+ "lost_ONLY_in_call_bodies": 0,
29
+ "n_bodies": 23,
30
+ "n_bodies_over_20": 23
31
+ },
32
+ {
33
+ "cid": "1536",
34
+ "is_loser": false,
35
+ "loss": 0.0,
36
+ "n_lost_terms": 0,
37
+ "lost_in_call_bodies": 0,
38
+ "lost_ONLY_in_call_bodies": 0,
39
+ "n_bodies": 5,
40
+ "n_bodies_over_20": 5
41
+ },
42
+ {
43
+ "cid": "1537",
44
+ "is_loser": false,
45
+ "loss": 0.0,
46
+ "n_lost_terms": 0,
47
+ "lost_in_call_bodies": 0,
48
+ "lost_ONLY_in_call_bodies": 0,
49
+ "n_bodies": 17,
50
+ "n_bodies_over_20": 17
51
+ },
52
+ {
53
+ "cid": "1538",
54
+ "is_loser": false,
55
+ "loss": 0.0,
56
+ "n_lost_terms": 0,
57
+ "lost_in_call_bodies": 0,
58
+ "lost_ONLY_in_call_bodies": 0,
59
+ "n_bodies": 18,
60
+ "n_bodies_over_20": 18
61
+ },
62
+ {
63
+ "cid": "1539",
64
+ "is_loser": false,
65
+ "loss": 0.0,
66
+ "n_lost_terms": 0,
67
+ "lost_in_call_bodies": 0,
68
+ "lost_ONLY_in_call_bodies": 0,
69
+ "n_bodies": 34,
70
+ "n_bodies_over_20": 34
71
+ },
72
+ {
73
+ "cid": "1540",
74
+ "is_loser": false,
75
+ "loss": 0.0,
76
+ "n_lost_terms": 0,
77
+ "lost_in_call_bodies": 0,
78
+ "lost_ONLY_in_call_bodies": 0,
79
+ "n_bodies": 6,
80
+ "n_bodies_over_20": 6
81
+ },
82
+ {
83
+ "cid": "1541",
84
+ "is_loser": true,
85
+ "loss": 0.019999999999999907,
86
+ "n_lost_terms": 2,
87
+ "lost_in_call_bodies": 2,
88
+ "lost_ONLY_in_call_bodies": 2,
89
+ "n_bodies": 33,
90
+ "n_bodies_over_20": 33
91
+ },
92
+ {
93
+ "cid": "1542",
94
+ "is_loser": false,
95
+ "loss": 0.0,
96
+ "n_lost_terms": 0,
97
+ "lost_in_call_bodies": 0,
98
+ "lost_ONLY_in_call_bodies": 0,
99
+ "n_bodies": 4,
100
+ "n_bodies_over_20": 4
101
+ },
102
+ {
103
+ "cid": "1543",
104
+ "is_loser": true,
105
+ "loss": 0.011111111111111072,
106
+ "n_lost_terms": 1,
107
+ "lost_in_call_bodies": 1,
108
+ "lost_ONLY_in_call_bodies": 1,
109
+ "n_bodies": 8,
110
+ "n_bodies_over_20": 8
111
+ },
112
+ {
113
+ "cid": "1544",
114
+ "is_loser": false,
115
+ "loss": 0.0,
116
+ "n_lost_terms": 0,
117
+ "lost_in_call_bodies": 0,
118
+ "lost_ONLY_in_call_bodies": 0,
119
+ "n_bodies": 13,
120
+ "n_bodies_over_20": 13
121
+ },
122
+ {
123
+ "cid": "1545",
124
+ "is_loser": false,
125
+ "loss": 0.0,
126
+ "n_lost_terms": 0,
127
+ "lost_in_call_bodies": 0,
128
+ "lost_ONLY_in_call_bodies": 0,
129
+ "n_bodies": 25,
130
+ "n_bodies_over_20": 25
131
+ },
132
+ {
133
+ "cid": "1546",
134
+ "is_loser": false,
135
+ "loss": 0.0,
136
+ "n_lost_terms": 0,
137
+ "lost_in_call_bodies": 0,
138
+ "lost_ONLY_in_call_bodies": 0,
139
+ "n_bodies": 38,
140
+ "n_bodies_over_20": 38
141
+ },
142
+ {
143
+ "cid": "1547",
144
+ "is_loser": false,
145
+ "loss": 0.0,
146
+ "n_lost_terms": 0,
147
+ "lost_in_call_bodies": 0,
148
+ "lost_ONLY_in_call_bodies": 0,
149
+ "n_bodies": 37,
150
+ "n_bodies_over_20": 37
151
+ },
152
+ {
153
+ "cid": "1548",
154
+ "is_loser": false,
155
+ "loss": 0.0,
156
+ "n_lost_terms": 0,
157
+ "lost_in_call_bodies": 0,
158
+ "lost_ONLY_in_call_bodies": 0,
159
+ "n_bodies": 6,
160
+ "n_bodies_over_20": 6
161
+ },
162
+ {
163
+ "cid": "1549",
164
+ "is_loser": false,
165
+ "loss": 0.0,
166
+ "n_lost_terms": 0,
167
+ "lost_in_call_bodies": 0,
168
+ "lost_ONLY_in_call_bodies": 0,
169
+ "n_bodies": 5,
170
+ "n_bodies_over_20": 5
171
+ },
172
+ {
173
+ "cid": "1550",
174
+ "is_loser": false,
175
+ "loss": 0.0,
176
+ "n_lost_terms": 0,
177
+ "lost_in_call_bodies": 0,
178
+ "lost_ONLY_in_call_bodies": 0,
179
+ "n_bodies": 4,
180
+ "n_bodies_over_20": 4
181
+ },
182
+ {
183
+ "cid": "1551",
184
+ "is_loser": false,
185
+ "loss": 0.0,
186
+ "n_lost_terms": 0,
187
+ "lost_in_call_bodies": 0,
188
+ "lost_ONLY_in_call_bodies": 0,
189
+ "n_bodies": 4,
190
+ "n_bodies_over_20": 4
191
+ },
192
+ {
193
+ "cid": "1552",
194
+ "is_loser": true,
195
+ "loss": 0.007692307692307665,
196
+ "n_lost_terms": 1,
197
+ "lost_in_call_bodies": 1,
198
+ "lost_ONLY_in_call_bodies": 1,
199
+ "n_bodies": 7,
200
+ "n_bodies_over_20": 7
201
+ },
202
+ {
203
+ "cid": "1553",
204
+ "is_loser": false,
205
+ "loss": 0.0,
206
+ "n_lost_terms": 0,
207
+ "lost_in_call_bodies": 0,
208
+ "lost_ONLY_in_call_bodies": 0,
209
+ "n_bodies": 3,
210
+ "n_bodies_over_20": 3
211
+ },
212
+ {
213
+ "cid": "1554",
214
+ "is_loser": false,
215
+ "loss": 0.0,
216
+ "n_lost_terms": 0,
217
+ "lost_in_call_bodies": 0,
218
+ "lost_ONLY_in_call_bodies": 0,
219
+ "n_bodies": 89,
220
+ "n_bodies_over_20": 89
221
+ },
222
+ {
223
+ "cid": "1555",
224
+ "is_loser": false,
225
+ "loss": 0.0,
226
+ "n_lost_terms": 0,
227
+ "lost_in_call_bodies": 0,
228
+ "lost_ONLY_in_call_bodies": 0,
229
+ "n_bodies": 5,
230
+ "n_bodies_over_20": 5
231
+ },
232
+ {
233
+ "cid": "1556",
234
+ "is_loser": false,
235
+ "loss": 0.0,
236
+ "n_lost_terms": 0,
237
+ "lost_in_call_bodies": 0,
238
+ "lost_ONLY_in_call_bodies": 0,
239
+ "n_bodies": 13,
240
+ "n_bodies_over_20": 13
241
+ },
242
+ {
243
+ "cid": "1557",
244
+ "is_loser": true,
245
+ "loss": 0.010000000000000009,
246
+ "n_lost_terms": 1,
247
+ "lost_in_call_bodies": 1,
248
+ "lost_ONLY_in_call_bodies": 1,
249
+ "n_bodies": 18,
250
+ "n_bodies_over_20": 18
251
+ },
252
+ {
253
+ "cid": "1558",
254
+ "is_loser": false,
255
+ "loss": 0.0,
256
+ "n_lost_terms": 0,
257
+ "lost_in_call_bodies": 0,
258
+ "lost_ONLY_in_call_bodies": 0,
259
+ "n_bodies": 10,
260
+ "n_bodies_over_20": 10
261
+ },
262
+ {
263
+ "cid": "1559",
264
+ "is_loser": false,
265
+ "loss": 0.0,
266
+ "n_lost_terms": 0,
267
+ "lost_in_call_bodies": 0,
268
+ "lost_ONLY_in_call_bodies": 0,
269
+ "n_bodies": 19,
270
+ "n_bodies_over_20": 19
271
+ },
272
+ {
273
+ "cid": "1560",
274
+ "is_loser": false,
275
+ "loss": 0.0,
276
+ "n_lost_terms": 0,
277
+ "lost_in_call_bodies": 0,
278
+ "lost_ONLY_in_call_bodies": 0,
279
+ "n_bodies": 47,
280
+ "n_bodies_over_20": 47
281
+ },
282
+ {
283
+ "cid": "1561",
284
+ "is_loser": false,
285
+ "loss": 0.0,
286
+ "n_lost_terms": 0,
287
+ "lost_in_call_bodies": 0,
288
+ "lost_ONLY_in_call_bodies": 0,
289
+ "n_bodies": 3,
290
+ "n_bodies_over_20": 3
291
+ },
292
+ {
293
+ "cid": "1562",
294
+ "is_loser": false,
295
+ "loss": 0.0,
296
+ "n_lost_terms": 0,
297
+ "lost_in_call_bodies": 0,
298
+ "lost_ONLY_in_call_bodies": 0,
299
+ "n_bodies": 57,
300
+ "n_bodies_over_20": 57
301
+ },
302
+ {
303
+ "cid": "1563",
304
+ "is_loser": false,
305
+ "loss": 0.0,
306
+ "n_lost_terms": 0,
307
+ "lost_in_call_bodies": 0,
308
+ "lost_ONLY_in_call_bodies": 0,
309
+ "n_bodies": 11,
310
+ "n_bodies_over_20": 11
311
+ },
312
+ {
313
+ "cid": "1564",
314
+ "is_loser": false,
315
+ "loss": 0.0,
316
+ "n_lost_terms": 0,
317
+ "lost_in_call_bodies": 0,
318
+ "lost_ONLY_in_call_bodies": 0,
319
+ "n_bodies": 30,
320
+ "n_bodies_over_20": 30
321
+ },
322
+ {
323
+ "cid": "1565",
324
+ "is_loser": true,
325
+ "loss": 0.006666666666666821,
326
+ "n_lost_terms": 1,
327
+ "lost_in_call_bodies": 1,
328
+ "lost_ONLY_in_call_bodies": 1,
329
+ "n_bodies": 27,
330
+ "n_bodies_over_20": 27
331
+ },
332
+ {
333
+ "cid": "1566",
334
+ "is_loser": false,
335
+ "loss": 0.0,
336
+ "n_lost_terms": 0,
337
+ "lost_in_call_bodies": 0,
338
+ "lost_ONLY_in_call_bodies": 0,
339
+ "n_bodies": 7,
340
+ "n_bodies_over_20": 7
341
+ },
342
+ {
343
+ "cid": "1567",
344
+ "is_loser": false,
345
+ "loss": 0.0,
346
+ "n_lost_terms": 0,
347
+ "lost_in_call_bodies": 0,
348
+ "lost_ONLY_in_call_bodies": 0,
349
+ "n_bodies": 22,
350
+ "n_bodies_over_20": 22
351
+ },
352
+ {
353
+ "cid": "1568",
354
+ "is_loser": false,
355
+ "loss": 0.0,
356
+ "n_lost_terms": 0,
357
+ "lost_in_call_bodies": 0,
358
+ "lost_ONLY_in_call_bodies": 0,
359
+ "n_bodies": 23,
360
+ "n_bodies_over_20": 23
361
+ },
362
+ {
363
+ "cid": "1569",
364
+ "is_loser": false,
365
+ "loss": 0.0,
366
+ "n_lost_terms": 0,
367
+ "lost_in_call_bodies": 0,
368
+ "lost_ONLY_in_call_bodies": 0,
369
+ "n_bodies": 4,
370
+ "n_bodies_over_20": 4
371
+ },
372
+ {
373
+ "cid": "1570",
374
+ "is_loser": false,
375
+ "loss": 0.0,
376
+ "n_lost_terms": 0,
377
+ "lost_in_call_bodies": 0,
378
+ "lost_ONLY_in_call_bodies": 0,
379
+ "n_bodies": 33,
380
+ "n_bodies_over_20": 33
381
+ },
382
+ {
383
+ "cid": "1571",
384
+ "is_loser": false,
385
+ "loss": 0.0,
386
+ "n_lost_terms": 0,
387
+ "lost_in_call_bodies": 0,
388
+ "lost_ONLY_in_call_bodies": 0,
389
+ "n_bodies": 18,
390
+ "n_bodies_over_20": 18
391
+ },
392
+ {
393
+ "cid": "1572",
394
+ "is_loser": true,
395
+ "loss": 0.009999999999999898,
396
+ "n_lost_terms": 1,
397
+ "lost_in_call_bodies": 1,
398
+ "lost_ONLY_in_call_bodies": 1,
399
+ "n_bodies": 22,
400
+ "n_bodies_over_20": 22
401
+ },
402
+ {
403
+ "cid": "1573",
404
+ "is_loser": false,
405
+ "loss": 0.0,
406
+ "n_lost_terms": 0,
407
+ "lost_in_call_bodies": 0,
408
+ "lost_ONLY_in_call_bodies": 0,
409
+ "n_bodies": 20,
410
+ "n_bodies_over_20": 20
411
+ },
412
+ {
413
+ "cid": "1574",
414
+ "is_loser": false,
415
+ "loss": 0.0,
416
+ "n_lost_terms": 0,
417
+ "lost_in_call_bodies": 0,
418
+ "lost_ONLY_in_call_bodies": 0,
419
+ "n_bodies": 19,
420
+ "n_bodies_over_20": 19
421
+ },
422
+ {
423
+ "cid": "1575",
424
+ "is_loser": false,
425
+ "loss": 0.0,
426
+ "n_lost_terms": 0,
427
+ "lost_in_call_bodies": 0,
428
+ "lost_ONLY_in_call_bodies": 0,
429
+ "n_bodies": 53,
430
+ "n_bodies_over_20": 53
431
+ },
432
+ {
433
+ "cid": "1576",
434
+ "is_loser": false,
435
+ "loss": 0.0,
436
+ "n_lost_terms": 0,
437
+ "lost_in_call_bodies": 0,
438
+ "lost_ONLY_in_call_bodies": 0,
439
+ "n_bodies": 2,
440
+ "n_bodies_over_20": 2
441
+ },
442
+ {
443
+ "cid": "1577",
444
+ "is_loser": false,
445
+ "loss": 0.0,
446
+ "n_lost_terms": 0,
447
+ "lost_in_call_bodies": 0,
448
+ "lost_ONLY_in_call_bodies": 0,
449
+ "n_bodies": 17,
450
+ "n_bodies_over_20": 17
451
+ },
452
+ {
453
+ "cid": "1578",
454
+ "is_loser": false,
455
+ "loss": 0.0,
456
+ "n_lost_terms": 0,
457
+ "lost_in_call_bodies": 0,
458
+ "lost_ONLY_in_call_bodies": 0,
459
+ "n_bodies": 166,
460
+ "n_bodies_over_20": 166
461
+ },
462
+ {
463
+ "cid": "1579",
464
+ "is_loser": false,
465
+ "loss": 0.0,
466
+ "n_lost_terms": 0,
467
+ "lost_in_call_bodies": 0,
468
+ "lost_ONLY_in_call_bodies": 0,
469
+ "n_bodies": 8,
470
+ "n_bodies_over_20": 8
471
+ },
472
+ {
473
+ "cid": "1580",
474
+ "is_loser": true,
475
+ "loss": 0.012500000000000067,
476
+ "n_lost_terms": 1,
477
+ "lost_in_call_bodies": 1,
478
+ "lost_ONLY_in_call_bodies": 1,
479
+ "n_bodies": 20,
480
+ "n_bodies_over_20": 20
481
+ },
482
+ {
483
+ "cid": "1581",
484
+ "is_loser": false,
485
+ "loss": 0.0,
486
+ "n_lost_terms": 0,
487
+ "lost_in_call_bodies": 0,
488
+ "lost_ONLY_in_call_bodies": 0,
489
+ "n_bodies": 16,
490
+ "n_bodies_over_20": 16
491
+ },
492
+ {
493
+ "cid": "1582",
494
+ "is_loser": false,
495
+ "loss": 0.0,
496
+ "n_lost_terms": 0,
497
+ "lost_in_call_bodies": 0,
498
+ "lost_ONLY_in_call_bodies": 0,
499
+ "n_bodies": 25,
500
+ "n_bodies_over_20": 25
501
+ },
502
+ {
503
+ "cid": "1583",
504
+ "is_loser": false,
505
+ "loss": 0.0,
506
+ "n_lost_terms": 0,
507
+ "lost_in_call_bodies": 0,
508
+ "lost_ONLY_in_call_bodies": 0,
509
+ "n_bodies": 8,
510
+ "n_bodies_over_20": 8
511
+ },
512
+ {
513
+ "cid": "1584",
514
+ "is_loser": false,
515
+ "loss": 0.0,
516
+ "n_lost_terms": 0,
517
+ "lost_in_call_bodies": 0,
518
+ "lost_ONLY_in_call_bodies": 0,
519
+ "n_bodies": 4,
520
+ "n_bodies_over_20": 4
521
+ },
522
+ {
523
+ "cid": "1585",
524
+ "is_loser": false,
525
+ "loss": 0.0,
526
+ "n_lost_terms": 0,
527
+ "lost_in_call_bodies": 0,
528
+ "lost_ONLY_in_call_bodies": 0,
529
+ "n_bodies": 4,
530
+ "n_bodies_over_20": 4
531
+ },
532
+ {
533
+ "cid": "1586",
534
+ "is_loser": false,
535
+ "loss": 0.0,
536
+ "n_lost_terms": 0,
537
+ "lost_in_call_bodies": 0,
538
+ "lost_ONLY_in_call_bodies": 0,
539
+ "n_bodies": 27,
540
+ "n_bodies_over_20": 27
541
+ },
542
+ {
543
+ "cid": "1587",
544
+ "is_loser": true,
545
+ "loss": 0.006666666666666599,
546
+ "n_lost_terms": 1,
547
+ "lost_in_call_bodies": 1,
548
+ "lost_ONLY_in_call_bodies": 1,
549
+ "n_bodies": 11,
550
+ "n_bodies_over_20": 11
551
+ },
552
+ {
553
+ "cid": "1588",
554
+ "is_loser": false,
555
+ "loss": 0.0,
556
+ "n_lost_terms": 0,
557
+ "lost_in_call_bodies": 0,
558
+ "lost_ONLY_in_call_bodies": 0,
559
+ "n_bodies": 6,
560
+ "n_bodies_over_20": 6
561
+ },
562
+ {
563
+ "cid": "1589",
564
+ "is_loser": false,
565
+ "loss": 0.0,
566
+ "n_lost_terms": 0,
567
+ "lost_in_call_bodies": 0,
568
+ "lost_ONLY_in_call_bodies": 0,
569
+ "n_bodies": 4,
570
+ "n_bodies_over_20": 4
571
+ },
572
+ {
573
+ "cid": "1590",
574
+ "is_loser": false,
575
+ "loss": 0.0,
576
+ "n_lost_terms": 0,
577
+ "lost_in_call_bodies": 0,
578
+ "lost_ONLY_in_call_bodies": 0,
579
+ "n_bodies": 24,
580
+ "n_bodies_over_20": 24
581
+ },
582
+ {
583
+ "cid": "1591",
584
+ "is_loser": false,
585
+ "loss": 0.0,
586
+ "n_lost_terms": 0,
587
+ "lost_in_call_bodies": 0,
588
+ "lost_ONLY_in_call_bodies": 0,
589
+ "n_bodies": 47,
590
+ "n_bodies_over_20": 47
591
+ },
592
+ {
593
+ "cid": "1592",
594
+ "is_loser": false,
595
+ "loss": 0.0,
596
+ "n_lost_terms": 0,
597
+ "lost_in_call_bodies": 0,
598
+ "lost_ONLY_in_call_bodies": 0,
599
+ "n_bodies": 29,
600
+ "n_bodies_over_20": 29
601
+ },
602
+ {
603
+ "cid": "1593",
604
+ "is_loser": true,
605
+ "loss": 0.011111111111111072,
606
+ "n_lost_terms": 1,
607
+ "lost_in_call_bodies": 1,
608
+ "lost_ONLY_in_call_bodies": 1,
609
+ "n_bodies": 15,
610
+ "n_bodies_over_20": 15
611
+ },
612
+ {
613
+ "cid": "1594",
614
+ "is_loser": false,
615
+ "loss": 0.0,
616
+ "n_lost_terms": 0,
617
+ "lost_in_call_bodies": 0,
618
+ "lost_ONLY_in_call_bodies": 0,
619
+ "n_bodies": 25,
620
+ "n_bodies_over_20": 25
621
+ },
622
+ {
623
+ "cid": "1595",
624
+ "is_loser": false,
625
+ "loss": 0.0,
626
+ "n_lost_terms": 0,
627
+ "lost_in_call_bodies": 0,
628
+ "lost_ONLY_in_call_bodies": 0,
629
+ "n_bodies": 4,
630
+ "n_bodies_over_20": 4
631
+ },
632
+ {
633
+ "cid": "1596",
634
+ "is_loser": false,
635
+ "loss": 0.0,
636
+ "n_lost_terms": 0,
637
+ "lost_in_call_bodies": 0,
638
+ "lost_ONLY_in_call_bodies": 0,
639
+ "n_bodies": 42,
640
+ "n_bodies_over_20": 42
641
+ },
642
+ {
643
+ "cid": "1597",
644
+ "is_loser": false,
645
+ "loss": 0.0,
646
+ "n_lost_terms": 0,
647
+ "lost_in_call_bodies": 0,
648
+ "lost_ONLY_in_call_bodies": 0,
649
+ "n_bodies": 6,
650
+ "n_bodies_over_20": 6
651
+ },
652
+ {
653
+ "cid": "1598",
654
+ "is_loser": false,
655
+ "loss": 0.0,
656
+ "n_lost_terms": 0,
657
+ "lost_in_call_bodies": 0,
658
+ "lost_ONLY_in_call_bodies": 0,
659
+ "n_bodies": 11,
660
+ "n_bodies_over_20": 11
661
+ },
662
+ {
663
+ "cid": "1599",
664
+ "is_loser": false,
665
+ "loss": 0.0,
666
+ "n_lost_terms": 0,
667
+ "lost_in_call_bodies": 0,
668
+ "lost_ONLY_in_call_bodies": 0,
669
+ "n_bodies": 6,
670
+ "n_bodies_over_20": 6
671
+ },
672
+ {
673
+ "cid": "1600",
674
+ "is_loser": false,
675
+ "loss": 0.0,
676
+ "n_lost_terms": 0,
677
+ "lost_in_call_bodies": 0,
678
+ "lost_ONLY_in_call_bodies": 0,
679
+ "n_bodies": 3,
680
+ "n_bodies_over_20": 3
681
+ },
682
+ {
683
+ "cid": "1601",
684
+ "is_loser": true,
685
+ "loss": 0.009999999999999898,
686
+ "n_lost_terms": 1,
687
+ "lost_in_call_bodies": 1,
688
+ "lost_ONLY_in_call_bodies": 1,
689
+ "n_bodies": 17,
690
+ "n_bodies_over_20": 17
691
+ },
692
+ {
693
+ "cid": "1602",
694
+ "is_loser": false,
695
+ "loss": 0.0,
696
+ "n_lost_terms": 0,
697
+ "lost_in_call_bodies": 0,
698
+ "lost_ONLY_in_call_bodies": 0,
699
+ "n_bodies": 30,
700
+ "n_bodies_over_20": 30
701
+ },
702
+ {
703
+ "cid": "1603",
704
+ "is_loser": false,
705
+ "loss": 0.0,
706
+ "n_lost_terms": 0,
707
+ "lost_in_call_bodies": 0,
708
+ "lost_ONLY_in_call_bodies": 0,
709
+ "n_bodies": 21,
710
+ "n_bodies_over_20": 21
711
+ },
712
+ {
713
+ "cid": "1604",
714
+ "is_loser": true,
715
+ "loss": 0.009999999999999898,
716
+ "n_lost_terms": 1,
717
+ "lost_in_call_bodies": 1,
718
+ "lost_ONLY_in_call_bodies": 1,
719
+ "n_bodies": 20,
720
+ "n_bodies_over_20": 20
721
+ },
722
+ {
723
+ "cid": "1605",
724
+ "is_loser": false,
725
+ "loss": 0.0,
726
+ "n_lost_terms": 0,
727
+ "lost_in_call_bodies": 0,
728
+ "lost_ONLY_in_call_bodies": 0,
729
+ "n_bodies": 14,
730
+ "n_bodies_over_20": 14
731
+ },
732
+ {
733
+ "cid": "1606",
734
+ "is_loser": false,
735
+ "loss": 0.0,
736
+ "n_lost_terms": 0,
737
+ "lost_in_call_bodies": 0,
738
+ "lost_ONLY_in_call_bodies": 0,
739
+ "n_bodies": 4,
740
+ "n_bodies_over_20": 4
741
+ },
742
+ {
743
+ "cid": "1607",
744
+ "is_loser": false,
745
+ "loss": 0.0,
746
+ "n_lost_terms": 0,
747
+ "lost_in_call_bodies": 0,
748
+ "lost_ONLY_in_call_bodies": 0,
749
+ "n_bodies": 18,
750
+ "n_bodies_over_20": 18
751
+ },
752
+ {
753
+ "cid": "1608",
754
+ "is_loser": false,
755
+ "loss": 0.0,
756
+ "n_lost_terms": 0,
757
+ "lost_in_call_bodies": 0,
758
+ "lost_ONLY_in_call_bodies": 0,
759
+ "n_bodies": 31,
760
+ "n_bodies_over_20": 31
761
+ },
762
+ {
763
+ "cid": "1609",
764
+ "is_loser": false,
765
+ "loss": 0.0,
766
+ "n_lost_terms": 0,
767
+ "lost_in_call_bodies": 0,
768
+ "lost_ONLY_in_call_bodies": 0,
769
+ "n_bodies": 33,
770
+ "n_bodies_over_20": 33
771
+ },
772
+ {
773
+ "cid": "1610",
774
+ "is_loser": false,
775
+ "loss": 0.0,
776
+ "n_lost_terms": 0,
777
+ "lost_in_call_bodies": 0,
778
+ "lost_ONLY_in_call_bodies": 0,
779
+ "n_bodies": 75,
780
+ "n_bodies_over_20": 75
781
+ },
782
+ {
783
+ "cid": "1611",
784
+ "is_loser": true,
785
+ "loss": 0.019999999999999907,
786
+ "n_lost_terms": 2,
787
+ "lost_in_call_bodies": 2,
788
+ "lost_ONLY_in_call_bodies": 2,
789
+ "n_bodies": 12,
790
+ "n_bodies_over_20": 12
791
+ },
792
+ {
793
+ "cid": "1612",
794
+ "is_loser": false,
795
+ "loss": 0.0,
796
+ "n_lost_terms": 0,
797
+ "lost_in_call_bodies": 0,
798
+ "lost_ONLY_in_call_bodies": 0,
799
+ "n_bodies": 6,
800
+ "n_bodies_over_20": 6
801
+ },
802
+ {
803
+ "cid": "1613",
804
+ "is_loser": false,
805
+ "loss": 0.0,
806
+ "n_lost_terms": 0,
807
+ "lost_in_call_bodies": 0,
808
+ "lost_ONLY_in_call_bodies": 0,
809
+ "n_bodies": 28,
810
+ "n_bodies_over_20": 28
811
+ },
812
+ {
813
+ "cid": "1614",
814
+ "is_loser": false,
815
+ "loss": 0.0,
816
+ "n_lost_terms": 0,
817
+ "lost_in_call_bodies": 0,
818
+ "lost_ONLY_in_call_bodies": 0,
819
+ "n_bodies": 17,
820
+ "n_bodies_over_20": 17
821
+ },
822
+ {
823
+ "cid": "1615",
824
+ "is_loser": false,
825
+ "loss": 0.0,
826
+ "n_lost_terms": 0,
827
+ "lost_in_call_bodies": 0,
828
+ "lost_ONLY_in_call_bodies": 0,
829
+ "n_bodies": 19,
830
+ "n_bodies_over_20": 19
831
+ },
832
+ {
833
+ "cid": "1616",
834
+ "is_loser": false,
835
+ "loss": 0.0,
836
+ "n_lost_terms": 0,
837
+ "lost_in_call_bodies": 0,
838
+ "lost_ONLY_in_call_bodies": 0,
839
+ "n_bodies": 3,
840
+ "n_bodies_over_20": 3
841
+ },
842
+ {
843
+ "cid": "1617",
844
+ "is_loser": false,
845
+ "loss": 0.0,
846
+ "n_lost_terms": 0,
847
+ "lost_in_call_bodies": 0,
848
+ "lost_ONLY_in_call_bodies": 0,
849
+ "n_bodies": 12,
850
+ "n_bodies_over_20": 12
851
+ },
852
+ {
853
+ "cid": "1618",
854
+ "is_loser": false,
855
+ "loss": 0.0,
856
+ "n_lost_terms": 0,
857
+ "lost_in_call_bodies": 0,
858
+ "lost_ONLY_in_call_bodies": 0,
859
+ "n_bodies": 49,
860
+ "n_bodies_over_20": 49
861
+ },
862
+ {
863
+ "cid": "1619",
864
+ "is_loser": false,
865
+ "loss": 0.0,
866
+ "n_lost_terms": 0,
867
+ "lost_in_call_bodies": 0,
868
+ "lost_ONLY_in_call_bodies": 0,
869
+ "n_bodies": 4,
870
+ "n_bodies_over_20": 4
871
+ },
872
+ {
873
+ "cid": "1620",
874
+ "is_loser": false,
875
+ "loss": 0.0,
876
+ "n_lost_terms": 0,
877
+ "lost_in_call_bodies": 0,
878
+ "lost_ONLY_in_call_bodies": 0,
879
+ "n_bodies": 24,
880
+ "n_bodies_over_20": 24
881
+ },
882
+ {
883
+ "cid": "1621",
884
+ "is_loser": false,
885
+ "loss": 0.0,
886
+ "n_lost_terms": 0,
887
+ "lost_in_call_bodies": 0,
888
+ "lost_ONLY_in_call_bodies": 0,
889
+ "n_bodies": 98,
890
+ "n_bodies_over_20": 98
891
+ },
892
+ {
893
+ "cid": "1622",
894
+ "is_loser": false,
895
+ "loss": 0.0,
896
+ "n_lost_terms": 0,
897
+ "lost_in_call_bodies": 0,
898
+ "lost_ONLY_in_call_bodies": 0,
899
+ "n_bodies": 13,
900
+ "n_bodies_over_20": 13
901
+ },
902
+ {
903
+ "cid": "1623",
904
+ "is_loser": true,
905
+ "loss": 0.014285714285714457,
906
+ "n_lost_terms": 1,
907
+ "lost_in_call_bodies": 1,
908
+ "lost_ONLY_in_call_bodies": 1,
909
+ "n_bodies": 14,
910
+ "n_bodies_over_20": 14
911
+ },
912
+ {
913
+ "cid": "1624",
914
+ "is_loser": false,
915
+ "loss": 0.0,
916
+ "n_lost_terms": 0,
917
+ "lost_in_call_bodies": 0,
918
+ "lost_ONLY_in_call_bodies": 0,
919
+ "n_bodies": 12,
920
+ "n_bodies_over_20": 12
921
+ },
922
+ {
923
+ "cid": "1625",
924
+ "is_loser": false,
925
+ "loss": 0.0,
926
+ "n_lost_terms": 0,
927
+ "lost_in_call_bodies": 0,
928
+ "lost_ONLY_in_call_bodies": 0,
929
+ "n_bodies": 14,
930
+ "n_bodies_over_20": 14
931
+ },
932
+ {
933
+ "cid": "1626",
934
+ "is_loser": false,
935
+ "loss": 0.0,
936
+ "n_lost_terms": 0,
937
+ "lost_in_call_bodies": 0,
938
+ "lost_ONLY_in_call_bodies": 0,
939
+ "n_bodies": 155,
940
+ "n_bodies_over_20": 155
941
+ },
942
+ {
943
+ "cid": "1627",
944
+ "is_loser": false,
945
+ "loss": 0.0,
946
+ "n_lost_terms": 0,
947
+ "lost_in_call_bodies": 0,
948
+ "lost_ONLY_in_call_bodies": 0,
949
+ "n_bodies": 32,
950
+ "n_bodies_over_20": 32
951
+ },
952
+ {
953
+ "cid": "1628",
954
+ "is_loser": false,
955
+ "loss": 0.0,
956
+ "n_lost_terms": 0,
957
+ "lost_in_call_bodies": 0,
958
+ "lost_ONLY_in_call_bodies": 0,
959
+ "n_bodies": 38,
960
+ "n_bodies_over_20": 38
961
+ },
962
+ {
963
+ "cid": "1629",
964
+ "is_loser": true,
965
+ "loss": 0.012499999999999956,
966
+ "n_lost_terms": 1,
967
+ "lost_in_call_bodies": 1,
968
+ "lost_ONLY_in_call_bodies": 1,
969
+ "n_bodies": 18,
970
+ "n_bodies_over_20": 18
971
+ },
972
+ {
973
+ "cid": "1630",
974
+ "is_loser": false,
975
+ "loss": 0.0,
976
+ "n_lost_terms": 0,
977
+ "lost_in_call_bodies": 0,
978
+ "lost_ONLY_in_call_bodies": 0,
979
+ "n_bodies": 5,
980
+ "n_bodies_over_20": 5
981
+ },
982
+ {
983
+ "cid": "1631",
984
+ "is_loser": false,
985
+ "loss": 0.0,
986
+ "n_lost_terms": 0,
987
+ "lost_in_call_bodies": 0,
988
+ "lost_ONLY_in_call_bodies": 0,
989
+ "n_bodies": 7,
990
+ "n_bodies_over_20": 7
991
+ },
992
+ {
993
+ "cid": "1632",
994
+ "is_loser": false,
995
+ "loss": 0.0,
996
+ "n_lost_terms": 0,
997
+ "lost_in_call_bodies": 0,
998
+ "lost_ONLY_in_call_bodies": 0,
999
+ "n_bodies": 16,
1000
+ "n_bodies_over_20": 16
1001
+ },
1002
+ {
1003
+ "cid": "1633",
1004
+ "is_loser": true,
1005
+ "loss": 0.0071428571428573395,
1006
+ "n_lost_terms": 1,
1007
+ "lost_in_call_bodies": 1,
1008
+ "lost_ONLY_in_call_bodies": 1,
1009
+ "n_bodies": 9,
1010
+ "n_bodies_over_20": 9
1011
+ },
1012
+ {
1013
+ "cid": "1634",
1014
+ "is_loser": false,
1015
+ "loss": 0.0,
1016
+ "n_lost_terms": 0,
1017
+ "lost_in_call_bodies": 0,
1018
+ "lost_ONLY_in_call_bodies": 0,
1019
+ "n_bodies": 5,
1020
+ "n_bodies_over_20": 5
1021
+ },
1022
+ {
1023
+ "cid": "1635",
1024
+ "is_loser": false,
1025
+ "loss": 0.0,
1026
+ "n_lost_terms": 0,
1027
+ "lost_in_call_bodies": 0,
1028
+ "lost_ONLY_in_call_bodies": 0,
1029
+ "n_bodies": 9,
1030
+ "n_bodies_over_20": 9
1031
+ },
1032
+ {
1033
+ "cid": "1636",
1034
+ "is_loser": false,
1035
+ "loss": 0.0,
1036
+ "n_lost_terms": 0,
1037
+ "lost_in_call_bodies": 0,
1038
+ "lost_ONLY_in_call_bodies": 0,
1039
+ "n_bodies": 4,
1040
+ "n_bodies_over_20": 4
1041
+ },
1042
+ {
1043
+ "cid": "1637",
1044
+ "is_loser": false,
1045
+ "loss": 0.0,
1046
+ "n_lost_terms": 0,
1047
+ "lost_in_call_bodies": 0,
1048
+ "lost_ONLY_in_call_bodies": 0,
1049
+ "n_bodies": 7,
1050
+ "n_bodies_over_20": 7
1051
+ },
1052
+ {
1053
+ "cid": "1638",
1054
+ "is_loser": false,
1055
+ "loss": 0.0,
1056
+ "n_lost_terms": 0,
1057
+ "lost_in_call_bodies": 0,
1058
+ "lost_ONLY_in_call_bodies": 0,
1059
+ "n_bodies": 44,
1060
+ "n_bodies_over_20": 44
1061
+ },
1062
+ {
1063
+ "cid": "1639",
1064
+ "is_loser": true,
1065
+ "loss": 0.008333333333333193,
1066
+ "n_lost_terms": 1,
1067
+ "lost_in_call_bodies": 1,
1068
+ "lost_ONLY_in_call_bodies": 1,
1069
+ "n_bodies": 14,
1070
+ "n_bodies_over_20": 14
1071
+ },
1072
+ {
1073
+ "cid": "1640",
1074
+ "is_loser": false,
1075
+ "loss": 0.0,
1076
+ "n_lost_terms": 0,
1077
+ "lost_in_call_bodies": 0,
1078
+ "lost_ONLY_in_call_bodies": 0,
1079
+ "n_bodies": 7,
1080
+ "n_bodies_over_20": 7
1081
+ },
1082
+ {
1083
+ "cid": "1641",
1084
+ "is_loser": true,
1085
+ "loss": 0.024358974358974272,
1086
+ "n_lost_terms": 3,
1087
+ "lost_in_call_bodies": 3,
1088
+ "lost_ONLY_in_call_bodies": 3,
1089
+ "n_bodies": 9,
1090
+ "n_bodies_over_20": 9
1091
+ },
1092
+ {
1093
+ "cid": "1642",
1094
+ "is_loser": true,
1095
+ "loss": 0.011111111111111072,
1096
+ "n_lost_terms": 1,
1097
+ "lost_in_call_bodies": 1,
1098
+ "lost_ONLY_in_call_bodies": 1,
1099
+ "n_bodies": 29,
1100
+ "n_bodies_over_20": 29
1101
+ },
1102
+ {
1103
+ "cid": "1643",
1104
+ "is_loser": false,
1105
+ "loss": 0.0,
1106
+ "n_lost_terms": 0,
1107
+ "lost_in_call_bodies": 0,
1108
+ "lost_ONLY_in_call_bodies": 0,
1109
+ "n_bodies": 35,
1110
+ "n_bodies_over_20": 35
1111
+ },
1112
+ {
1113
+ "cid": "1644",
1114
+ "is_loser": false,
1115
+ "loss": 0.0,
1116
+ "n_lost_terms": 0,
1117
+ "lost_in_call_bodies": 0,
1118
+ "lost_ONLY_in_call_bodies": 0,
1119
+ "n_bodies": 34,
1120
+ "n_bodies_over_20": 34
1121
+ },
1122
+ {
1123
+ "cid": "1645",
1124
+ "is_loser": false,
1125
+ "loss": 0.0,
1126
+ "n_lost_terms": 0,
1127
+ "lost_in_call_bodies": 0,
1128
+ "lost_ONLY_in_call_bodies": 0,
1129
+ "n_bodies": 23,
1130
+ "n_bodies_over_20": 23
1131
+ },
1132
+ {
1133
+ "cid": "1646",
1134
+ "is_loser": true,
1135
+ "loss": 0.0052631578947367474,
1136
+ "n_lost_terms": 1,
1137
+ "lost_in_call_bodies": 1,
1138
+ "lost_ONLY_in_call_bodies": 1,
1139
+ "n_bodies": 27,
1140
+ "n_bodies_over_20": 27
1141
+ },
1142
+ {
1143
+ "cid": "1647",
1144
+ "is_loser": false,
1145
+ "loss": 0.0,
1146
+ "n_lost_terms": 0,
1147
+ "lost_in_call_bodies": 0,
1148
+ "lost_ONLY_in_call_bodies": 0,
1149
+ "n_bodies": 15,
1150
+ "n_bodies_over_20": 15
1151
+ },
1152
+ {
1153
+ "cid": "1648",
1154
+ "is_loser": false,
1155
+ "loss": 0.0,
1156
+ "n_lost_terms": 0,
1157
+ "lost_in_call_bodies": 0,
1158
+ "lost_ONLY_in_call_bodies": 0,
1159
+ "n_bodies": 128,
1160
+ "n_bodies_over_20": 128
1161
+ },
1162
+ {
1163
+ "cid": "1649",
1164
+ "is_loser": false,
1165
+ "loss": 0.0,
1166
+ "n_lost_terms": 0,
1167
+ "lost_in_call_bodies": 0,
1168
+ "lost_ONLY_in_call_bodies": 0,
1169
+ "n_bodies": 3,
1170
+ "n_bodies_over_20": 3
1171
+ },
1172
+ {
1173
+ "cid": "1650",
1174
+ "is_loser": false,
1175
+ "loss": 0.0,
1176
+ "n_lost_terms": 0,
1177
+ "lost_in_call_bodies": 0,
1178
+ "lost_ONLY_in_call_bodies": 0,
1179
+ "n_bodies": 53,
1180
+ "n_bodies_over_20": 53
1181
+ },
1182
+ {
1183
+ "cid": "1651",
1184
+ "is_loser": false,
1185
+ "loss": 0.0,
1186
+ "n_lost_terms": 0,
1187
+ "lost_in_call_bodies": 0,
1188
+ "lost_ONLY_in_call_bodies": 0,
1189
+ "n_bodies": 28,
1190
+ "n_bodies_over_20": 28
1191
+ },
1192
+ {
1193
+ "cid": "1652",
1194
+ "is_loser": false,
1195
+ "loss": 0.0,
1196
+ "n_lost_terms": 0,
1197
+ "lost_in_call_bodies": 0,
1198
+ "lost_ONLY_in_call_bodies": 0,
1199
+ "n_bodies": 14,
1200
+ "n_bodies_over_20": 14
1201
+ },
1202
+ {
1203
+ "cid": "1653",
1204
+ "is_loser": false,
1205
+ "loss": 0.0,
1206
+ "n_lost_terms": 0,
1207
+ "lost_in_call_bodies": 0,
1208
+ "lost_ONLY_in_call_bodies": 0,
1209
+ "n_bodies": 49,
1210
+ "n_bodies_over_20": 49
1211
+ },
1212
+ {
1213
+ "cid": "1654",
1214
+ "is_loser": false,
1215
+ "loss": 0.0,
1216
+ "n_lost_terms": 0,
1217
+ "lost_in_call_bodies": 0,
1218
+ "lost_ONLY_in_call_bodies": 0,
1219
+ "n_bodies": 11,
1220
+ "n_bodies_over_20": 11
1221
+ },
1222
+ {
1223
+ "cid": "1655",
1224
+ "is_loser": true,
1225
+ "loss": 0.0071428571428572285,
1226
+ "n_lost_terms": 1,
1227
+ "lost_in_call_bodies": 1,
1228
+ "lost_ONLY_in_call_bodies": 1,
1229
+ "n_bodies": 28,
1230
+ "n_bodies_over_20": 28
1231
+ },
1232
+ {
1233
+ "cid": "1656",
1234
+ "is_loser": false,
1235
+ "loss": 0.0,
1236
+ "n_lost_terms": 0,
1237
+ "lost_in_call_bodies": 0,
1238
+ "lost_ONLY_in_call_bodies": 0,
1239
+ "n_bodies": 4,
1240
+ "n_bodies_over_20": 4
1241
+ },
1242
+ {
1243
+ "cid": "1657",
1244
+ "is_loser": true,
1245
+ "loss": 0.020370370370370372,
1246
+ "n_lost_terms": 1,
1247
+ "lost_in_call_bodies": 1,
1248
+ "lost_ONLY_in_call_bodies": 1,
1249
+ "n_bodies": 17,
1250
+ "n_bodies_over_20": 17
1251
+ },
1252
+ {
1253
+ "cid": "1658",
1254
+ "is_loser": false,
1255
+ "loss": 0.0,
1256
+ "n_lost_terms": 0,
1257
+ "lost_in_call_bodies": 0,
1258
+ "lost_ONLY_in_call_bodies": 0,
1259
+ "n_bodies": 6,
1260
+ "n_bodies_over_20": 6
1261
+ },
1262
+ {
1263
+ "cid": "1659",
1264
+ "is_loser": false,
1265
+ "loss": 0.0,
1266
+ "n_lost_terms": 0,
1267
+ "lost_in_call_bodies": 0,
1268
+ "lost_ONLY_in_call_bodies": 0,
1269
+ "n_bodies": 21,
1270
+ "n_bodies_over_20": 21
1271
+ },
1272
+ {
1273
+ "cid": "1660",
1274
+ "is_loser": false,
1275
+ "loss": 0.0,
1276
+ "n_lost_terms": 0,
1277
+ "lost_in_call_bodies": 0,
1278
+ "lost_ONLY_in_call_bodies": 0,
1279
+ "n_bodies": 5,
1280
+ "n_bodies_over_20": 5
1281
+ },
1282
+ {
1283
+ "cid": "1661",
1284
+ "is_loser": false,
1285
+ "loss": 0.0,
1286
+ "n_lost_terms": 0,
1287
+ "lost_in_call_bodies": 0,
1288
+ "lost_ONLY_in_call_bodies": 0,
1289
+ "n_bodies": 4,
1290
+ "n_bodies_over_20": 4
1291
+ },
1292
+ {
1293
+ "cid": "1662",
1294
+ "is_loser": false,
1295
+ "loss": 0.0,
1296
+ "n_lost_terms": 0,
1297
+ "lost_in_call_bodies": 0,
1298
+ "lost_ONLY_in_call_bodies": 0,
1299
+ "n_bodies": 26,
1300
+ "n_bodies_over_20": 26
1301
+ },
1302
+ {
1303
+ "cid": "1663",
1304
+ "is_loser": false,
1305
+ "loss": 0.0,
1306
+ "n_lost_terms": 0,
1307
+ "lost_in_call_bodies": 0,
1308
+ "lost_ONLY_in_call_bodies": 0,
1309
+ "n_bodies": 3,
1310
+ "n_bodies_over_20": 3
1311
+ },
1312
+ {
1313
+ "cid": "1664",
1314
+ "is_loser": false,
1315
+ "loss": 0.0,
1316
+ "n_lost_terms": 0,
1317
+ "lost_in_call_bodies": 0,
1318
+ "lost_ONLY_in_call_bodies": 0,
1319
+ "n_bodies": 4,
1320
+ "n_bodies_over_20": 4
1321
+ },
1322
+ {
1323
+ "cid": "1665",
1324
+ "is_loser": false,
1325
+ "loss": 0.0,
1326
+ "n_lost_terms": 0,
1327
+ "lost_in_call_bodies": 0,
1328
+ "lost_ONLY_in_call_bodies": 0,
1329
+ "n_bodies": 111,
1330
+ "n_bodies_over_20": 111
1331
+ },
1332
+ {
1333
+ "cid": "1666",
1334
+ "is_loser": false,
1335
+ "loss": 0.0,
1336
+ "n_lost_terms": 0,
1337
+ "lost_in_call_bodies": 0,
1338
+ "lost_ONLY_in_call_bodies": 0,
1339
+ "n_bodies": 21,
1340
+ "n_bodies_over_20": 21
1341
+ },
1342
+ {
1343
+ "cid": "1667",
1344
+ "is_loser": false,
1345
+ "loss": 0.0,
1346
+ "n_lost_terms": 0,
1347
+ "lost_in_call_bodies": 0,
1348
+ "lost_ONLY_in_call_bodies": 0,
1349
+ "n_bodies": 3,
1350
+ "n_bodies_over_20": 3
1351
+ },
1352
+ {
1353
+ "cid": "1668",
1354
+ "is_loser": false,
1355
+ "loss": 0.0,
1356
+ "n_lost_terms": 0,
1357
+ "lost_in_call_bodies": 0,
1358
+ "lost_ONLY_in_call_bodies": 0,
1359
+ "n_bodies": 6,
1360
+ "n_bodies_over_20": 6
1361
+ },
1362
+ {
1363
+ "cid": "1669",
1364
+ "is_loser": false,
1365
+ "loss": 0.0,
1366
+ "n_lost_terms": 0,
1367
+ "lost_in_call_bodies": 0,
1368
+ "lost_ONLY_in_call_bodies": 0,
1369
+ "n_bodies": 3,
1370
+ "n_bodies_over_20": 3
1371
+ },
1372
+ {
1373
+ "cid": "1670",
1374
+ "is_loser": false,
1375
+ "loss": 0.0,
1376
+ "n_lost_terms": 0,
1377
+ "lost_in_call_bodies": 0,
1378
+ "lost_ONLY_in_call_bodies": 0,
1379
+ "n_bodies": 9,
1380
+ "n_bodies_over_20": 9
1381
+ },
1382
+ {
1383
+ "cid": "1671",
1384
+ "is_loser": false,
1385
+ "loss": 0.0,
1386
+ "n_lost_terms": 0,
1387
+ "lost_in_call_bodies": 0,
1388
+ "lost_ONLY_in_call_bodies": 0,
1389
+ "n_bodies": 21,
1390
+ "n_bodies_over_20": 21
1391
+ },
1392
+ {
1393
+ "cid": "1672",
1394
+ "is_loser": false,
1395
+ "loss": 0.0,
1396
+ "n_lost_terms": 0,
1397
+ "lost_in_call_bodies": 0,
1398
+ "lost_ONLY_in_call_bodies": 0,
1399
+ "n_bodies": 34,
1400
+ "n_bodies_over_20": 34
1401
+ },
1402
+ {
1403
+ "cid": "1673",
1404
+ "is_loser": false,
1405
+ "loss": 0.0,
1406
+ "n_lost_terms": 0,
1407
+ "lost_in_call_bodies": 0,
1408
+ "lost_ONLY_in_call_bodies": 0,
1409
+ "n_bodies": 21,
1410
+ "n_bodies_over_20": 21
1411
+ },
1412
+ {
1413
+ "cid": "1674",
1414
+ "is_loser": false,
1415
+ "loss": 0.0,
1416
+ "n_lost_terms": 0,
1417
+ "lost_in_call_bodies": 0,
1418
+ "lost_ONLY_in_call_bodies": 0,
1419
+ "n_bodies": 22,
1420
+ "n_bodies_over_20": 22
1421
+ },
1422
+ {
1423
+ "cid": "1675",
1424
+ "is_loser": false,
1425
+ "loss": 0.0,
1426
+ "n_lost_terms": 0,
1427
+ "lost_in_call_bodies": 0,
1428
+ "lost_ONLY_in_call_bodies": 0,
1429
+ "n_bodies": 27,
1430
+ "n_bodies_over_20": 27
1431
+ },
1432
+ {
1433
+ "cid": "1676",
1434
+ "is_loser": false,
1435
+ "loss": 0.0,
1436
+ "n_lost_terms": 0,
1437
+ "lost_in_call_bodies": 0,
1438
+ "lost_ONLY_in_call_bodies": 0,
1439
+ "n_bodies": 73,
1440
+ "n_bodies_over_20": 73
1441
+ },
1442
+ {
1443
+ "cid": "1677",
1444
+ "is_loser": false,
1445
+ "loss": 0.0,
1446
+ "n_lost_terms": 0,
1447
+ "lost_in_call_bodies": 0,
1448
+ "lost_ONLY_in_call_bodies": 0,
1449
+ "n_bodies": 7,
1450
+ "n_bodies_over_20": 7
1451
+ },
1452
+ {
1453
+ "cid": "1678",
1454
+ "is_loser": false,
1455
+ "loss": 0.0,
1456
+ "n_lost_terms": 0,
1457
+ "lost_in_call_bodies": 0,
1458
+ "lost_ONLY_in_call_bodies": 0,
1459
+ "n_bodies": 20,
1460
+ "n_bodies_over_20": 20
1461
+ },
1462
+ {
1463
+ "cid": "1679",
1464
+ "is_loser": false,
1465
+ "loss": 0.0,
1466
+ "n_lost_terms": 0,
1467
+ "lost_in_call_bodies": 0,
1468
+ "lost_ONLY_in_call_bodies": 0,
1469
+ "n_bodies": 18,
1470
+ "n_bodies_over_20": 18
1471
+ },
1472
+ {
1473
+ "cid": "1680",
1474
+ "is_loser": false,
1475
+ "loss": 0.0,
1476
+ "n_lost_terms": 0,
1477
+ "lost_in_call_bodies": 0,
1478
+ "lost_ONLY_in_call_bodies": 0,
1479
+ "n_bodies": 20,
1480
+ "n_bodies_over_20": 20
1481
+ },
1482
+ {
1483
+ "cid": "1681",
1484
+ "is_loser": false,
1485
+ "loss": 0.0,
1486
+ "n_lost_terms": 0,
1487
+ "lost_in_call_bodies": 0,
1488
+ "lost_ONLY_in_call_bodies": 0,
1489
+ "n_bodies": 19,
1490
+ "n_bodies_over_20": 19
1491
+ },
1492
+ {
1493
+ "cid": "1682",
1494
+ "is_loser": false,
1495
+ "loss": 0.0,
1496
+ "n_lost_terms": 0,
1497
+ "lost_in_call_bodies": 0,
1498
+ "lost_ONLY_in_call_bodies": 0,
1499
+ "n_bodies": 16,
1500
+ "n_bodies_over_20": 16
1501
+ }
1502
+ ]
span_level_probe.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json, csv, importlib.util, statistics, re
2
+ from pathlib import Path
3
+ R=Path("/var/lib/octave/sn114/repo"); PL=Path("/var/lib/octave/sn114/external/SOMA-plugin")
4
+ csv.field_size_limit(50_000_000)
5
+ s=importlib.util.spec_from_file_location("base_sp", R/"answer_retention_eval.py")
6
+ BASE=importlib.util.module_from_spec(s); s.loader.exec_module(BASE)
7
+ D=R/"miner/plain_text_compression/sample_tasks/CoT-Compression-1"
8
+ rows={r["challenge_id"]:r for r in csv.DictReader(open(D/"challenges.csv"))}
9
+ qa=list(csv.DictReader(open(D/"challenge_QA.csv")))
10
+ from collections import defaultdict
11
+ byq=defaultdict(list)
12
+ for q in qa: byq[q['challenge_id']].append(q)
13
+ per=json.load(open(R/"per_challenge_cap_effect.json"))
14
+ losers=[p for p in per if p['loss']>1e-9]
15
+ def loadm(fn):
16
+ sp=importlib.util.spec_from_file_location("p_"+fn[:9], PL/fn)
17
+ m=importlib.util.module_from_spec(sp); sp.loader.exec_module(m); return m
18
+ SH=loadm('structural_cot_compressor.py')
19
+ G1=chr(0xab); G2=chr(0xbb); BS=chr(92)
20
+ CALL=re.compile(G1+'c'+BS+'d+[a-z]{2}(.*?)'+G2, re.DOTALL)
21
+ # for each challenge: which answer terms are lost by cap 20, and do they live in call spans?
22
+ stats=[]
23
+ for p in per:
24
+ cid=p['cid']; raw=rows[cid]['challenge_text']; lo=raw.lower()
25
+ SH.MAX_TOOL_CALL=60; a=SH.compress_content(raw)
26
+ SH.MAX_TOOL_CALL=20; b=SH.compress_content(raw)
27
+ SH.MAX_TOOL_CALL=10**6; full=SH.compress_content(raw)
28
+ SH.MAX_TOOL_CALL=60
29
+ al=a.lower(); bl=b.lower()
30
+ lost=set()
31
+ for q in byq[cid]:
32
+ terms=BASE.content_terms(q['answer_text'])
33
+ for t in terms:
34
+ if t in lo and t in al and t not in bl: lost.add(t)
35
+ bodies=CALL.findall(full)
36
+ # of the lost terms, how many appear in an UNCAPPED call body?
37
+ in_call=0; body_hits={}
38
+ for t in lost:
39
+ hit=[i for i,bd in enumerate(bodies) if t in bd.lower()]
40
+ if hit: in_call+=1; body_hits[t]=len(hit)
41
+ # rest of document excluding call bodies
42
+ stripped=CALL.sub(' ', full).lower()
43
+ only_in_call=sum(1 for t in lost if t in body_hits and t not in stripped)
44
+ stats.append({'cid':cid,'is_loser':p['loss']>1e-9,'loss':p['loss'],
45
+ 'n_lost_terms':len(lost),'lost_in_call_bodies':in_call,'lost_ONLY_in_call_bodies':only_in_call,
46
+ 'n_bodies':len(bodies),'n_bodies_over_20':sum(1 for bd in bodies if len(bd)>20)})
47
+ json.dump(stats, open(R/"span_level_probe.json","w"), indent=2)
48
+ L=[x for x in stats if x['is_loser']]; N=[x for x in stats if not x['is_loser']]
49
+ def m(xs,k): return round(statistics.fmean([x[k] for x in xs]),3) if xs else None
50
+ print('losers %d non-losers %d'%(len(L),len(N)))
51
+ for k in ('n_lost_terms','lost_in_call_bodies','lost_ONLY_in_call_bodies','n_bodies','n_bodies_over_20'):
52
+ print(' %-26s losers %-8s non-losers %s'%(k,m(L,k),m(N,k)))
53
+ tot_lost=sum(x['n_lost_terms'] for x in L)
54
+ tot_in=sum(x['lost_in_call_bodies'] for x in L)
55
+ tot_only=sum(x['lost_ONLY_in_call_bodies'] for x in L)
56
+ print()
57
+ print(' across the %d losers: %d lost terms, %d in call bodies (%.1f%%), %d ONLY in call bodies (%.1f%%)'%(
58
+ len(L),tot_lost,tot_in,100*tot_in/max(1,tot_lost),tot_only,100*tot_only/max(1,tot_lost)))
span_routing.json ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "span_level_probe": {
3
+ "result": "100% of lost terms live ONLY in call bodies - across the 21 losers, 25 lost terms, all 25 in call bodies, all 25 found nowhere else in the document",
4
+ "loss_mechanism_pinned": "cap 20 destroys terms that exist only inside a long tool_call body",
5
+ "why_this_alone_cannot_route": "the 129 non-losers have 0 lost terms BY DEFINITION, so this is a description of the losers computed FROM the answers - an oracle, not a feature"
6
+ },
7
+ "routable_feature": {
8
+ "definition": "compress-time only: identifiers beyond byte 20 of a call body that appear nowhere else in the document",
9
+ "losers_mean_uniq_at_risk": 82.52,
10
+ "non_losers_mean_uniq_at_risk": 94.4,
11
+ "losers_with_zero_at_risk_bodies": 0,
12
+ "non_losers_with_some_at_risk_bodies": 129,
13
+ "top21_recall": 0.0476,
14
+ "binary_verdict": "fires on 150 of 150 and points the WRONG WAY in the mean - non-losers score higher"
15
+ },
16
+ "my_premature_closure": {
17
+ "what_i_said": "the feature is universally true so it carries no information, and I am closing the selective-routing line here",
18
+ "why_it_was_wrong": "I concluded no signal from a recall figure and a correlation coefficient, both blind to non-monotone structure, without ever looking at the distribution",
19
+ "error_class": "tenth narration-class error and a new variety - declaring a negative result and closing a line of work on two summary statistics; the prior probes were insufficient, not conclusive, and I presented insufficiency as absence"
20
+ },
21
+ "base_rate_test": {
22
+ "my_prediction": "if consequence is question-driven and independent of at-risk volume, the loser rate should be FLAT across at-risk quartiles",
23
+ "result": "FALSIFIED - spread 0.2432",
24
+ "quartiles": [
25
+ {
26
+ "quartile": 1,
27
+ "n": 37,
28
+ "losers": 0,
29
+ "loser_rate": 0.0,
30
+ "mean_uniq_at_risk": 7.9
31
+ },
32
+ {
33
+ "quartile": 2,
34
+ "n": 37,
35
+ "losers": 8,
36
+ "loser_rate": 0.2162,
37
+ "mean_uniq_at_risk": 32.7
38
+ },
39
+ {
40
+ "quartile": 3,
41
+ "n": 37,
42
+ "losers": 9,
43
+ "loser_rate": 0.2432,
44
+ "mean_uniq_at_risk": 82.5
45
+ },
46
+ {
47
+ "quartile": 4,
48
+ "n": 39,
49
+ "losers": 4,
50
+ "loser_rate": 0.1026,
51
+ "mean_uniq_at_risk": 239.8
52
+ }
53
+ ],
54
+ "shape": "NOT monotone: Q1 has 0 losers of 37, Q2 and Q3 run 21.6-24.3%, Q4 falls back to 10.3% - which is why every linear correlation I computed read near zero",
55
+ "corr_loss_vs_atrisk_among_losers": -0.2078
56
+ },
57
+ "q1_attack_policy": {
58
+ "idea": "invert the routing - instead of choosing whom to SPARE, use the feature to choose whom it is safe to ATTACK",
59
+ "in_sample": [
60
+ {
61
+ "threshold": 10,
62
+ "attacked": 25,
63
+ "losers_attacked": 0,
64
+ "term": 0.936,
65
+ "char_pct": 78.228
66
+ },
67
+ {
68
+ "threshold": 15,
69
+ "attacked": 41,
70
+ "losers_attacked": 0,
71
+ "term": 0.936,
72
+ "char_pct": 78.322
73
+ },
74
+ {
75
+ "threshold": 20,
76
+ "attacked": 44,
77
+ "losers_attacked": 0,
78
+ "term": 0.936,
79
+ "char_pct": 78.34
80
+ },
81
+ {
82
+ "threshold": 25,
83
+ "attacked": 49,
84
+ "losers_attacked": 1,
85
+ "term": 0.936,
86
+ "char_pct": 78.378
87
+ },
88
+ {
89
+ "threshold": 30,
90
+ "attacked": 52,
91
+ "losers_attacked": 3,
92
+ "term": 0.9357,
93
+ "char_pct": 78.411
94
+ },
95
+ {
96
+ "threshold": 40,
97
+ "attacked": 62,
98
+ "losers_attacked": 5,
99
+ "term": 0.9355,
100
+ "char_pct": 78.564
101
+ }
102
+ ],
103
+ "heldout": {
104
+ "trials": 200,
105
+ "mean_threshold": 24.5,
106
+ "mean_attacked_of_75": 24.5,
107
+ "mean_losers_attacked": 1.035,
108
+ "trials_with_zero_losers_attacked": 95,
109
+ "mean_term": 0.9358,
110
+ "mean_base_term": 0.936,
111
+ "mean_char": 78.396,
112
+ "mean_base_char": 78.137
113
+ },
114
+ "honest_verdict": "the signal is real and generalises: +0.259 exact char points at -0.0002 term out of sample. But that is a TENTH of the +2.543 oracle prize, and only 95 of 200 held-out trials avoid attacking a loser",
115
+ "my_second_overreach": "I wrote that Q1 identifies a quarter of the corpus that is \"provably safe\". Held-out it is not provably anything - a loser is attacked in 105 of 200 trials. That was an in-sample statement dressed as a general one, the mirror image of the overreach I had just criticised",
116
+ "decision": "not building a variant - +0.26 char points does not justify a fourteenth compressor, and the honest figure is an order of magnitude below the oracle"
117
+ },
118
+ "arc_of_the_turn": "I declared no signal (wrong), then declared a provably safe quartile (also wrong); the truth is a small real effect worth about 0.26 char points",
119
+ "revert_proofs": "16 mutations all caught: erasing the mechanism, the oracle flag, the universality, both of my errors, reversing the falsification, adding losers to Q1, losing or inflating the held-out gain, making the held-out result clean, and tidying the arc of the turn"
120
+ }