SPB Git

spb/firc0001_uqo

Public

N5: focus-window coverage of every ledger section (shown fraction, last offset, gate hits shown, plateau, short MD&As)

Items: FIRC0001-EDIT-08 THEO-09 AI_C-06 ECON-05 AI_C-20 DATA-08 THEO-13.
_focus replicated span-exactly on 1,123,098 sections (0 mismatches; 23.4 GB streamed in 585 s); Python gate = DuckDB gate = 703,737.
10-K MD&A: median 9,905 words / 64,194 chars reproduced; median shown 9.3 %, last shown offset at 16 % of the text, 90.5 % of sections shown < 25 %;
62.7 % of all mentions come from sections shown < 25 %; 0 messages cut at 14,000 chars; mentions/section plateau ~1.5 beyond 20k chars.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Nov 5, 2026) parent 906fea1 Browse files

10 changed files +446 −0

added code/audit/a05_focus_coverage.py +165 −0
@@ -0,0 +1,165 @@
1 +"""N5 - focus-window coverage: what share of every ledger section the model actually saw (cluster E).
2 +
3 +Imports _focus / _PROJECT_GATE from the hash-verified snapshot (pure functions). For each of the
4 +1,123,098 ledger sections: length, Python gate pass, gate hits, shown characters (replicated span
5 +logic, asserted equal to the real _focus output), offset of the last shown character, hits shown,
6 +14,000-character message cut, capex vocabulary inside/outside the shown windows. Aggregates by form x
7 +item; n_mentions vs length (plateau); <30-word / incorporated-by-reference 10-K MD&As by year;
8 +median words of ledger 10-K MD&A (the 9,905 figure). Read-only; per-section features kept on the node.
9 +"""
10 +from __future__ import annotations
11 +import json, re, sys, time
12 +from pathlib import Path
13 +import multiprocessing as mp
14 +sys.path.insert(0, str(Path(__file__).resolve().parent))
15 +from common import *
16 +sys.path.insert(0, str(Path(__file__).resolve().parent))
17 +from spid.extract.llm import _focus # snapshot copy
18 +from spid.extract.rules import _PROJECT_GATE # snapshot copy
19 +
20 +BUDGET = 9000
21 +CAPEX = re.compile(r"capital expenditure|liquidity and capital resources|commitment", re.I)
22 +
23 +def spans_like_focus(text: str, hits):
24 + """Replicates _focus (llm.py:55-80) and returns the chunks [(a,b)] actually emitted."""
25 + L = len(text)
26 + if L <= BUDGET:
27 + return [(0, L)], True
28 + spans = []
29 + for s, e in hits:
30 + spans.append((max(0, s - 220), min(L, e + 380)))
31 + if sum(b - a for a, b in spans) > BUDGET * 1.4:
32 + break
33 + if not spans:
34 + return [(0, BUDGET)], True
35 + spans.sort()
36 + merged = [spans[0]]
37 + for a, b in spans[1:]:
38 + if a <= merged[-1][1]:
39 + merged[-1] = (merged[-1][0], max(merged[-1][1], b))
40 + else:
41 + merged.append((a, b))
42 + chunks, total = [], 0
43 + for a, b in merged:
44 + chunks.append((a, b)); total += b - a
45 + if total >= BUDGET:
46 + break
47 + return chunks, False
48 +
49 +def feat(item):
50 + sid, text = item
51 + L = len(text)
52 + hits = [(m.start(), m.end()) for m in _PROJECT_GATE.finditer(text)]
53 + nh = len(hits)
54 + chunks, whole = spans_like_focus(text, hits)
55 + shown = sum(b - a for a, b in chunks)
56 + last = chunks[-1][1]
57 + focus = _focus(text)
58 + eq = ("\n...\n".join(text[a:b] for a, b in chunks) == focus)
59 + # hits inside the chunks
60 + hs = 0; ci = 0
61 + for s, _ in hits:
62 + while ci < len(chunks) and s >= chunks[ci][1]:
63 + ci += 1
64 + if ci < len(chunks) and chunks[ci][0] <= s < chunks[ci][1]:
65 + hs += 1
66 + cap_all = 0; cap_in = 0
67 + if L > BUDGET:
68 + for m in CAPEX.finditer(text):
69 + cap_all += 1
70 + s = m.start()
71 + if any(a <= s < b for a, b in chunks):
72 + cap_in += 1
73 + return (sid, L, nh > 0, nh, shown, last, hs, len(focus), eq, cap_all, cap_in, len(chunks))
74 +
75 +def main():
76 + r = Run("focus")
77 + con = connect(SPID_DB)
78 + con.execute("CREATE TEMP TABLE led AS SELECT section_id FROM extracted_sections")
79 + q = """SELECT s.section_id, s.text FROM src_sections s JOIN led USING (section_id)
80 + UNION ALL SELECT s.section_id, s.text FROM spid_sections s JOIN led USING (section_id)"""
81 + cur = con.execute(q)
82 + rows_out = []; t0 = time.time(); done = 0; chars = 0
83 + ctx = mp.get_context("fork")
84 + with ctx.Pool(4) as pool:
85 + while True:
86 + rows = cur.fetchmany(4000)
87 + if not rows:
88 + break
89 + chars += sum(len(t) for _, t in rows)
90 + rows_out.extend(pool.imap_unordered(feat, rows, chunksize=100))
91 + done += len(rows)
92 + if done % 100000 < 4000:
93 + print(f" {done} sections, {chars/1e9:.2f} GB, {time.time()-t0:.0f}s", flush=True)
94 + r.notes["sections_streamed"] = done; r.notes["chars_streamed"] = chars
95 + import pyarrow as pa, pyarrow.parquet as pq
96 + names = ["section_id", "nchar", "gate_py", "n_hits", "shown_chars", "last_offset", "hits_shown", "focus_len", "replica_eq", "capex_all", "capex_shown", "n_chunks"]
97 + tbl = pa.table({n: [row[i] for row in rows_out] for i, n in enumerate(names)})
98 + pq.write_table(tbl, r.out / "section_features.parquet") # stays on the node
99 + con.register("ft", tbl)
100 + tmin = con.execute("select min(extracted_at) from extracted_sections").fetchone()[0]
101 + con.execute(f"""CREATE TEMP TABLE F AS
102 + SELECT ft.*, e.n_mentions, CASE WHEN e.extracted_at = TIMESTAMP '{tmin}' THEN 'backfilled_june' ELSE 'october' END run,
103 + m.section_name item, m.word_count, f.form_type form, year(f.filing_date) yr,
104 + shown_chars*1.0/nchar AS shown_frac, last_offset*1.0/nchar AS last_frac,
105 + CASE WHEN n_hits > 0 THEN hits_shown*1.0/n_hits END AS hits_frac,
106 + (9 + length(m.section_name) + 2 + focus_len) > 14000 AS msg_truncated,
107 + nchar > {BUDGET} AS over_budget
108 + FROM ft JOIN extracted_sections e USING (section_id)
109 + JOIN (SELECT section_id, section_name, word_count FROM src_sections UNION ALL SELECT section_id, section_name, word_count FROM spid_sections) m USING (section_id)
110 + JOIN src_filings f ON f.accession_number = e.accession_number""")
111 + r.notes["replica_mismatches"] = con.execute("select count(*) from F where not replica_eq").fetchone()[0]
112 + r.notes["gate_py_pass"] = con.execute("select count(*) from F where gate_py").fetchone()[0]
113 + r.notes["gate_py_pass_by_form"] = con.execute("select form, count(*) filter (where gate_py), count(*) from F group by 1 order by 1").fetchall()
114 + r.notes["gate_fail_with_mentions"] = con.execute("select count(*) from F where not gate_py and n_mentions>0").fetchone()[0]
115 + agg = """count(*) n, count(*) FILTER (WHERE gate_py) gate_pass, count(*) FILTER (WHERE over_budget) over_9000_chars, round(100.0*count(*) FILTER (WHERE over_budget)/count(*),2) pct_over_9000,
116 + round(quantile_cont(nchar,0.1)) chars_p10, round(quantile_cont(nchar,0.5)) chars_p50, round(quantile_cont(nchar,0.9)) chars_p90,
117 + round(quantile_cont(shown_frac,0.1),3) shown_p10, round(quantile_cont(shown_frac,0.5),3) shown_p50, round(quantile_cont(shown_frac,0.9),3) shown_p90, round(avg(shown_frac),3) shown_mean,
118 + round(quantile_cont(shown_frac,0.5) FILTER (WHERE over_budget),3) shown_p50_over_budget,
119 + round(quantile_cont(last_frac,0.1),3) last_p10, round(quantile_cont(last_frac,0.5),3) last_p50, round(quantile_cont(last_frac,0.9),3) last_p90,
120 + round(100.0*count(*) FILTER (WHERE shown_frac < 0.25)/count(*),2) pct_shown_lt_25, round(100.0*count(*) FILTER (WHERE last_frac < 0.5)/count(*),2) pct_last_lt_50,
121 + round(100.0*count(*) FILTER (WHERE msg_truncated)/count(*),2) pct_msg_truncated_14k, round(avg(hits_frac),3) hits_shown_mean, round(quantile_cont(hits_frac,0.5),3) hits_shown_p50,
122 + sum(n_mentions) mentions, sum(n_mentions) FILTER (WHERE shown_frac < 0.25) mentions_from_lt25, round(100.0*sum(n_mentions) FILTER (WHERE shown_frac < 0.25)/nullif(sum(n_mentions),0),2) pct_mentions_from_lt25,
123 + round(100.0*sum(capex_shown)/nullif(sum(capex_all),0),2) pct_capex_vocab_shown_over_budget"""
124 + r.dump("focus_coverage_by_form_item.csv", con, f"SELECT form, item, {agg} FROM F GROUP BY 1,2 ORDER BY 1,2")
125 + r.dump("focus_coverage_by_form.csv", con, f"SELECT form, {agg} FROM F GROUP BY 1 ORDER BY 1")
126 + r.dump("focus_coverage_by_form_item_run.csv", con, f"SELECT form, item, run, {agg} FROM F GROUP BY 1,2,3 ORDER BY 1,2,3")
127 + r.dump("focus_coverage_calls_only_by_form_item.csv", con, f"SELECT form, item, {agg} FROM F WHERE gate_py AND word_count >= 30 GROUP BY 1,2 ORDER BY 1,2")
128 + r.dump("mentions_vs_length_by_item.csv", con, """
129 + SELECT form, item, CASE WHEN nchar<3000 THEN 'a<3k' WHEN nchar<6000 THEN 'b3-6k' WHEN nchar<9000 THEN 'c6-9k' WHEN nchar<12000 THEN 'd9-12k' WHEN nchar<20000 THEN 'e12-20k' WHEN nchar<40000 THEN 'f20-40k' WHEN nchar<80000 THEN 'g40-80k' ELSE 'h>=80k' END len_bin,
130 + count(*) n, count(*) FILTER (WHERE gate_py) calls, round(avg(n_mentions),4) mean_mentions, round(avg(n_mentions) FILTER (WHERE gate_py),4) mean_mentions_per_call,
131 + round(100.0*count(*) FILTER (WHERE n_mentions>0)/count(*),2) productive_pct, round(avg(shown_frac),3) shown_mean, round(avg(shown_chars)) shown_chars_mean,
132 + round(1e4*sum(n_mentions)/nullif(sum(shown_chars),0),4) mentions_per_10k_shown_chars
133 + FROM F GROUP BY 1,2,3 ORDER BY 1,2,3""")
134 + r.dump("shown_fraction_bins.csv", con, """
135 + SELECT form, CASE WHEN shown_frac >= 0.9 THEN 'a>=0.9' WHEN shown_frac >= 0.25 THEN 'b0.25-0.9' ELSE 'c<0.25' END bin, count(*) n, count(*) FILTER (WHERE gate_py AND word_count>=30) calls,
136 + count(*) FILTER (WHERE n_mentions>0) with_mentions, sum(n_mentions) mentions FROM F GROUP BY 1,2 ORDER BY 1,2""")
137 + # 10-K MD&A coverage hole by year: all parsed + legacy 10-K md_and_a sections (ledgered or not)
138 + r.dump("mdna_10k_short_by_year.csv", con, """
139 + WITH a AS (SELECT s.section_id, s.word_count, year(f.filing_date) yr, s.section_id IN (SELECT section_id FROM extracted_sections) ledgered,
140 + regexp_matches(left(s.text, 3000), 'incorporated .{0,40}by reference', 'i') incorp_head
141 + FROM src_sections s JOIN src_filings f USING (accession_number) WHERE f.form_type='10-K' AND s.section_name='md_and_a' AND s.accession_number NOT IN (SELECT accession_number FROM spid_sections)
142 + UNION ALL
143 + SELECT s.section_id, s.word_count, year(f.filing_date), TRUE, regexp_matches(left(s.text, 3000), 'incorporated .{0,40}by reference', 'i')
144 + FROM spid_sections s JOIN src_filings f USING (accession_number) WHERE s.section_name='md_and_a')
145 + SELECT yr, count(*) mdna_sections, count(*) FILTER (WHERE word_count < 30) lt30_words, round(100.0*count(*) FILTER (WHERE word_count < 30)/count(*),2) pct_lt30,
146 + count(*) FILTER (WHERE word_count < 300 AND incorp_head) lt300_incorporated_by_ref, count(*) FILTER (WHERE NOT ledgered) not_ledgered, round(median(word_count)) median_words
147 + FROM a GROUP BY 1 ORDER BY 1""")
148 + K = {}
149 + K["ledger_10k_mdna_median_words"] = con.execute("select median(word_count) from F where form='10-K' and item='md_and_a'").fetchone()[0]
150 + K["ledger_10k_mdna_median_chars"] = con.execute("select median(nchar) from F where form='10-K' and item='md_and_a'").fetchone()[0]
151 + K["ledger_10k_mdna_n"] = con.execute("select count(*) from F where form='10-K' and item='md_and_a'").fetchone()[0]
152 + K["ledger_10k_mdna_shown_p50"] = con.execute("select median(shown_frac) from F where form='10-K' and item='md_and_a'").fetchone()[0]
153 + K["ledger_10k_mdna_last_p50"] = con.execute("select median(last_frac) from F where form='10-K' and item='md_and_a'").fetchone()[0]
154 + K["ledger_10k_mdna_pct_shown_lt_25"] = con.execute("select 100.0*count(*) filter (where shown_frac<0.25)/count(*) from F where form='10-K' and item='md_and_a'").fetchone()[0]
155 + K["ledger_sections_over_9000_chars"], K["ledger_sections"] = con.execute("select count(*) filter (where over_budget), count(*) from F").fetchone()
156 + K["calls_over_9000_chars"], K["calls"] = con.execute("select count(*) filter (where over_budget), count(*) from F where gate_py and word_count>=30").fetchone()
157 + K["mentions_from_sections_shown_lt_25"], K["mentions_total"] = con.execute("select sum(n_mentions) filter (where shown_frac<0.25), sum(n_mentions) from F").fetchone()
158 + K["msg_truncated_14k"] = con.execute("select count(*) from F where msg_truncated").fetchone()[0]
159 + K["gate_py_pass_total"] = r.notes["gate_py_pass"]; K["gate_duckdb_pass_total_N1"] = 703737
160 + K["mean_shown_frac_over_budget"] = con.execute("select avg(shown_frac) from F where over_budget").fetchone()[0]
161 + r.write_json("stats_keys.json", K)
162 + r.finish()
163 +
164 +if __name__ == "__main__":
165 + main()
added results/focus/focus_coverage_by_form.csv +4 −0
@@ -0,0 +1,4 @@
1 +form,n,gate_pass,over_9000_chars,pct_over_9000,chars_p10,chars_p50,chars_p90,shown_p10,shown_p50,shown_p90,shown_mean,shown_p50_over_budget,last_p10,last_p50,last_p90,pct_shown_lt_25,pct_last_lt_50,pct_msg_truncated_14k,hits_shown_mean,hits_shown_p50,mentions,mentions_from_lt25,pct_mentions_from_lt25,pct_capex_vocab_shown_over_budget
2 +10-K,143704,135310,85179,59.27,924.0,28255.0,110017.0,0.051,0.217,1.0,0.487,0.102,0.078,0.443,1.0,52.12,51.66,0.0,0.53,0.338,81622,68572,84.01,7.44
3 +10-Q,578793,363985,205571,35.52,335.0,3503.0,78237.0,0.08,1.0,1.0,0.695,0.115,0.147,1.0,1.0,31.4,28.96,0.0,0.61,0.656,152261,120560,79.18,9.02
4 +8-K,400601,204442,35345,8.82,2538.0,3816.0,8528.0,1.0,1.0,1.0,0.94,0.304,1.0,1.0,1.0,3.32,1.14,0.0,0.984,1.0,74594,4284,5.74,51.49
added results/focus/focus_coverage_by_form_item.csv +16 −0
@@ -0,0 +1,16 @@
1 +form,item,n,gate_pass,over_9000_chars,pct_over_9000,chars_p10,chars_p50,chars_p90,shown_p10,shown_p50,shown_p90,shown_mean,shown_p50_over_budget,last_p10,last_p50,last_p90,pct_shown_lt_25,pct_last_lt_50,pct_msg_truncated_14k,hits_shown_mean,hits_shown_p50,mentions,mentions_from_lt25,pct_mentions_from_lt25,pct_capex_vocab_shown_over_budget
2 +10-K,business,29285,29118,23748,81.09,5587.0,37168.0,100505.0,0.053,0.157,1.0,0.32,0.127,0.076,0.259,1.0,66.62,68.33,0.0,0.423,0.261,30492,26256,86.11,10.03
3 +10-K,full_body,1230,1229,1229,99.92,165349.0,304265.0,517545.0,0.011,0.021,0.043,0.027,0.021,0.028,0.064,0.186,99.84,98.94,0.0,0.056,0.041,824,824,100.0,1.72
4 +10-K,md_and_a,28919,28050,27175,93.97,26935.0,64194.0,123299.0,0.043,0.093,0.24,0.159,0.089,0.063,0.162,0.573,90.5,87.88,0.0,0.214,0.156,39099,37824,96.74,5.79
5 +10-K,properties,28236,25940,1592,5.64,491.0,1255.0,4866.0,1.0,1.0,1.0,0.957,0.217,1.0,1.0,1.0,3.21,2.66,0.0,0.975,1.0,7879,891,11.31,14.03
6 +10-K,quantitative_disclosures,26876,22032,3208,11.94,638.0,3354.0,9995.0,0.449,1.0,1.0,0.912,0.28,0.97,1.0,1.0,5.38,4.96,0.0,0.947,1.0,531,176,33.15,8.5
7 +10-K,risk_factors,29158,28941,28227,96.81,22943.0,62542.0,156060.0,0.038,0.101,0.277,0.151,0.098,0.051,0.177,0.578,87.93,87.52,0.0,0.25,0.176,2797,2601,92.99,11.49
8 +10-Q,controls_and_procedures,92393,20913,1727,1.87,985.0,1710.0,3574.0,1.0,1.0,1.0,0.986,0.162,1.0,1.0,1.0,1.05,0.97,0.0,0.961,1.0,7082,227,3.21,5.81
9 +10-Q,financial_statements,91882,90106,88971,96.83,31004.0,64457.0,123191.0,0.053,0.106,0.225,0.146,0.104,0.097,0.239,0.654,92.4,83.74,0.0,0.307,0.234,30159,28422,94.24,9.69
10 +10-Q,full_document,241,241,241,100.0,118565.0,348536.0,823174.0,0.008,0.019,0.068,0.03,0.019,0.026,0.143,0.347,100.0,100.0,0.0,0.061,0.046,107,107,100.0,2.48
11 +10-Q,legal_proceedings,66998,20043,2219,3.31,232.0,522.0,3847.0,1.0,1.0,1.0,0.976,0.25,1.0,1.0,1.0,1.66,0.87,0.0,0.98,1.0,845,92,10.89,15.22
12 +10-Q,md_and_a,91371,90269,86279,94.43,21446.0,47488.0,95664.0,0.057,0.132,0.309,0.192,0.126,0.086,0.24,0.731,84.69,79.65,0.0,0.28,0.211,99305,89215,89.84,8.26
13 +10-Q,quantitative_disclosures,83138,46720,4039,4.86,251.0,1510.0,6250.0,1.0,1.0,1.0,0.969,0.36,1.0,1.0,1.0,1.04,0.73,0.0,0.986,1.0,808,62,7.67,30.96
14 +10-Q,risk_factors,72560,33826,16590,22.86,197.0,969.0,93477.0,0.067,1.0,1.0,0.807,0.078,0.11,1.0,1.0,17.69,17.8,0.0,0.664,1.0,4420,1894,42.85,10.53
15 +10-Q,unregistered_sales,80210,61867,5505,6.86,2253.0,3886.0,7603.0,1.0,1.0,1.0,0.948,0.193,1.0,1.0,1.0,4.28,3.28,0.0,0.984,1.0,9535,541,5.67,11.08
16 +8-K,full_body,400601,204442,35345,8.82,2538.0,3816.0,8528.0,1.0,1.0,1.0,0.94,0.304,1.0,1.0,1.0,3.32,1.14,0.0,0.984,1.0,74594,4284,5.74,51.49
added results/focus/focus_coverage_by_form_item_run.csv +29 −0
@@ -0,0 +1,29 @@
1 +form,item,run,n,gate_pass,over_9000_chars,pct_over_9000,chars_p10,chars_p50,chars_p90,shown_p10,shown_p50,shown_p90,shown_mean,shown_p50_over_budget,last_p10,last_p50,last_p90,pct_shown_lt_25,pct_last_lt_50,pct_msg_truncated_14k,hits_shown_mean,hits_shown_p50,mentions,mentions_from_lt25,pct_mentions_from_lt25,pct_capex_vocab_shown_over_budget
2 +10-K,business,backfilled_june,5545,5542,5257,94.81,14938.0,40344.0,92815.0,0.056,0.146,0.403,0.213,0.138,0.079,0.227,0.81,75.62,78.83,0.0,0.326,0.226,5934,4752,80.08,9.15
3 +10-K,business,october,23740,23576,18491,77.89,5212.0,36319.0,102479.0,0.053,0.16,1.0,0.346,0.124,0.075,0.268,1.0,64.52,65.88,0.0,0.445,0.272,24558,21504,87.56,10.38
4 +10-K,full_body,backfilled_june,1230,1229,1229,99.92,165349.0,304265.0,517545.0,0.011,0.021,0.043,0.027,0.021,0.028,0.064,0.186,99.84,98.94,0.0,0.056,0.041,824,824,100.0,1.72
5 +10-K,md_and_a,backfilled_june,5198,5096,4927,94.79,30305.0,65644.0,135048.0,0.039,0.088,0.214,0.146,0.085,0.056,0.149,0.487,92.32,90.4,0.0,0.195,0.141,6703,6487,96.78,5.8
6 +10-K,md_and_a,october,23721,22954,22248,93.79,25898.0,63899.0,120928.0,0.044,0.094,0.248,0.162,0.09,0.065,0.165,0.594,90.11,87.32,0.0,0.218,0.16,32396,31337,96.73,5.78
7 +10-K,properties,backfilled_june,5084,4897,216,4.25,608.0,1268.0,4547.0,1.0,1.0,1.0,0.965,0.125,1.0,1.0,1.0,2.97,3.07,0.0,0.971,1.0,1721,123,7.15,6.85
8 +10-K,properties,october,23152,21043,1376,5.94,465.0,1253.0,4926.0,1.0,1.0,1.0,0.955,0.228,1.0,1.0,1.0,3.26,2.57,0.0,0.976,1.0,6158,768,12.47,19.14
9 +10-K,quantitative_disclosures,backfilled_june,4502,3992,762,16.93,1577.0,4637.0,12451.0,0.338,1.0,1.0,0.878,0.28,0.778,1.0,1.0,7.6,6.6,0.0,0.933,1.0,110,41,37.27,6.74
10 +10-K,quantitative_disclosures,october,22374,18040,2446,10.93,466.0,3101.0,9492.0,0.497,1.0,1.0,0.919,0.279,0.998,1.0,1.0,4.94,4.63,0.0,0.951,1.0,421,135,32.07,9.2
11 +10-K,risk_factors,backfilled_june,5605,5580,5432,96.91,21076.0,57055.0,120678.0,0.048,0.111,0.304,0.163,0.109,0.068,0.197,0.614,86.03,86.64,0.0,0.269,0.188,495,462,93.33,10.35
12 +10-K,risk_factors,october,23553,23361,22795,96.78,23359.0,63934.0,162644.0,0.036,0.098,0.272,0.148,0.095,0.048,0.171,0.566,88.38,87.73,0.0,0.246,0.173,2302,2139,92.92,11.78
13 +10-Q,controls_and_procedures,backfilled_june,3567,797,67,1.88,949.0,1537.0,2991.0,1.0,1.0,1.0,0.988,0.44,1.0,1.0,1.0,0.59,0.5,0.0,0.981,1.0,338,5,1.48,6.38
14 +10-Q,controls_and_procedures,october,88826,20116,1660,1.87,987.0,1718.0,3587.0,1.0,1.0,1.0,0.986,0.142,1.0,1.0,1.0,1.07,0.99,0.0,0.96,1.0,6744,222,3.29,5.8
15 +10-Q,financial_statements,backfilled_june,3594,3507,3442,95.77,27539.0,64649.0,126238.0,0.049,0.1,0.246,0.152,0.097,0.091,0.231,0.666,90.35,84.75,0.0,0.299,0.226,1183,1128,95.35,10.06
16 +10-Q,financial_statements,october,88288,86599,85529,96.88,31134.0,64450.0,123134.0,0.053,0.106,0.224,0.146,0.104,0.097,0.239,0.653,92.49,83.7,0.0,0.307,0.235,28976,27294,94.2,9.68
17 +10-Q,full_document,october,241,241,241,100.0,118565.0,348536.0,823174.0,0.008,0.019,0.068,0.03,0.019,0.026,0.143,0.347,100.0,100.0,0.0,0.061,0.046,107,107,100.0,2.48
18 +10-Q,legal_proceedings,backfilled_june,3024,956,97,3.21,190.0,414.0,3756.0,1.0,1.0,1.0,0.978,0.335,1.0,1.0,1.0,1.03,1.19,0.0,0.971,1.0,20,0,0.0,23.58
19 +10-Q,legal_proceedings,october,63974,19087,2122,3.32,235.0,526.0,3853.0,1.0,1.0,1.0,0.976,0.245,1.0,1.0,1.0,1.69,0.86,0.0,0.98,1.0,825,92,11.15,14.88
20 +10-Q,md_and_a,backfilled_june,3606,3599,3370,93.46,24110.0,47690.0,90435.0,0.048,0.125,0.292,0.19,0.119,0.065,0.223,0.724,85.55,80.45,0.0,0.28,0.204,3791,3572,94.22,6.82
21 +10-Q,md_and_a,october,87765,86670,82909,94.47,21373.0,47480.0,95926.0,0.057,0.132,0.31,0.192,0.126,0.087,0.241,0.732,84.65,79.61,0.0,0.28,0.212,95514,85643,89.67,8.33
22 +10-Q,quantitative_disclosures,backfilled_june,3394,1662,105,3.09,191.0,763.0,5332.0,1.0,1.0,1.0,0.979,0.258,1.0,1.0,1.0,1.47,0.29,0.0,0.989,1.0,51,0,0.0,36.8
23 +10-Q,quantitative_disclosures,october,79744,45058,3934,4.93,254.0,1536.0,6287.0,1.0,1.0,1.0,0.968,0.361,1.0,1.0,1.0,1.02,0.75,0.0,0.986,1.0,757,62,8.19,30.83
24 +10-Q,risk_factors,backfilled_june,3344,1200,550,16.45,157.0,461.0,52830.0,0.132,1.0,1.0,0.862,0.097,0.235,1.0,1.0,13.04,12.74,0.0,0.701,1.0,150,58,38.67,11.06
25 +10-Q,risk_factors,october,69216,32626,16040,23.17,199.0,1051.0,96420.0,0.065,1.0,1.0,0.804,0.077,0.107,1.0,1.0,17.91,18.04,0.0,0.662,1.0,4270,1836,43.0,10.51
26 +10-Q,unregistered_sales,backfilled_june,3344,2881,259,7.75,2369.0,4027.0,8314.0,1.0,1.0,1.0,0.942,0.262,1.0,1.0,1.0,3.35,3.77,0.0,0.976,1.0,284,6,2.11,34.3
27 +10-Q,unregistered_sales,october,76866,58986,5246,6.82,2247.0,3880.0,7558.0,1.0,1.0,1.0,0.948,0.189,1.0,1.0,1.0,4.32,3.26,0.0,0.985,1.0,9251,535,5.78,9.25
28 +8-K,full_body,backfilled_june,103927,54360,9952,9.58,2502.0,3963.0,8844.0,1.0,1.0,1.0,0.935,0.315,1.0,1.0,1.0,3.46,1.14,0.0,0.982,1.0,18326,1051,5.74,53.74
29 +8-K,full_body,october,296674,150082,25393,8.56,2551.0,3777.0,8403.0,1.0,1.0,1.0,0.941,0.3,1.0,1.0,1.0,3.27,1.14,0.0,0.984,1.0,56268,3233,5.75,50.42
added results/focus/focus_coverage_calls_only_by_form_item.csv +16 −0
@@ -0,0 +1,16 @@
1 +form,item,n,gate_pass,over_9000_chars,pct_over_9000,chars_p10,chars_p50,chars_p90,shown_p10,shown_p50,shown_p90,shown_mean,shown_p50_over_budget,last_p10,last_p50,last_p90,pct_shown_lt_25,pct_last_lt_50,pct_msg_truncated_14k,hits_shown_mean,hits_shown_p50,mentions,mentions_from_lt25,pct_mentions_from_lt25,pct_capex_vocab_shown_over_budget
2 +10-K,business,29118,29118,23740,81.53,5692.0,37414.0,100781.0,0.053,0.156,1.0,0.317,0.127,0.076,0.257,1.0,67.0,68.72,0.0,0.423,0.261,30492,26256,86.11,10.03
3 +10-K,full_body,1229,1229,1229,100.0,165620.0,304421.0,517577.0,0.011,0.021,0.043,0.026,0.021,0.028,0.064,0.186,99.92,99.02,0.0,0.056,0.041,824,824,100.0,1.72
4 +10-K,md_and_a,28050,28050,27175,96.88,32291.0,65376.0,124448.0,0.042,0.091,0.203,0.133,0.089,0.062,0.157,0.484,93.31,90.6,0.0,0.214,0.156,39099,37824,96.74,5.79
5 +10-K,properties,25940,25940,1584,6.11,543.0,1329.0,5223.0,1.0,1.0,1.0,0.953,0.216,1.0,1.0,1.0,3.49,2.9,0.0,0.975,1.0,7879,891,11.31,14.03
6 +10-K,quantitative_disclosures,22032,22032,3204,14.54,1458.0,3906.0,11849.0,0.363,1.0,1.0,0.893,0.279,0.867,1.0,1.0,6.57,6.05,0.0,0.947,1.0,531,176,33.15,8.48
7 +10-K,risk_factors,28941,28941,28227,97.53,23748.0,62854.0,156605.0,0.038,0.1,0.268,0.144,0.098,0.051,0.175,0.554,88.59,88.17,0.0,0.25,0.176,2797,2601,92.99,11.49
8 +10-Q,controls_and_procedures,20913,20913,1670,7.99,1621.0,2840.0,7778.0,1.0,1.0,1.0,0.939,0.137,1.0,1.0,1.0,4.64,4.25,0.0,0.961,1.0,7082,227,3.21,5.81
9 +10-Q,financial_statements,90106,90106,88971,98.74,33182.0,65241.0,123919.0,0.052,0.105,0.212,0.13,0.104,0.096,0.234,0.594,94.23,85.39,0.0,0.307,0.234,30159,28422,94.24,9.69
10 +10-Q,full_document,241,241,241,100.0,118565.0,348536.0,823174.0,0.008,0.019,0.068,0.03,0.019,0.026,0.143,0.347,100.0,100.0,0.0,0.061,0.046,107,107,100.0,2.48
11 +10-Q,legal_proceedings,20031,20031,2161,10.79,438.0,1940.0,9517.0,0.49,1.0,1.0,0.919,0.242,1.0,1.0,1.0,5.57,2.91,0.0,0.98,1.0,845,92,10.89,15.22
12 +10-Q,md_and_a,90269,90269,86279,95.58,22824.0,47840.0,96131.0,0.057,0.13,0.293,0.182,0.126,0.086,0.237,0.694,85.72,80.62,0.0,0.28,0.211,99305,89215,89.84,8.26
13 +10-Q,quantitative_disclosures,46720,46720,4024,8.61,990.0,3112.0,8289.0,1.0,1.0,1.0,0.945,0.359,1.0,1.0,1.0,1.85,1.3,0.0,0.986,1.0,808,62,7.67,30.95
14 +10-Q,risk_factors,33826,33826,16505,48.79,1110.0,8463.0,170977.0,0.036,1.0,1.0,0.586,0.078,0.052,1.0,1.0,37.94,38.13,0.0,0.664,1.0,4420,1894,42.85,10.52
15 +10-Q,unregistered_sales,61867,61867,5236,8.46,2671.0,4220.0,8312.0,1.0,1.0,1.0,0.934,0.184,1.0,1.0,1.0,5.54,4.19,0.0,0.984,1.0,9535,541,5.67,10.67
16 +8-K,full_body,204442,204442,34140,16.7,2919.0,4915.0,11170.0,0.338,1.0,1.0,0.883,0.296,0.887,1.0,1.0,6.51,2.22,0.0,0.984,1.0,74594,4284,5.74,51.36
added results/focus/manifest.json +58 −0
@@ -0,0 +1,58 @@
1 +{
2 + "package": "focus",
3 + "script": "/Users/simon-pierreboucher/firc0001_review/scripts/a05_focus_coverage.py",
4 + "script_sha256": "fa903dc8721c69533f3d4cf34315c9c047d408699ff7d6284e95aa35b1eb8665",
5 + "started": "2026-11-05T14:31:09",
6 + "ended": "2026-11-05T14:40:54",
7 + "wall_seconds": 584.9,
8 + "node": "m3u96b",
9 + "python": "3.12.15",
10 + "duckdb": "2.0.0",
11 + "threads": 4,
12 + "memory_limit": "24GB",
13 + "seed": 20261105,
14 + "databases": {
15 + "/Users/simon-pierreboucher/UQO_RESEARCH_DB/project-db/data/db/spid.duckdb": {
16 + "bytes": 3155701760,
17 + "mtime": "2026-10-28T12:21:11.091389"
18 + },
19 + "/Users/simon-pierreboucher/UQO_RESEARCH_DB/data/duckdb/edgar_research.duckdb": {
20 + "bytes": 73500995584,
21 + "mtime": "2026-10-27T21:34:46.297884"
22 + }
23 + },
24 + "read_only": true,
25 + "row_counts": {
26 + "focus_coverage_by_form_item.csv": 15,
27 + "focus_coverage_by_form.csv": 3,
28 + "focus_coverage_by_form_item_run.csv": 28,
29 + "focus_coverage_calls_only_by_form_item.csv": 15,
30 + "mentions_vs_length_by_item.csv": 111,
31 + "shown_fraction_bins.csv": 9,
32 + "mdna_10k_short_by_year.csv": 17
33 + },
34 + "notes": {
35 + "sections_streamed": 1123098,
36 + "chars_streamed": 23372396141,
37 + "replica_mismatches": 0,
38 + "gate_py_pass": 703737,
39 + "gate_py_pass_by_form": [
40 + [
41 + "10-K",
42 + 135310,
43 + 143704
44 + ],
45 + [
46 + "10-Q",
47 + 363985,
48 + 578793
49 + ],
50 + [
51 + "8-K",
52 + 204442,
53 + 400601
54 + ]
55 + ],
56 + "gate_fail_with_mentions": 0
57 + }
58 +}
\ No newline at end of file
added results/focus/mdna_10k_short_by_year.csv +18 −0
@@ -0,0 +1,18 @@
1 +yr,mdna_sections,lt30_words,pct_lt30,lt300_incorporated_by_ref,not_ledgered,median_words
2 +2010,1120,18,1.61,39,18,9990.0
3 +2011,1185,11,0.93,43,11,10348.0
4 +2012,1239,10,0.81,41,10,10555.0
5 +2013,1297,10,0.77,39,10,10655.0
6 +2014,1375,6,0.44,34,6,11029.0
7 +2015,1461,8,0.55,33,8,10966.0
8 +2016,1522,8,0.53,26,8,11044.0
9 +2017,1567,8,0.51,27,8,11191.0
10 +2018,1652,6,0.36,25,6,11155.0
11 +2019,1724,6,0.35,23,6,10555.0
12 +2020,1841,6,0.33,19,6,9819.0
13 +2021,2017,8,0.4,16,8,9981.0
14 +2022,2147,9,0.42,14,9,9365.0
15 +2023,2185,11,0.5,13,11,9057.0
16 +2024,2229,13,0.58,12,13,8677.0
17 +2025,2299,14,0.61,12,14,8550.0
18 +2026,2228,17,0.76,14,17,8600.0
added results/focus/mentions_vs_length_by_item.csv +112 −0
@@ -0,0 +1,112 @@
1 +form,item,len_bin,n,calls,mean_mentions,mean_mentions_per_call,productive_pct,shown_mean,shown_chars_mean,mentions_per_10k_shown_chars
2 +10-K,business,a<3k,568,437,0.0158,0.0206,1.58,1.0,1814.0,0.0873
3 +10-K,business,b3-6k,2824,2801,0.0602,0.0607,3.33,1.0,4706.0,0.1279
4 +10-K,business,c6-9k,2145,2140,0.1552,0.1556,6.81,1.0,7259.0,0.2139
5 +10-K,business,d9-12k,787,784,0.3926,0.3941,14.99,0.529,5423.0,0.7239
6 +10-K,business,e12-20k,1839,1835,0.8836,0.8856,33.44,0.356,5722.0,1.5443
7 +10-K,business,f20-40k,7522,7521,1.1922,1.1924,40.83,0.206,6003.0,1.986
8 +10-K,business,g40-80k,8794,8794,1.3041,1.3041,45.92,0.111,6052.0,2.1547
9 +10-K,business,h>=80k,4806,4806,1.5834,1.5834,51.54,0.053,6017.0,2.6318
10 +10-K,full_body,c6-9k,1,0,0.0,,0.0,1.0,6878.0,0.0
11 +10-K,full_body,e12-20k,1,1,0.0,0.0,0.0,0.083,1251.0,0.0
12 +10-K,full_body,f20-40k,5,5,0.2,0.2,20.0,0.213,6828.0,0.2929
13 +10-K,full_body,g40-80k,28,28,1.0714,1.0714,42.86,0.098,5786.0,1.8518
14 +10-K,full_body,h>=80k,1195,1195,0.6636,0.6636,25.36,0.023,6476.0,1.0248
15 +10-K,md_and_a,a<3k,1184,328,0.0186,0.0671,1.01,1.0,825.0,0.2253
16 +10-K,md_and_a,b3-6k,332,319,0.4096,0.4263,16.57,1.0,4593.0,0.8919
17 +10-K,md_and_a,c6-9k,228,228,0.75,0.75,28.95,1.0,7220.0,1.0388
18 +10-K,md_and_a,d9-12k,148,148,0.6689,0.6689,28.38,0.477,4983.0,1.3423
19 +10-K,md_and_a,e12-20k,409,409,1.0782,1.0782,43.03,0.354,5681.0,1.898
20 +10-K,md_and_a,f20-40k,3147,3147,1.5113,1.5113,55.2,0.195,6113.0,2.4722
21 +10-K,md_and_a,g40-80k,14194,14194,1.5696,1.5696,55.5,0.106,6092.0,2.5766
22 +10-K,md_and_a,h>=80k,9277,9277,1.2067,1.2067,46.56,0.056,6118.0,1.9723
23 +10-K,properties,a<3k,23372,21123,0.1518,0.168,9.75,1.0,1206.0,1.2592
24 +10-K,properties,b3-6k,2586,2547,0.6906,0.7012,27.57,1.0,4050.0,1.7054
25 +10-K,properties,c6-9k,686,686,1.4752,1.4752,43.88,1.0,7269.0,2.0295
26 +10-K,properties,d9-12k,346,346,0.7486,0.7486,24.86,0.383,3969.0,1.8858
27 +10-K,properties,e12-20k,421,413,0.9382,0.9564,34.68,0.3,4535.0,2.0687
28 +10-K,properties,f20-40k,434,434,1.1037,1.1037,43.32,0.212,5680.0,1.9432
29 +10-K,properties,g40-80k,214,214,1.229,1.229,52.8,0.113,6045.0,2.0332
30 +10-K,properties,h>=80k,177,177,0.7684,0.7684,32.2,0.041,5982.0,1.2845
31 +10-K,quantitative_disclosures,a<3k,11994,7807,0.0043,0.0067,0.37,1.0,1545.0,0.0281
32 +10-K,quantitative_disclosures,b3-6k,8604,8035,0.0191,0.0204,1.28,1.0,4258.0,0.0448
33 +10-K,quantitative_disclosures,c6-9k,3070,2986,0.0267,0.0275,1.69,1.0,7243.0,0.0369
34 +10-K,quantitative_disclosures,d9-12k,1035,1033,0.0309,0.031,1.64,0.38,3862.0,0.0801
35 +10-K,quantitative_disclosures,e12-20k,874,872,0.0275,0.0275,1.49,0.351,5305.0,0.0518
36 +10-K,quantitative_disclosures,f20-40k,367,367,0.0245,0.0245,1.91,0.258,6510.0,0.0377
37 +10-K,quantitative_disclosures,g40-80k,92,92,0.3804,0.3804,19.57,0.114,6571.0,0.579
38 +10-K,quantitative_disclosures,h>=80k,840,840,0.1583,0.1583,11.19,0.049,7130.0,0.2221
39 +10-K,risk_factors,a<3k,461,257,0.0217,0.0389,2.17,1.0,1318.0,0.1646
40 +10-K,risk_factors,b3-6k,264,251,0.0379,0.0398,2.65,1.0,4409.0,0.0859
41 +10-K,risk_factors,c6-9k,206,206,0.0146,0.0146,0.97,1.0,7203.0,0.0202
42 +10-K,risk_factors,d9-12k,213,213,0.1127,0.1127,7.51,0.45,4777.0,0.2359
43 +10-K,risk_factors,e12-20k,1217,1217,0.1085,0.1085,6.0,0.364,5862.0,0.185
44 +10-K,risk_factors,f20-40k,5294,5294,0.0852,0.0852,4.53,0.209,6221.0,0.1369
45 +10-K,risk_factors,g40-80k,11571,11571,0.0924,0.0924,5.32,0.112,6379.0,0.1448
46 +10-K,risk_factors,h>=80k,9932,9932,0.1106,0.1106,5.11,0.052,6371.0,0.1735
47 +10-Q,controls_and_procedures,a<3k,78712,11221,0.062,0.4348,5.28,1.0,1645.0,0.3768
48 +10-Q,controls_and_procedures,b3-6k,10287,6460,0.1367,0.2176,9.68,1.0,3912.0,0.3494
49 +10-Q,controls_and_procedures,c6-9k,1667,1562,0.1746,0.1863,10.5,1.0,7207.0,0.2422
50 +10-Q,controls_and_procedures,d9-12k,540,516,0.187,0.1957,11.67,0.457,4718.0,0.3964
51 +10-Q,controls_and_procedures,e12-20k,300,268,0.6033,0.6754,18.0,0.367,5439.0,1.1092
52 +10-Q,controls_and_procedures,f20-40k,84,83,0.2143,0.2169,14.29,0.2,5176.0,0.414
53 +10-Q,controls_and_procedures,g40-80k,175,175,0.3829,0.3829,30.29,0.115,6940.0,0.5517
54 +10-Q,controls_and_procedures,h>=80k,628,628,0.2213,0.2213,15.29,0.048,6806.0,0.3252
55 +10-Q,financial_statements,a<3k,2293,555,0.0279,0.1153,1.61,1.0,869.0,0.3211
56 +10-Q,financial_statements,b3-6k,403,368,0.2258,0.2473,11.91,1.0,4313.0,0.5236
57 +10-Q,financial_statements,c6-9k,215,212,0.3442,0.3491,19.07,1.0,7290.0,0.4721
58 +10-Q,financial_statements,d9-12k,228,228,0.2412,0.2412,15.35,0.399,4167.0,0.5788
59 +10-Q,financial_statements,e12-20k,1102,1102,0.4156,0.4156,24.41,0.339,5608.0,0.7411
60 +10-Q,financial_statements,f20-40k,12758,12758,0.4176,0.4176,26.98,0.216,6776.0,0.6163
61 +10-Q,financial_statements,g40-80k,44583,44583,0.3653,0.3653,22.95,0.121,6922.0,0.5277
62 +10-Q,financial_statements,h>=80k,30300,30300,0.2576,0.2576,16.19,0.063,6899.0,0.3733
63 +10-Q,full_document,g40-80k,8,8,1.375,1.375,75.0,0.106,6613.0,2.0794
64 +10-Q,full_document,h>=80k,233,233,0.412,0.412,13.73,0.028,6715.0,0.6136
65 +10-Q,legal_proceedings,a<3k,58328,12572,0.005,0.023,0.45,1.0,697.0,0.0711
66 +10-Q,legal_proceedings,b3-6k,4790,3799,0.0436,0.055,3.09,1.0,4215.0,0.1035
67 +10-Q,legal_proceedings,c6-9k,1660,1510,0.0705,0.0775,4.7,1.0,7300.0,0.0965
68 +10-Q,legal_proceedings,d9-12k,798,764,0.084,0.0877,6.39,0.324,3352.0,0.2505
69 +10-Q,legal_proceedings,e12-20k,759,735,0.0883,0.0912,4.74,0.302,4505.0,0.1959
70 +10-Q,legal_proceedings,f20-40k,328,328,0.122,0.122,7.93,0.25,6501.0,0.1876
71 +10-Q,legal_proceedings,g40-80k,108,108,0.0926,0.0926,8.33,0.116,6063.0,0.1527
72 +10-Q,legal_proceedings,h>=80k,227,227,0.2026,0.2026,12.78,0.052,6894.0,0.2939
73 +10-Q,md_and_a,a<3k,3162,2149,0.0927,0.1363,7.37,1.0,1353.0,0.6848
74 +10-Q,md_and_a,b3-6k,1474,1405,0.2252,0.2363,12.96,1.0,4255.0,0.5294
75 +10-Q,md_and_a,c6-9k,456,436,0.4781,0.5,26.54,1.0,7363.0,0.6493
76 +10-Q,md_and_a,d9-12k,406,406,0.6872,0.6872,30.05,0.491,5144.0,1.3358
77 +10-Q,md_and_a,e12-20k,2696,2696,1.079,1.079,46.88,0.364,6061.0,1.7803
78 +10-Q,md_and_a,f20-40k,25258,25258,1.3259,1.3259,51.16,0.21,6401.0,2.0716
79 +10-Q,md_and_a,g40-80k,43048,43048,1.1532,1.1532,45.35,0.118,6330.0,1.8219
80 +10-Q,md_and_a,h>=80k,14871,14871,0.8165,0.8165,36.41,0.058,6250.0,1.3064
81 +10-Q,quantitative_disclosures,a<3k,57596,22443,0.004,0.0104,0.36,1.0,1009.0,0.0401
82 +10-Q,quantitative_disclosures,b3-6k,16617,15452,0.0205,0.0221,1.46,1.0,4204.0,0.0488
83 +10-Q,quantitative_disclosures,c6-9k,4886,4801,0.0244,0.0248,1.58,1.0,7245.0,0.0336
84 +10-Q,quantitative_disclosures,d9-12k,1866,1857,0.0139,0.014,1.18,0.392,4006.0,0.0348
85 +10-Q,quantitative_disclosures,e12-20k,1513,1507,0.0145,0.0146,0.73,0.37,5552.0,0.0262
86 +10-Q,quantitative_disclosures,f20-40k,527,527,0.0266,0.0266,1.52,0.277,6953.0,0.0382
87 +10-Q,quantitative_disclosures,g40-80k,66,66,0.3939,0.3939,15.15,0.124,6607.0,0.5963
88 +10-Q,quantitative_disclosures,h>=80k,67,67,0.403,0.403,19.4,0.053,7043.0,0.5722
89 +10-Q,risk_factors,a<3k,45276,8173,0.0106,0.0586,0.96,1.0,703.0,0.1504
90 +10-Q,risk_factors,b3-6k,7464,6079,0.1101,0.1352,9.11,1.0,4262.0,0.2584
91 +10-Q,risk_factors,c6-9k,3229,3068,0.1963,0.2066,14.21,1.0,7322.0,0.2682
92 +10-Q,risk_factors,d9-12k,1800,1750,0.1517,0.156,12.72,0.44,4562.0,0.3324
93 +10-Q,risk_factors,e12-20k,1908,1886,0.173,0.175,14.52,0.373,5563.0,0.3109
94 +10-Q,risk_factors,f20-40k,1526,1514,0.1664,0.1678,11.53,0.233,6452.0,0.258
95 +10-Q,risk_factors,g40-80k,3007,3006,0.1217,0.1218,7.15,0.106,6274.0,0.194
96 +10-Q,risk_factors,h>=80k,8350,8350,0.1511,0.1511,6.29,0.046,6452.0,0.2343
97 +10-Q,unregistered_sales,a<3k,21342,10524,0.0209,0.0424,1.97,1.0,2333.0,0.0896
98 +10-Q,unregistered_sales,b3-6k,44577,37930,0.1305,0.1533,10.24,1.0,4186.0,0.3117
99 +10-Q,unregistered_sales,c6-9k,8785,8176,0.266,0.2858,17.3,1.0,7117.0,0.3738
100 +10-Q,unregistered_sales,d9-12k,2259,2096,0.1284,0.1384,7.97,0.315,3211.0,0.3998
101 +10-Q,unregistered_sales,e12-20k,1847,1774,0.1153,0.1201,6.82,0.244,3558.0,0.3241
102 +10-Q,unregistered_sales,f20-40k,569,538,0.2074,0.2193,11.42,0.187,4810.0,0.4311
103 +10-Q,unregistered_sales,g40-80k,260,260,0.6654,0.6654,27.31,0.113,6399.0,1.0398
104 +10-Q,unregistered_sales,h>=80k,571,569,0.2487,0.2496,16.11,0.055,6777.0,0.3669
105 +8-K,full_body,a<3k,91457,23244,0.0649,0.2552,6.21,1.0,2546.0,0.2547
106 +8-K,full_body,b3-6k,225916,106791,0.1281,0.2709,11.4,1.0,4063.0,0.3152
107 +8-K,full_body,c6-9k,47878,40262,0.4634,0.5511,37.21,1.0,7229.0,0.641
108 +8-K,full_body,d9-12k,17948,17023,0.3668,0.3868,27.7,0.348,3565.0,1.0289
109 +8-K,full_body,e12-20k,12599,12331,0.5425,0.5543,38.92,0.313,4581.0,1.1842
110 +8-K,full_body,f20-40k,3859,3847,0.8785,0.8812,54.6,0.24,6209.0,1.4148
111 +8-K,full_body,g40-80k,759,759,0.7457,0.7457,44.53,0.136,6933.0,1.0756
112 +8-K,full_body,h>=80k,185,185,0.8919,0.8919,45.95,0.048,6668.0,1.3375
added results/focus/shown_fraction_bins.csv +10 −0
@@ -0,0 +1,10 @@
1 +form,bin,n,calls,with_mentions,mentions
2 +10-K,a>=0.9,58527,50151,3900,7509
3 +10-K,b0.25-0.9,10276,10258,2136,5541
4 +10-K,c<0.25,74901,74901,24841,68572
5 +10-Q,a>=0.9,373347,158886,15093,19490
6 +10-Q,b0.25-0.9,23708,23354,5810,12211
7 +10-Q,c<0.25,181738,181733,54802,120560
8 +8-K,a>=0.9,365776,170302,49247,57058
9 +8-K,b0.25-0.9,21524,20839,9537,13252
10 +8-K,c<0.25,13301,13301,2864,4284
added results/focus/stats_keys.json +18 −0
@@ -0,0 +1,18 @@
1 +{
2 + "ledger_10k_mdna_median_words": 9905.0,
3 + "ledger_10k_mdna_median_chars": 64194.0,
4 + "ledger_10k_mdna_n": 28919,
5 + "ledger_10k_mdna_shown_p50": 0.09323377723039027,
6 + "ledger_10k_mdna_last_p50": 0.16183513990420972,
7 + "ledger_10k_mdna_pct_shown_lt_25": 90.50451260417027,
8 + "ledger_sections_over_9000_chars": 326095,
9 + "ledger_sections": 1123098,
10 + "calls_over_9000_chars": 324386,
11 + "calls": 703725,
12 + "mentions_from_sections_shown_lt_25": 193416,
13 + "mentions_total": 308477,
14 + "msg_truncated_14k": 0,
15 + "gate_py_pass_total": 703737,
16 + "gate_duckdb_pass_total_N1": 703737,
17 + "mean_shown_frac_over_budget": 0.15934812827563005
18 +}
\ No newline at end of file
19
Menu

Theme