EigenRep, Sector Reputation: 3-Version Comparison

12 sample accounts · global + 10 sectors · percentile 0–1000  |  OLD (2026-05-28) → NEW (2026-06-03) → IMPROVED (edge-weighting + whitening)  |  generated for review · not in production  |  §8–§13 added 2026-06-09: v2 export · whitened-score trap · "v2 minus whitening" · "separation is in the raw" · inverse-global weighting · log-raw clip vs unclip · final solution (Approach 2 + log-raw leaderboard)  |  §14 added 2026-06-10: v2.1, purity edge-weighting + un-pinned elite band  |  §15 (2026-06-10): v2.1 shipped to production & verified against this report  |  §16 (2026-07-18): v2.3, content gate + purity-ratio specialty lens + decibel scale, was live (June-graph build)  |  §17 (2026-07-18/19): adversarial audit & hardening, org/Fame/seed-badge · ALF backstop + corroboration · media detector · 6-axis scorecard all-green  |  §CURRENT (2026-07-22): full-graph rebuild (10.45M accts, 76.4M edges) supersedes all the above — see the banner & comparison.html

CURRENT BUILD · 2026-07-22 · full-graph rebuild. Everything below traces the June evolution on the 6.75M-account / 39.6M-edge graph. The pipeline has since been rebuilt on the near-complete re-crawl (10.45M accounts, 76.4M edges, ~84% S1). Two things changed: (1) the June graph shipped no LLM classification, so the cosine gate / ALF / specialty-lens / endorsement stack below was a hand-built substitute for one; the new graph ships a tweet-based LLM (DeepSeek v3.2, bio + ~20 tweets, 120,855 S1 accounts), which becomes the content gate. (2) The architecture consolidates to tweet-LLM gate + ρ score-shaping + guarded ALF recall + org filter + decibel, cosine and the endorsement tier are retired; ρ and ALF are kept as orthogonal graph-signal complements. Global reputation is structurally identical (top-25 same order, 319 accounts ≥900 on both graphs). Current files: eigentrust-v2.5-newgraph-scored.csv (10.45M rows, same 53-col schema), skill_graph_radars_newgraph.csv (55,061 radars). The plain-language walkthrough is comparison.html.

Bottom line (June). Deeper S1 crawl is good for us, what it exposed is a scoring problem, and that problem is solved offline. On the published percentile scores, the 10×-deeper 2026-06-03 run made sector pollution look worse (more accounts top-1% in every sector), but that darkening is a measurement artifact of topic-blind trust propagation + rank scaling, not a reason to crawl less: §6 shows deeper crawl is a prerequisite and amplifier for the fix, its benefit was still climbing at 43% coverage, so keep crawling. The line of inquiry (§1→§14) lands on the June recommendation, §14's v2.1, purity edge-weighting + Approach-2 source down-weight + un-pinned scale: sector↔global correlation 0.54 → 0.40 with every sector improved, leaderboards intact, hubs differentiated. (The original 06-04 conclusion here proposed edge-weighting + whitening, 0.699 → 0.065, the whitening half later broke at full-population scale, §8.) Update (2026-06-10): v2.1 shipped to production (eigentrust-v2.1-downweight-purity-logknee.csv), §15 verifies the export matches this report.

Update · 2026-06-09. A production v2 export has since landed (eigentrust-v2-lambda-(0.1, 0.5, 0.8)). It ships the whitening from this report as a per-account sector score, but applied to the full 6.75M population without a reputation floor, it breaks: zero-reputation accounts (a Spanish train company, etc.) top the "AI" score while Sam Altman sinks to the bottom. The whitening here was validated on a curated dozen who all have real reputation; v2 is the missing other half of that story. See §8 for the evidence and the fix.

Index , the report is chronological; early sections are kept as history. For the June recommendation jump to §14 (all of it superseded by the 2026-07-22 rebuild, see banner).

§1  What this compares · 2026-06-04context§2  Overall stats per version · 2026-06-04whitening numbers superseded, §8§3  Per-account heatmaps · 2026-06-04historical baseline§4  How to read it, two accounts · 2026-06-04historical§5  Log-raw scaling (de-saturate the top) · 2026-06-04core idea, feeds §12–§14§6  Does crawling more S1 help? · 2026-06-04still valid, keep crawling§7  Takeaways & recommendation · 2026-06-04superseded, see §13/§14§8  v2 lands, and a whitening trap · 2026-06-09finding stands
§9  v2 minus whitening, edge-weighting + log-raw · 2026-06-09finding stands§10  The separation is in the raw, not the rank · 2026-06-09finding stands§11  Inverse-global weighting & the iron law · 2026-06-09finding stands, Approach 2 origin§12  Can log-raw rescue it?, clip vs. unclip · 2026-06-09finding stands§13  Final solution, the leaderboard scoring · 2026-06-09final v2, upgraded by §14§14  Beyond the final, purity edge-weighting + un-pinned scale (v2.1) · 2026-06-10June rec · was live in prod§15  Production verification, v2.1 export matches · 2026-06-10verified · June prod

1What this compares

Three states of the per-sector reputation, for the same 12 accounts:

How the versions evolved after this comparison was written: the production v2 export (2026-06-08, §8) shipped edge-weighting + λ-whitening, its whitened _score broke at population scale; v2 minus whitening (§9) kept edge-weighting + log-raw; Approach 2 (§11–§13) added the famous-source down-weight and became the §13 final; v2.1 (§14, current) upgrades the edge weight with a purity factor (strength × purity) and un-pins the scale's top band. Every later variant runs on the same NEW graph, only the scoring changes. Full map with statuses: the index above.

Metrics (lower = healthier sectors):

The data behind each version

The graph grew sharply between runs; the seed set did not change. IMPROVED is computed on the NEW graph, so it shares NEW's size, only the sector scores are recomputed.

versionaccounts (nodes)follow-edgesscoredS1 crawled (trust-routing)
OLD, 2026-05-281,138,9544,307,734955,5754,991 / 120,551  (4.1%)
NEW, 2026-06-036,752,47639,593,2046,752,45351,552 / 120,551  (42.8%)
IMPROVEDsame graph as NEW, sector scores recomputed (edge-weighting + whitening); global unchanged. Historical, whitening later broke at scale (§8)
v2 export, 2026-06-08same graph, production export (eigentrust-v2-lambda-*): edge-weighting + λ-whitening. Percentile usable; whitened _score broken (§8)
Approach 2, §13 finalsame graph, edge-weighting + famous-source down-weight, scored log-raw (clipped). Offline, validated on all 10 sectors (§11–§13)
v2.1 (purity edge-weighting), §14 currentsame graph, purity edge-weighting (strength × purity) + source down-weight, un-pinned scale. Offline, validated on all 10 sectors (§14)

Seeds per sector , verified identical across OLD and NEW (same 318 seed handles & per-sector counts; the seed set was frozen between these runs, only the crawl grew)

ai/mlfintechroboticsspacebiotechclimatequantumnucleardefensesemimaster*
4831293126222726222291

* master = sector-agnostic core anchors (used only in the global run). 318 unique s0 seeds total, some belong to multiple sectors, so the row sums to more than 318. These hand-picked anchors are the only "ground truth" the whole system is built on, which is why seed quality matters so much. Verified: OLD and NEW share the exact same 318 seeds (0 differences). An earlier pre-promotion run (2026-04-23, deep archive) used a smaller 233-seed set under a ≤2,000-following cutoff, the jump to 318 happened before both versions shown here.

The proposed fixes, in plain terms

All tentative, none are in production. They split into two kinds of change, which matters a lot for cost and risk:

1 · Edge-weighting, makes reputation topic-aware. (algorithm change · needs re-run) outcome: survived, upgraded with a purity factor in §14

The problem: a "follow" carries no topic. When the system spreads space reputation outward, it leaks down every follow, including totally off-topic ones, so space-reputation ends up piling onto whoever is generally popular, not onto genuinely space-connected people.

What it does: it makes each follow count more when it points to someone the space seeds (a hand-picked set of real space experts) actually follow, and less when it doesn't. Space-reputation then travels along space-relevant connections instead of spilling everywhere. (In short: a follow only carries "space trust" to the degree it looks like a space-world follow.)

2 · Whitening, removes the "generally-famous" inflation. (post-hoc transform · no re-run) outcome: dropped, breaks at full-population scale (§8)

The problem: all 10 of an account's sector scores share one big common ingredient, "how well-known are you overall." That single ingredient is enough to make anyone prominent look top-tier in every sector at once (that's the dark-everywhere pattern below).

What it does: it measures that shared "overall prominence" component and subtracts it out of all 10 sectors, leaving only what's distinctive about each account, the sectors where they genuinely stand out beyond their general fame. A real space specialist rises to the top; a generic big name flattens out across the board. (In short: grade on a curve so "famous everywhere" cancels and only true specialties remain.)

Why it was dropped, it makes the scores worse, not better: subtracting "overall prominence" also subtracts reputation itself. On the curated 12-account sample it looked great; on the full 6.75M population (§8) it inverted the ranking, zero-reputation junk pinned the top of the "AI" score (a Spanish train operator at 1000) while Sam Altman sank to the top-35%. The impressive decorrelation numbers (§2, dimmed rows) were bought by destroying the very signal the score exists to publish. Decorrelation has to happen inside the algorithm (fixes 1 & 4), not by rewriting the output.

3 · Residual, a gentler alternative to whitening. (post-hoc transform · no re-run) outcome: dropped with whitening, superseded by the Approach-2 line (§11)

The problem: same as whitening, every sector score is inflated by general prominence, but whitening can over-correct and hand a generic account a fake specialty (the quantum/nuclear artifact).

What it does: instead of removing the whole shared factor, it asks per account "is your space score higher than your overall standing predicts?" and keeps just that surprise. Gentler, leaves a bit more cross-sector overlap than whitening, but it won't invent fake specialties.

Why it was dropped, same disease, milder symptoms: it works the same way (subtract the reputation a model "expects"), so the published number still stops tracking actual reputation, small statistical surprises on near-zero accounts can outrank real authorities, and it does nothing about the actual cause (topic-blind trust propagation). Once the famous-source down-weight (fix 4, §11) delivered the decorrelation inside the algorithm with scores that stay reliable, the whole whitening/residual family was retired (§8).

All three above target correlation ("high in every sector"). A separate, fourth improvement, log-raw scaling (also a post-hoc transform), fixes a different symptom (the top saturating, "everything above 950"); see §5. outcome: survived, backbone of the final scale (§12–§14)

Two layers that joined the stack later (after this section was written, they replaced whitening/residual as the decorrelation layer)

4 · Famous-source down-weight, stops celebrities from re-spraying trust. (algorithm change · needs re-run · introduced in §11, documented in §13) outcome: in the §13 final and v2.1

The problem: edge-weighting (fix 1) filters where trust lands, but says nothing about who is passing it on. A globally-famous account follows thousands of people across every topic, so whatever sector trust reaches them gets re-sprayed topic-blind one hop downstream, re-polluting the sector signal that fix 1 just cleaned.

What it does: scales each account's outgoing trust by f(u) = gref/(gref + global(u)), ≈1 for normal and niche accounts, →0 for the globally famous, with the unspent trust returned to the seeds so the math stays mass-conserving and convergent. Famous accounts keep receiving the reputation they've earned; they just stop routing it. Sector trust then flows through niche domain experts, the best decorrelation lever tested (sector↔global 0.60→0.53, §11), it lifts genuine niche accounts and sinks junk hardest. (In short: celebrities are credible receivers of trust but terrible routers of it, let them receive, stop them routing. Why it must be applied as a non-renormalized outflow factor, and not as a plain edge weight, which would cancel, is the algebra in §11 and the explainer card in §13.)

5 · Un-pinned elite band, makes the top of the scale informative. (post-hoc transform · no re-run · introduced in §14) outcome: in v2.1

The problem: every bounded 0–1000 scale must decide what happens at the very top. The percentile saturates (the whole elite reads ≥950); §13's log-raw clip fixed the bulk but collapsed everything above the 99.9th percentile to a flat 1000, so the ~6 universal hubs read 1000 in every sector, and the #1 quantum specialist was indistinguishable from a generalist hub passing through.

What it does: keeps the chosen scale below the top band, then spreads the formerly-pinned top across 950–1000 by log-magnitude instead of clipping it. The rank order doesn't change, the display just stops throwing away the separation that was in the raw scores all along (§10): @sama reads AI 1000 / quantum 958, @demishassabis biotech 1000 / nuclear 844. Comes in two rank-identical displays, magnitude (reads like §13's log-raw) and rank (reads like a percentile; ≥950 = top 0.5% of the graph), both in §14.

2Overall stats per version

versionsector↔global corrcross-sector corr% top-1% in ALL 10
OLD, 2026-05-28 (archived) baseline0.6890.6030.03%
NEW, 2026-06-03 (June; was live) was live0.6990.6620.26%
edge-weight only kept, evolves into §13/§140.6080.6220.23%
whitening only dropped, breaks scores (§8)0.0830.1720.00%
residual only dropped, breaks scores (§8)0.0870.3930.00%
edge-weight + whitening dropped, breaks scores (§8)0.0650.1380.00%
edge-weight + residual dropped, breaks scores (§8)0.0720.4330.00%
Approach 2, §13 final (edge-wt + source down-weight) §13 final0.5560.5700.12%
v2.1, §14 purity edge-weight (June proposal) §14 (June)0.4960.5170.02%

Green = healthier (more decorrelated), red = more polluted, but a low correlation alone is not health. The dimmed whitening-family rows crush correlation by destroying the reputation signal itself: §8 showed that at full-population scale they rank zero-reputation junk above real authorities, so their impressive-looking numbers are quoted for history, not as candidates. Edge-weighting is the half that survived (it decorrelates without breaking reliability) and evolved into the §13/§14 line. The two bottom rows are the variants that replaced them. Their correlations are higher than whitening's, no reputation information is destroyed buying the number down, but the flagship pathology, accounts top-1% in all 10 sectors, falls 0.26% → 0.12% (§13) → 0.02% (§14 v2.1, 13× cleaner than live, and the ~1,300 accounts that remain are the genuinely-elite-everywhere hubs). On the un-pinned scale the score-level sector↔global reaches 0.40 (§14 corr table).

3Per-account heatmaps

Each cell = that account's percentile (0–1000) in that sector, every table here uses this percentile/rank scale, including IMPROVED (the log-raw scaling in §5 is a separate alternative scale, not applied to these tables). Darker = higher. Watch the visual texture change: NEW becomes a near-solid dark block (everyone high in everything = polluted); IMPROVED breaks into a varied pattern (real per-account profiles). ★ = genuine-space anchor. Note: IMPROVED is the historical 06-04 proposal (its whitening half later broke, §8), the current proposal's heatmaps are in §14.

01000 ·  GLOBAL column separated at left (unchanged by the improvements).

OLD, 2026-05-28

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata989962971940998992975966964977938
@WazzCrypto915852986707837769744783860844796
@ZeMariaMacedo868955969907960915930914927955963
@murphcapital854898933803942960946802942926830
@redphone851920956718941881689862905917752
@matty_823800936652935883665800870861621
@lukedelphi839894930898926857659842907899901
@IamSage717566883514870749617571855758672
@therosieum811795898701935862592931820758580
@fabrizio_builds ★735403767609934836520559556835423
@uselegion ★48819366316486574065151158191168
@legiondotcc795762875787934848746740802870580

NEW, 2026-06-03  (note the darkening, pollution up)

Why does almost everything turn dark (high) here? Two reasons, neither of which is "these people got more reputable." (1) A bigger denominator. This run added ~5.8M mostly low-trust accounts (the deeper S1 crawl). The published score is a rank (percentile), so stacking millions of low-trust accounts beneath the established core pushes everyone in the core up the scale, there are simply far more accounts ranked below them now. (2) Sector correlation. Because trust flows over topic-blind follows, a well-connected account scores high in every sector at once. Our 12 are a tightly-connected cluster, so they land ~950–999 in nearly all sectors. The darkening is mostly a measurement artifact of the larger universe, not real reputation growth (and it's exactly what the two fixes undo).
accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata998994995991999998994991993996990
@WazzCrypto987977998950969954933962979978951
@ZeMariaMacedo983992995985992982984988989993991
@murphcapital976980988959993986980946983987953
@redphone979990994975986977967979986989974
@matty_968971988941983958892970965973940
@lukedelphi972979989974983959918965981982976
@IamSage938917978883957891816801942938917
@therosieum961954987920978945843973939950886
@fabrizio_builds ★922905942845977926757866757946810
@uselegion ★792663875612947862550608575699692
@legiondotcc966970988945983966911952947971953

IMPROVED, edge-weighting + whitening  (differentiated; hubs deflated)

Global column = NEW (unchanged). Sector cells = edge-weighted + whitened, shown as PERCENTILES (0–1000 rank), the same scale as every table on this page. The log-raw scaling in §5 is a SEPARATE alternative scale and is NOT applied here.
accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata998429737302515670656753729387492
@WazzCrypto987488791220553622521745749483455
@ZeMariaMacedo983454751286481608627766729412556
@murphcapital976472769173661727680518755504435
@redphone979500761323451649613729735446468
@matty_968514793190615609374800748476476
@lukedelphi972398775297569556466741754474635
@IamSage938487825271677515354425779613623
@therosieum961540813373709672204833752458151
@fabrizio_builds ★922551782332846735202794528798151
@uselegion ★79215288119960925103470398183381
@legiondotcc966468785201631718506753719513368

The three fixes in isolation, each applied to NEW on its own

These are three separate, independent fixes, each shown alone (the combined IMPROVED above = edge-weight + whitening). Global is unchanged in all (they only touch sectors). Darker = higher. Compare the textures to see what each one does.

① Edge-weight only , algorithm change · needs a pipeline re-run

Re-routes trust at the source. Differentiates peripheral genuine accounts (@uselegion: space 892, off-sectors fall to 411–534); central hubs stay high.
accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata9989899939821000999990988989994982
@WazzCrypto987963998924969950914952973973935
@ZeMariaMacedo983986993970985974973987983990988
@murphcapital976956977908991978960865975974927
@redphone979987991968970976960961979986959
@matty_968950984896963929852968957951922
@lukedelphi972939982938969929895947974967976
@IamSage938865956836902832776761927904881
@therosieum961925980903957918772973936915810
@fabrizio_builds ★922859893826951877709881722947743
@uselegion ★792478811411892826417527468503534
@legiondotcc966940979901969963894941939961898

② Whitening only , post-hoc transform · no re-run

Removes the common 'prominence' factor from the raw scores. Strongest decorrelation, but note the spurious quantum/nuclear for the crypto cluster (the artifact).
accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata998399710328531672693764736342513
@WazzCrypto987474777274536615598758754433475
@ZeMariaMacedo983418724324520629677767736359545
@murphcapital976432738258606692705709747416432
@redphone979448739312531638649762743386500
@matty_968480771265646655481787739447457
@lukedelphi972452750389581611530753750416564
@IamSage938497822266748599387471769572607
@therosieum961506798276708682372816723447294
@fabrizio_builds ★922580811229852781272724560731230
@uselegion ★79228587353943892126391425431502
@legiondotcc966470769281641680546748710429511

③ Residual only , post-hoc transform · no re-run

Gentler decorrelation. Cluster stays fintech-leaning (their real lean), genuine specialists surface (@uselegion space 913), and no fake specialties, but a bit more cross-sector overlap remains.
accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata998745801746794797788792791785765
@WazzCrypto987719827658739724697756779755692
@ZeMariaMacedo983775826762804785790807801812800
@murphcapital976752819701817806792743797809714
@redphone979779829741797780762794800809759
@matty_968743830671808758648791776781697
@lukedelphi972759827753802754689778798803778
@IamSage938663843585799666537525769744694
@therosieum961709836631808742562807749732583
@fabrizio_builds ★922662788523854759405674560805469
@uselegion ★792368824256913817192311347435419
@legiondotcc966744833685811777685763755780731

4How to read it, two accounts

@uselegion, a genuine, low-profile space account

  • OLD/NEW: NEW inflates the noise, ai/robotics jump to 663/612 though he's neither.
  • IMPROVED: noise stripped (ai→152, robotics→19), space 960 / biotech 925 / fintech 881 remain → a clean, real profile.

@pavelprata, a central hub

  • OLD/NEW: top-1% in everything (990–999 across the board).
  • IMPROVED: deflated to a differentiated profile (sectors 302–753, no longer all-elite).
  • Caveat: his top improved sector reads quantum 753, a whitening artifact (he's not quantum). See below.

5Improvement 3, log-raw scaling (de-saturate the top)

The first two fixes attack correlation ("high in every sector"). This third, separate one attacks the symptom you flagged, "so many accounts above 950", which isn't a reputation problem but a scaling one. It's an alternative scale for the published number; the §3 heatmaps all use percentile/rank scaling, and log-raw is shown here on its own, not folded into them.

3 · Log-raw scaling, spreads out the saturated top.

The problem: the published 0–1000 is a pure rank (percentile). By construction the top 5% sit ≥950 in any sector, and the whole elite core saturates near the ceiling, the #1 account and the 9,500th both read ~999, though their real trust differs by orders of magnitude.

What it does: raw trust is power-law (log10(raw) is bell-shaped). Scoring off log(raw) instead of rank gives the top a real gradient, the elite spread out and "≥950" becomes genuinely rare. Post-hoc, no re-run. (Honest tradeoff: the bottom then looks low, but that's truthful; those accounts genuinely have ~zero trust. The rank was spreading a meaningless near-zero tail across 0–900 and manufacturing the saturated top.)

% of accounts scoring ≥ 950

rank (today)log-raw
GLOBAL5.0%0.19%
SPACE5.0%0.18%

~26× rarer, "elite" stops being the default for the whole top cluster.

The 12, GLOBAL: rank vs log-raw

accountranklog-raw
@pavelprata998962
@WazzCrypto987774
@ZeMariaMacedo983736
@murphcapital976657
@redphone979696
@matty_969604
@lukedelphi973628
@IamSage938507
@therosieum962573
@fabrizio_builds923478
@uselegion792348
@legiondotcc967594

Crammed into 792–998 (std 53) under the rank → spread across 348–962 (std 150) under log-raw. The elite get differentiated, not saturated.

Where this went: log-raw became the backbone of the final scale, §12 settles clip vs. unclip, §13 ships log-raw (clipped) as the leaderboard scale, and §14 un-pins its top band (950–1000 by magnitude) so the elite no longer collapse to a flat 1000.

6Does crawling more S1 help?

Tested by downsampling the current crawl to lower coverage and measuring edge-weighting's decorrelation (space). Can't test beyond the current ~43% directly, that needs new crawl data for the uncrawled S1, so this shows the slope and where it's heading.

S1 crawl %routing nodesbaseline corredge-weightededge-weight benefit (Δ)
4.3%5,4560.9950.994−0.001
12.8%15,7660.9640.955−0.009
25.7%31,2320.8820.846−0.036
42.8%  (current)51,8530.7250.626−0.099

Read: two things improve as crawl rises, the baseline correlation falls on its own (0.995 → 0.725; more routing nodes let trust differentiate sectors), and edge-weighting's benefit accelerates (−0.001 → −0.099, the bars). The curve is still steepening at 43%, not flatteningpushing S1 crawl toward 100% should keep helping.

Caveats: the uncrawled ~69K S1 may be less central than this random downsample implies (real gain at 100% could be smaller); crawling S1 also reveals more S2 sinks; and the 6.6M uncrawled S2 remains the larger untapped population. The deeper crawl looked bad for raw scores but is a prerequisite and ongoing amplifier for the fix.

7Takeaways & recommendation

Superseded (2026-06-09/10). This was the recommendation before the v2 export landed. §8 then showed the whitening/residual output layer breaks at full-population scale, and the recommendation evolved: §13 (Approach 2 + log-raw leaderboard) → §14 (v2.1: purity edge-weighting + un-pinned scale, current). The crawl guidance (last bullet, §6) still stands. Kept unedited for history:

8Update (2026-06-09), v2 lands, and a whitening trap

What shipped. The v2 export delivers three files, eigentrust-v2-lambda-0.1 / 0.5 / 0.8, over the same 2026-06-03 graph (6.75M accounts, identical universe). λ is the decorrelation strength (exactly the whitening dial from §1). It touches only the sectors: the global rank is byte-identical across all three λ, and even the sector percentile barely moves, so for a percentile product, λ=0.5 vs 0.8 changes almost nothing.

The trap. v2 exposes the decorrelation as a per-account whitened sector score, sitting right next to the un-whitened percentile, and the two contradict each other on the same person. The whitened score, computed on the full population with no reputation floor, is a ratio that divides reputation out → it rewards concentration, not standing. Result: corr(score, global) = −0.09 (anti-correlated with reputation) vs corr(percentile, global) = +0.68 (correct).

High-impact AI accounts, where each version puts them

The six most unambiguous AI figures alive, plus two zero-reputation accounts for contrast. Percentile columns (green header) rank them correctly, all pinned at the top. The whitened score columns (red header) invert it: the titans read mid (≈400–530) while the train company maxes at 1000.

accountsector RANK, ai_ml percentilewhitened SCORE, ai_ml (by λ)global
score
OLDNEWv2 λ0.5λ0.1λ0.5λ0.8
@sama
Sam Altman · OpenAI
10001000999385419428975
@karpathy
Andrej Karpathy
999999999396429437967
@ylecun
Yann LeCun · Meta AI
999999999438481491963
@gdb
Greg Brockman · OpenAI
999999999463514527960
@demishassabis
Demis Hassabis · DeepMind
999999999424461470959
@andrewyng
Andrew Ng
999999999464511522959
▼ zero-reputation accounts (global_score 52), yet they sit at the top of the whitened AI score
@ouigo_es
a Spanish train operator
7116989951000100052
@polishtamales
random account
7116989951000100052

Read: Sam Altman is ai_ml_percentile = 999 in every version (correct, he's a top-0.1% AI account), but his ai_ml_score is only ~419, ranking him top-35% of all 6.75M on that column. @ouigo_es, a train operator with global_score 52, gets the maxed ai_ml_score 1000. λ (0.1→0.8) nudges the titans' score up a few points but never fixes the inversion. The percentile is the only column that behaves; the whitened score must not be ranked on.

The 12 sample accounts under v2 (λ=0.5), the same split, on familiar faces

PERCENTILE (λ0.5) , the usable rank; note it lands ≈ NEW (§3), i.e. v2's percentile reverts to ~v1 behavior, still prominence-correlated

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata998991994986999998992991991994987
@WazzCrypto987969997945970950928959975976949
@ZeMariaMacedo983988994980988979979988985991990
@murphcapital976967983939990984971932980981945
@redphone979987992972979974964974982987969
@matty_968960986927974947876971963964938
@lukedelphi972958985959976947905962976974980
@IamSage938898966856935863799771941926904
@therosieum961941982914968935830976941936857
@fabrizio_builds ★922888920831966903737871737956775
@uselegion ★792585842539920829496575530631634
@legiondotcc966954983931977960899952946969931

WHITENED SCORE (λ0.5) , the broken column; same accounts, a wholly different (and much lower-magnitude) picture

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata646257171124561434307157344274198
@WazzCrypto523340318166264250277165384307241
@ZeMariaMacedo498350213184277259318183371335321
@murphcapital446329197155366339353144397338231
@redphone471397217198267277310170384341258
@matty_411361224180319280261196382316263
@lukedelphi427322211210301259264175397323349
@IamSage347364227195322263279129408345308
@therosieum390362230201337291255217370291195
@fabrizio_builds ★328382198194409319225180292441197
@uselegion ★242315239170495397236125267267273
@legiondotcc405348219189334305283177355337253

Same 12 accounts, same run, two columns that don't agree. The percentile block is dark (high rank, like NEW); the score block is muted and reshuffled. That gap is the whitening, and on these reputable accounts it's merely confusing; on the full population it surfaces the junk above.

Root cause & the fix

Decision: ship λ=0.5 using the percentile as the sector score and drop/quarantine the whitened _score (coherent product today); have the v2 author recompute the single sector number as a floored magnitude residual to actually reduce the cross-sector bleed without the purity artifact.

9v2 minus whitening, edge-weighting + log-raw only

§8's recommendation made concrete: keep edge-weighting (sector reputation) and log-raw (de-saturation), drop the whitening. The v2 export omitted the sector raw, so this is a fresh edge-weighted run on the live graph, its global matches v2 bit-close (sama 1000, @pavelprata 998, @uselegion 792), so the sectors are comparable.

AI sector, the §8 inversion disappears

accountai_ml score, three waysoff-thesis bleed (edge-wt log-raw)
v2 whitenededge-wt pctedge-wt log-rawquantumnuclear
@sama
+ 5 AI titans, all identical
4191000100010001000
@ouigo_es / @polishtamales
zero-reputation junk
1000738450110

Dropping whitening flips §8's defect the right way round: the titans return to the top of AI (1000), the junk accounts collapse (global 88/59, off-sectors near 0, @ouigo_es AI falls 1000→738→450). log-raw additionally de-saturates: the share scoring ≥950 drops 5.0% → ~0.2% in every sector.

But the original §3 problem comes back. Under no-whitening, every one of the 6 AI titans scores 1000 in all 10 sectors, not just AI (see the quantum/nuclear columns above: both 1000 for @sama). Edge-weighting alone only partially decorrelates (sector↔global ≈ 0.61), and log-raw is a scale, not a decorrelator, so the cross-sector bleed survives. Sam Altman is once again "top-tier in quantum and nuclear." This is a trade, not a clean win.

EDGE-WEIGHT + PERCENTILE (no whitening), 12 sample rank scale · compare to §3 NEW: hubs still high, but @uselegion's noise (ai 478, robotics 411) is gone

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata9989899939821000999990988989994982
@WazzCrypto987963998924969950914952973973935
@ZeMariaMacedo983986993970985974973987983990988
@murphcapital976956977908991978960865975974927
@redphone979987991968970976960961979986959
@matty_969950984896963929852968957951922
@lukedelphi973939982938969929895947974967976
@IamSage938865956836902832776761927904881
@therosieum962925980903957918772973936915810
@fabrizio_builds ★923859893826951877709881722947743
@uselegion ★792478811411892826417527468503534
@legiondotcc967940979901969963894941939961898

EDGE-WEIGHT + LOG-RAW (no whitening), 12 sample de-saturated magnitude · same accounts, a real gradient (no 999-pileup)

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata9627257667181000985745748752777738
@WazzCrypto774653962630683664627680701690652
@ZeMariaMacedo736708772690723706697740726747760
@murphcapital657641699616750716673612705693642
@redphone696714756685687711674692713730686
@matty_604632721605673641585700676657636
@lukedelphi628620715645684641613675703681718
@IamSage507557659543609556514485646607599
@therosieum573606709611664630506710654618515
@fabrizio_builds ★478553600532657595424623534652460
@uselegion ★348302547322601548319364357351376
@legiondotcc594621705609684683612669656671613

③ The fix, edge-weight + floored magnitude residual

Now the decorrelation done right: residual = log10(sector_raw) − [ a·log10(global_raw) + b ], "how far above the prominence-predicted baseline is your sector reputation," in log-magnitude (additive, not a ratio), computed only for accounts above a reputation floor (global pct ≥ 500; keeps 3.37M), ranked among them. Recomputed live (v13).

EDGE-WEIGHT + FLOORED RESIDUAL, 12 sample sharp, real specialties surface; junk floored out

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata99810723583945827180173208160106
@WazzCrypto987243966136350263200367447308170
@ZeMariaMacedo983500675395615529558672590648666
@murphcapital976476634323801725642406648654408
@redphone979598702491588642571614617684483
@matty_969564765430731617471756657657543
@lukedelphi973477713525717557517683676678759
@IamSage938560777457735547442286711711659
@therosieum962558786546755648240796652597176
@fabrizio_builds ★923607690497844723184763525849202
@uselegion ★792173773128891798143224212175221
@legiondotcc967553744476765744588715631717470

Compare to the §3 NEW block (near-solid dark): the residual carves out genuine specialties, @pavelprata space 945 (everything else ≤235), @wazzcrypto fintech 966, @uselegion space 891 / biotech 798. No fake elites, and the two junk accounts are floored out entirely (below the reputation floor → no sector score at all).

The AI super-accounts under all three variants

The six clearest AI figures alive, full per-sector rank under each new variant. Watch the texture: the first two are solid 1000 everywhere (the bleed); the residual is the only one that differentiates them.

① edge-weight + percentile , every titan, every sector = 1000 (maximum bleed)

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@sama10001000100010001000100010001000100010001000
@karpathy10001000100010001000100010001000100010001000
@ylecun10001000100010001000100010001000100010001000
@gdb10001000100010001000100010001000100010001000
@demishassabis10001000100010001000100010001000100010001000
@andrewyng10001000100010001000100010001000100010001000

② edge-weight + log-raw , still 1000 everywhere (log-raw de-saturates the scale, not the correlation)

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@sama10001000100010001000100010001000100010001000
@karpathy10001000100010001000100010001000100010001000
@ylecun10001000100010001000100010001000100010001000
@gdb10001000100010001000100010001000100010001000
@demishassabis10001000100010001000100010001000100010001000
@andrewyng10001000100010001000100010001000100010001000

③ edge-weight + floored residual , the bleed finally breaks into a per-sector profile

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@sama1000792727741769702711715719723780
@karpathy1000782691848717717616723437727813
@ylecun1000770479764597602521731477621762
@gdb1000787680684482298560609581599713
@demishassabis1000780545683611871617739330640680
@andrewyng1000768409731494552514660305557762
The honest result. The residual does kill the all-1000 bleed (sama now spreads 702–792 across sectors, not a flat ceiling) and floors out the junk. But it does not crown AI as their clear #1: sama's AI (792) barely edges his semi (780); Karpathy's robotics (848) and semi (813) outrank his AI (782); Demis's biotech (871, AlphaFold) tops his AI (780). That's because the residual asks "do you over-index on this sector beyond your fame?", and for a famous generalist, AI standing is roughly what prominence already predicts, so the "excess" is modest. A pure specialist over-indexes hard (pavelprata→space 945); a mega-hub reads as "broadly strong, mild lean." It's a specialty/discovery lens, not an authority lens.

So which do you actually want? If the sector score should answer "who's the biggest authority in AI" → use the percentile (Altman = top), accepting that prominent people rank high in several sectors. If it should answer "who genuinely specializes in AI beyond general fame" → use the floored residual (specialists surface, generalists flatten, junk gone). The two are different products; v2's whitened score tried to be the second but botched the math.

The trade-off, across all the options

variantjunk at top?titans ranked right?top de-saturated?cross-sector bleed?
v2 whitened score✗ junk on top✗ titans sink~ ok✓ fixed
edge-weight + log-raw (no whitening)✓ fixed✓ yes✓ fixed✗ returns
floored magnitude residual the fix✓ floored out~ elevated, not #1*✓ (+ log-raw)✓ reduced

* the residual elevates the titans (no inversion, sama AI = top-21% among reputable accounts, not bottom-35% like the whitened score) but, being a specialty lens, won't rank a famous generalist #1 in their home sector. Pick percentile for authority, residual for specialty.

Bottom line: there is no single column that is both "biggest authority" and "purest specialist", that's the real tension, now measured. Percentile = authority (Altman tops AI, with some cross-sector bleed). Floored residual = specialty (sharp real specialties, junk floored, bleed broken, but famous generalists flatten to "broadly strong"). Whitening tried to be the specialist lens and broke the math (junk on top, titans sunk). The shippable pair: percentile for the headline sector rank, and the floored residual as a "specialty/edge" signal beside it, never the whitened score.

10The separation is in the raw, not the rank

The natural source-fix, stronger edge-weighting to make a hub's reputation topic-aware, was tested at three strengths (weak → no-floor → squared). It does not separate the mega-hubs: Altman & the AI titans stay percentile 1000 in every sector at every strength. But the run pinpoints where the answer actually lives, the AI-vs-quantum signal is already in the raw scores; ranking is what hides it.

Stronger gating: hubs unmoved · specialists sharpen · peripherals & junk break

V0, current weight ssi + 0.05

accountai/mlquantumnuclearspacefintech
@sama (≡ all 6 titans)10001000100010001000
@pavelprata9899889891000993
@wazzcrypto963952973969998
@uselegion ★478527468892811
@ouigo_es / @polishtamales738184810

V2, strongest gating ssi², no floor

accountai/mlquantumnuclearspacefintech
@sama (≡ all 6 titans)10001000100010001000
@pavelprata1161171161000116
@wazzcrypto159160159160998
@uselegion ★156157156157155
@ouigo_es / @polishtamales591592591592590

5 sectors. @sama (≡ all 6 titans) stays 1000 everywhere, sharper gating can't move him. @pavelprata sharpens to a clean space specialist (off-sectors 989→116). The cost: @uselegion, a genuine low-profile space account, is crushed (space 892→157), and the junk floats up to a uniform ~591. Strong gating is worse, not better.

The one number that matters, @sama's raw reputation

weightingAI rawquantum rawAI ÷ quantumboth percentiles
V0, current1.8e−21.1e−317×1000 / 1000
V2, squared3.4e−28.9e−438×1000 / 1000

Altman's AI reputation is 17–38× his quantum, at the current weighting already. The separation exists. But his quantum raw, though tiny for him, still beats ~99.9% of 6.75M accounts, so the percentile pins it at 1000. Ranking against the population destroys the within-account distinction.

Why @pavelprata separates but @sama doesn't, and why that's correct. Cut the topic-blind edges and pavelprata's quantum trust vanishes (→116): he genuinely isn't connected to quantum. Sama's stays at the top because he genuinely is, a universal hub the quantum seeds' networks all reach. So his top quantum percentile is true: he has top-tier absolute quantum reputation. He's not a quantum specialist, but he is a top quantum-connected account. That isn't a bug to remove, it's two different questions being asked of one number.

Two questions, two scales, the resolution

questionright scaleAltman
"What is this person about?"  (radar / DNA card)within-account, his sectors vs each otherAI ≫ quantum (17–38×) ✓
"Who's top in AI?"  (leaderboard)population percentiletop in AI ✓, & genuinely high quantum (real, not bleed)

The fix for the thing that looked wrong. "Altman is AI, not quantum" is a within-account statement, and it's already true in the raw (17–38×). No cross-account ranking can surface it, his absolute quantum standing genuinely is top-tier. So the per-account sector profile should be scored by within-account-normalized raw, applied only to reputable carded accounts (you never card a train company, so the junk blow-up never arises). That is exactly what the InvestorDNA radar already does, each person normalized so their top sector = 100.

11Inverse-global weighting, and the iron law of hub percentiles

A collaborator proposed weighting connections by 1 / global-ET(follower), down-weight topic-blind "famous" influence, amplify niche specialists. We tested three forms. The best one (non-renormalized source down-weight) genuinely improves aggregate decorrelation and favors the right accounts, but none of them moves a mega-hub off the top of a sector percentile. That turns out to be structural, not a tuning failure.

First, the algebra: why "1/global on every edge" mostly cancels

In EigenTrust each account distributes 100% of its trust as shares across who it follows (rows sum to 1). Multiply all of one account's out-edges by the same factor (1/global) and the renormalization-to-100% divides it straight back out, a no-op. So only the forms that break that assumption do anything:

Decorrelation, sector↔global correlation (lower = better)

sectorbaselineA · seed ∝1/gC · target discountApproach 2 · src down-wt
ai_ml0.6430.6420.6620.605
quantum0.6040.6040.6040.530
space0.6260.6260.6480.578
fintech0.5240.5230.5490.479

A (seed) is a near-perfect no-op, reweighting ~30–48 curated seeds is too diluted to survive propagation. C (target) actually made it worse. Approach 2 is the only one that improves every sector (and it beats our current edge-weighting's ~0.61), its source factor correctly targets the famous (f: @sama 0.005, @pavelprata 0.61, @uselegion 0.999), lifts the niche (@uselegion space 892→920, @fabrizio 951→966) and sinks junk (@ouigo quantum 18→2). Matty's instinct is validated, as a non-renormalized source down-weight it's a real, modest pipeline improvement.

Full per-account grid, 12 sample accounts (global + 10 sectors)

baseline (B0), current edge-weighting

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata9989899939821000999990988989994982
@WazzCrypto987963998924969950914952973973935
@ZeMariaMacedo983986993970985974973987983990988
@murphcapital976956977908991978960865975974927
@redphone979987991968970976960961979986959
@matty_969950984896963929852968957951922
@lukedelphi973939982938969929895947974967976
@IamSage938865956836902832776761927904881
@therosieum962925980903957918772973936915810
@fabrizio_builds ★923859893826951877709881722947743
@uselegion ★792478811411892826417527468503534
@legiondotcc967940979901969963894941939961898

A · inverse-global seed weighting , identical to B0 within ±2; the seed reweighting is a no-op

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata9989899939821000999990988989994982
@WazzCrypto987963998923969951914952973972935
@ZeMariaMacedo983986993970985974974986983990988
@murphcapital976956977909991978961865975974927
@redphone979987991967971976960961979986959
@matty_969950984898965930852967957950922
@lukedelphi973940982939970929896947974968976
@IamSage938865956838905833776761927903882
@therosieum962926981905959918771973936914810
@fabrizio_builds ★923859893824953877710881722948743
@uselegion ★792479812411896828419526468501533
@legiondotcc967941980901970963895941939961897

C · target-side global discount , lifts niche, sharper but worse aggregate corr

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata9989889939801000999990985991994979
@WazzCrypto987973998936976950914959984979913
@ZeMariaMacedo983992996980993981983993992994992
@murphcapital976973984938996982978925988984940
@redphone979991995970987982969980989991971
@matty_969967991927985960864980972968935
@lukedelphi973960990958985960934975986979979
@IamSage938887974853960878796779948931917
@therosieum962946985911981945784983953940839
@fabrizio_builds ★923892923838981925759889744966815
@uselegion ★792621836560955867615666614674707
@legiondotcc967963987927987976922958954976940

Approach 2 · non-renormalized source down-weight , best aggregate decorrelation

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata9989889929721000999983974988994968
@WazzCrypto987970998922982962876942977982887
@ZeMariaMacedo983989995965989974965990989992986
@murphcapital976957973919996974948866975973889
@redphone979989994959977979948966979989957
@matty_969958990910980934793978964956918
@lukedelphi973937989933974929901955980974966
@IamSage938863964857929842779773917900897
@therosieum962926988911969911765977936930822
@fabrizio_builds ★923862898839966880709898702956757
@uselegion ★792558832460920839513630561597623
@legiondotcc967955985897976977900948943970900

Read: A_seed ≈ B0 (a no-op). C and Approach 2 both lift the genuine niche accounts, @uselegion ai 478 → 621 (C) / 558 (P2), space 892 → 955 / 920, and Approach 2 best decorrelates (every sector's corr drops, table above). The 12 here all clear the reputation floor; the differentiation is real, not bleed.

The 6 AI super-accounts, full grid (this is the whole point)

B0 / A_seed / Approach 2, identical: 1000 across every sector

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@sama10001000100010001000100010001000100010001000
@karpathy10001000100010001000100010001000100010001000
@ylecun10001000100010001000100010001000100010001000
@gdb10001000100010001000100010001000100010001000
@demishassabis10001000100010001000100010001000100010001000
@andrewyng10001000100010001000100010001000100010001000

C · target discount, the only variant that even dents them (a handful of 997–999)

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@sama10001000100010001000100010001000100010001000
@karpathy10001000100010001000100099999999710001000
@ylecun100010009991000999999998100099710001000
@gdb10001000100010009989989989989989991000
@demishassabis100010009991000999100099999999710001000
@andrewyng10001000998100099999999899999710001000

Six different people, all pinned at the ceiling in all 10 sectors, under the baseline and the strongest source down-weight (Approach 2). Target-discount (C) barely scratches a few cells to 997–999. No weighting variant gives them a real per-sector profile, exactly the iron law below.

The iron law, raw separation explodes, percentile never moves

weighting variant@sama raw  AI ÷ quantum@sama quantum percentile
baseline (current)17×1000
A · inverse-global seeds15×1000
C · target-side discount306×1000
Approach 2 · source down-weight2,218×1000

Every lever widens @sama's within-account AI-vs-quantum raw ratio, up to 2,218× under Approach 2 (his quantum raw is 0.05% of his AI). And at every step his quantum percentile stays pinned at 1000. We slashed his quantum reputation 2,200-fold and he's still top-percentile, because even that crushed value beats 99.9% of 6.75M accounts.

This is the iron law, now proven three independent ways (strong edge-weighting §10, target-discount 306×, source down-weight 2,218×): weighting can decorrelate the aggregate and blow the within-account ratio sky-high, but it cannot move a universal hub off the top of a sector percentile, rank a mega-hub against millions and his connected-everywhere reputation tops every sector he touches, regardless. The only thing that expresses "Altman = AI, not quantum" is within-account normalization (his sectors vs each other → AI now 2,218× quantum → trivially separated). Leaderboard = percentile; "what are they about" = within-account/radar. No weighting collapses the two into one column.

12Can log-raw rescue it?, clip vs. unclip

Could de-saturating (log-raw) on top of Approach 2 finally show the hub's profile? Tested two log-raw scalings of the Approach-2 raw. Clipped (the §9 standard): no, the hub still saturates. Unclipped (magnitude-preserving): yes, it dents the hub and even surfaces secondary strengths, but it compresses everyone below the absolute elite. It confirms §10/§11 rather than overturning it.

@sama, AI vs quantum vs nuclear, three scorings of the same raw

scoring of the Approach-2 raw@sama AI@sama quantum@sama nuclear
percentile (rank)100010001000no profile
log-raw · clipped 99.9th (§9 standard)100010001000no profile
log-raw · unclipped (max-normalized)1000735773AI leads ✓

Percentile and clipped-log-raw both pin his quantum at 1000, his top-0.1% quantum raw sits above the 99.9th-pct clip, so it saturates. Only the unclipped magnitude scale preserves the 2,218× raw gap → AI 1000, quantum 735.

Unclipped log-raw, the 6 AI titans finally get real profiles

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@sama10001000787802789755764735773768784
@karpathy100010007771000760766720728657769802
@ylecun10001000706808732725697729677746777
@gdb10001000770777685643708687712725753
@demishassabis100010007127687291000720727641746739
@andrewyng10001000678791706713697705630729774

AI is now clearly #1 for all six, and genuine secondary strengths surface: @karpathy robotics 1000 (Tesla autopilot), @demishassabis biotech 1000 (AlphaFold), @sama robotics/space/semi ~785–800. The magnitude scale recovers what percentile and the clip hid.

…but the cost, everyone below the elite compresses

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata998356391356657588375369392393353
@WazzCrypto987325571313362350300344372358292
@ZeMariaMacedo983358415348376363353396396384383
@murphcapital976313350311414363340304369347293
@redphone979359401343356370340361376375342
@matty_969314382304359328250374359330313
@lukedelphi973300379321351325312353377348352
@IamSage938259340262315269232193332290299
@therosieum962293378305346314185373340309193
@fabrizio_builds ★923259299246344295134320239330149
@uselegion ★79251267623092677612112090109
@legiondotcc967311370295354367311347345344301

The same 12 sample accounts that read 900–1000 on percentile now read ~250–650: @pavelprata (global 998) mostly 350–650, @uselegion space 309 / ai 51. Stretching the scale to the single top squashes the merely-very-good. Fine for a per-account radar, poor for a cross-account leaderboard.

Where this leaves the scale choice

So log-raw can bolt onto Approach 2, and unclipped it does reveal the hub, but it inherits the cross-account compression. Same split as §10: leaderboard → percentile (clip/de-saturate as you like); "what is this person about" → within-account/radar.

13Final solution, the leaderboard scoring

Final solution: compute the sector raw with edge-weighting + Approach-2 source down-weight (best decorrelation, favors niche, sinks junk), and score it with log-raw (clipped). The result is a true graph-wide sector rank, comparable across accounts, you can rank people on it, but de-saturated, so the elite spread into a real gradient instead of all piling at 950+. One number per sector, one leaderboard. (A per-account "radar" is available as a separate card visual, see the footnote, but it's self-relative, not a graph rank, so it's not the leaderboard.)

What "Approach 2 · source down-weight" actually is

An EigenTrust variant that stops globally-famous accounts from leaking generic prominence into every sector. It's two layers on top of the trust propagation, then a scale:

  1. Edge-weighting (target relevance). Each follow is first weighted by how sector-relevant its target is, how many of that sector's seeds follow the target (ssi(target) + floor), then row-normalized so every account hands out 100% of its trust as shares. (The same edge-weighting used throughout this report.)
  2. Source down-weight (the new layer). Each account's total outflow is then multiplied by f(u) = gref / (gref + global(u)), a factor that's ≈1 for normal/niche accounts and →0 for the genuinely globally-prominent (gref = the 99.9th-percentile global score). So a famous account passes only a small slice of its trust onward; a niche domain expert passes ~all of it. The unspent trust (the 1−f(u) part) is returned to the seed, so the system stays mass-conserving and converges.

Why it helps. A famous account's follows are topic-blind, everyone follows them, they follow everyone, so their trust spills generic prominence into every sector. Shrinking their outflow makes sector trust flow preferentially through the niche, topic-specific accounts (the ones picked as seeds for being domain experts, not for being famous). That sharpens the sector signal: it's the best aggregate decorrelation of everything tested (§11, sector↔global 0.60→0.53), and it lifts genuine niche accounts while sinking junk hardest.

Why applied this exact way (not as a plain edge weight). Weighting every edge by 1/global(source) and then row-normalizing (standard EigenTrust) cancels out, a constant factor on all of one account's shares washes away when they renormalize to 100% (the algebra is in §11). Approach 2 sidesteps that by not renormalizing: it shrinks the famous account's total outflow and returns the remainder to the seed. And the bounded f = gref/(gref+global) is used instead of a literal 1/global, which would explode on the long tail (a near-zero-reputation account would otherwise pass near-infinite trust). It's a deliberate, non-row-stochastic variant, a real algorithm change, so it needs a pipeline re-run (it can't be done post-hoc on the published scores).

The final leaderboard, Approach 2 + log-raw (clipped) · global + 10 sectors

12 sample accounts , GLOBAL = de-saturated overall score; sector cells = log-raw graph rank

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata9625856445911000972619622655662596
@WazzCrypto774534941519608579496580620604493
@ZeMariaMacedo736589684577633600583668661647646
@murphcapital657515576515695600562513617584495
@redphone696590660568598611561608627631577
@matty_604517630505603543413631600555528
@lukedelphi628492624533590537515595629586594
@IamSage507426559435529445382326554488505
@therosieum573481622506582520306629568521327
@fabrizio_builds ★478426492407578488221540399556251
@uselegion ★34884440103519441125204201152185
@legiondotcc594512610489596607514586575579508

6 AI super-accounts

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@sama9751000100010001000100010001000100010001000
@karpathy9671000100010001000100010001000100010001000
@ylecun9631000100010001000100010001000100010001000
@gdb9601000100010001000100010001000100010001000
@demishassabis9591000100010001000100010001000100010001000
@andrewyng9591000100010001000100010001000100010001000

What you get: a graph-wide, cross-account sector rank (you can compare and rank people on it), but de-saturated, @pavelprata reads space 1000 with genuine standing elsewhere (585–972), not the percentile's flat 968–1000; @wazzcrypto fintech 941; @uselegion sits lower across the board (global 792 → cells 84–519) because his overall reputation really is lower. No 0s for strong accounts, and lower-reputation accounts correctly rank lower everywhere, that's the comparability the radar throws away.

The one accepted trade-off. The 6 universal hubs (@sama, @karpathy, …) still read ~1000 in every sector. On a graph-wide rank that is correct, a mega-hub genuinely is top-tier everywhere (his absolute quantum reputation really does beat 99.9% of accounts). Separating their sectors is impossible on any cross-account scale (the iron law, §10–§12), it only happens on the self-relative radar, which is why the radar isn't the leaderboard. It affects only that handful of universal accounts; everyone else de-saturates cleanly. Update: §14 later removes this trade-off with the knee scale, same ranks, but the elite band stops pinning at 1000.

Footnote, optional per-account "radar" (a separate card visual, not a rank)

For a per-person card you can additionally show a within-account view (each person normalized to their own top sector). It answers "what is this person about", @sama AI-dominant, @karpathy robotics, @demishassabis biotech, and is useful as a shape/visual. But it is self-relative, not a graph rank: a 1000 means "their own top sector," not "#1 on the graph," and you cannot rank people on it (it's exactly why a global-998 account like @pavelprata shows 0s in it). Use it only as a card visual alongside the overall score, never as the sector leaderboard. The leaderboard above is the final scoring.

Ship-it. Scores: edge-weighting + Approach-2 source down-weight (needs a pipeline re-run). Scale: log-raw, clipped, graph-wide sector rank, de-saturated, no 0s, comparable across accounts. Accept: the ~6 universal hubs read ~1000 across sectors (their real top-tier standing, unavoidable and correct on any rank). Optional: within-account radar as a per-card visual only. Never: the v2 whitened _score, or the raw percentile's "everything ≥950" saturation. This is the final. (§14 below upgrades two of the three components, same architecture.)

14Beyond the final, purity edge-weighting + un-pinned scale (v2.1)

The question: with §13 settled, is there anything left that keeps sectors more decorrelated, still floats the best accounts to the top, and gives a better representative score? Answer: yes, two upgrades survived a sweep of the remaining design space (experiments v20–v21, validated on all 10 sectors): a purity edge-weighting, the original §1 edge-weighting upgraded with a purity factor (named SPEC, for specificity, in the experiment scripts & result files), and an un-pinned elite band on the scale, shown in two rank-identical displays, a magnitude scale that reads like §13's log-raw and a rank scale that reads like percentiles. Same §13 architecture, the Approach-2 source down-weight stays exactly as is, but two of its three components get swapped. Everything else tested is a confirmed dead end (card below).

What changes vs §13, 2 of 3 components

  1. Edge weight: one question → two questions (purity edge-weighting). Both versions decide how much sector trust a follow may carry by looking at the follow's target. §13 asked a single question: "how many of this sector's seeds follow the target?", an absolute count. The purity upgrade asks a second one: "and of all the seed endorsement the target gets, across all 10 sectors, what fraction comes from this sector?", and multiplies the two. In words: endorsement strength × endorsement purity. The worked example below shows why the second question is the one that stops hub bleed.
  2. Source down-weight f(u), unchanged. The Approach-2 layer from §13 stays exactly as documented there.
  3. Scale: un-pin the top, two variants, same ranks. §13's log-raw clip collapses everything above the 99.9th percentile to 1000; both variants replace that clip with a 950–1000 log-magnitude band so the elite finally differentiate. The magnitude scale (LOG-KNEE) keeps §13's log-raw scale untouched below the band (scores ≈ §13 × 0.95, same de-saturated feel), and spreads the formerly-pinned top 0.1% across 950–1000. The rank scale (KNEE) uses the percentile below the band instead (mapped 0–950, so bulk scores read higher) with the top 0.5% spread 950–1000, "≥950" literally means top 0.5% of the graph. Both are monotonic in the raw → identical rank order; the choice is display semantics only.
Purity weighting on real numbers, why one question isn't enough. Take the quantum run and two accounts that look identical to §13:
followed by§13 weight
(strength only)
purity weight
(strength × purity)
quantum specialist8 quantum seeds, no other seeds88 × 8/87.6, keeps ~full weight
mega-hubthe same 8 quantum seeds + 70 AI/space/fintech seeds8, identical to the specialist8 × 8/780.8, diluted ~9×
§13's absolute count cannot tell "8 out of 8" from "8 out of 78", so the hub received quantum trust at the specialist's rate, and that is precisely the hub bleed. The purity factor makes quantum trust flow into accounts the quantum world specifically endorses instead of pooling on accounts everybody endorses. It's the TF-IDF trick from search: a word appearing in every document carries no topic signal however frequent it is; a word concentrated in one topic is that topic's signature. Exact form: ew = (ssi_s + 0.05) × (ssi_s + 0.05)/(ssi_total + 0.5) at the target (the 0.05/0.5 floors keep never-endorsed accounts at a tiny non-zero weight), rows renormalized to 100% as always, Approach-2 source down-weight f(u) applied on top unchanged.
Why this fixes the §13 trade-off. §13 accepted that the ~6 universal hubs read ~1000 in every sector, on a clipped scale, everything above the 99.9th percentile collapses to one value. The elite band keeps the magnitude information instead: @sama's quantum raw is real but orders of magnitude below the top quantum specialists', so he reads AI 1000, quantum 958 on the magnitude scale (971 on the rank scale). No rank changed; the un-pinned band just stopped hiding the separation that §10 proved was in the raw all along.

Decorrelation, every one of the 10 sectors improves

Sector↔global correlation (rank level; lower = more sector-specific signal). purity weighting beats the §13 edge weight in all 10 sectors; purity + un-pinned scale together cut the average from 0.54 → 0.40:

sector§13 · percentilepurity · percentile§13 + un-pinnedpurity + un-pinned
ai/ml0.6050.5490.5730.352
fintech0.4790.4230.4590.286
robotics0.6110.5470.6000.487
space0.5780.5130.5660.411
biotech0.5790.5190.5670.417
climate0.5460.5040.5360.386
quantum0.5300.4580.5200.369
nuclear0.4440.3840.4420.344
defense0.5910.5280.5800.448
semi0.5950.5340.5830.457
average0.5560.4960.5430.396

Columns: §13 raw scored by percentile · purity-weighted raw by percentile · §13 raw on the un-pinned (knee) scale · purity-weighted raw on it. The §11 source down-weight took 0.60 → 0.53; purity weighting + an un-pinned scale continues to ~0.40, the largest decorrelation of anything tested in this report, with no degenerate side effects (unlike whitening, §8). The two v2.1 scale variants are rank-identical, so their correlations match (LOG-KNEE avg 0.394 · KNEE avg 0.396).

The v2.1 leaderboard, new scores (purity edge-weighting + Approach 2), shown on the magnitude scale

This is the v2.1 proposal as it would ship. The scale is LOG-KNEE, §13's log-raw (clipped) scale, kept: every score below the top band is the §13-style log-raw value (×0.95), so the numbers read exactly like the §13 final you've already seen. The only scale change is at the very top: the scores that §13's clip pinned to a flat 1000 now spread 950–1000 by magnitude.

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata913392455441957905436442497499424
@WazzCrypto736397893416501492368470512498354
@ZeMariaMacedo699494593525565543516601611585560
@murphcapital624429487478638502470466559528414
@redphone661495570522535569510539565570525
@matty_574429547473553498354559535493416
@lukedelphi597410538486523481489536573534517
@IamSage482343478412484393298217468433441
@therosieum544393535460528461219543528476220
@fabrizio_builds ★454360420346525444110483314504142
@uselegion ★330037255476391469913365112
@legiondotcc565430526429542575452520523526459
AI SUPER-ACCOUNTS
@sama9961000968971967962963958965966968
@karpathy99510009661000963964955957892967971
@ylecun9941000954973958959952959941964968
@gdb9941000966968951867954951955960964
@demishassabis99410009569679581000957958844964962
@andrewyng9941000945971954958953954862961969

Hubs: @sama reads AI 1000 · quantum 958, clearly elite everywhere, #1 only where he genuinely is. @karpathy's robotics 1000 and @demishassabis's biotech 1000 (Isomorphic Labs) are real and kept, and the magnitude band separates them hard where they're weakest (@demishassabis nuclear 844, @karpathy nuclear 892). Specialists: profiles get shape without losing graph-comparability, @pavelprata space 957 vs AI 392; @wazzcrypto fintech 893 vs AI 397. Junk sinks further (@ouigo_es ai/ml 267, 0 elsewhere, global 56). Even the GLOBAL column de-saturates: the hubs differentiate at 994–996 instead of all reading 1000.

Same scores, alternative display, the rank scale

Identical v2.1 scores (purity edge-weighting + Approach 2), identical rank order, only the number semantics change. Here the score below the top band is the percentile (mapped 0–950), so bulk numbers read much higher than §13's log-raw, and "≥950" literally means top 0.5% of the graph. Pick this one if scores should feel like ranks ("top 3%") rather than magnitudes; the choice between the two displays is deferred to product calibration.

accountGLOBALai/mlfintecrobotispacebiotecclimatquantunucleadefenssemi
@pavelprata958725815785972964770740854876768
@WazzCrypto943738952756881868611796878874702
@ZeMariaMacedo939921945891937923910943946943927
@murphcapital932822878835950880844786927908755
@redphone935922941888919937903903931937900
@matty_925822934828931876584921907868757
@lukedelphi929779929845906854876900934914892
@IamSage896581863749859718528565796773793
@therosieum918726928811911825499907901843646
@fabrizio_builds ★881634732690908799398821521882528
@uselegion ★7570599207848715213376406269443
@legiondotcc923826923770925939808879895906819
AI SUPER-ACCOUNTS
@sama9971000972981979975976971976978978
@karpathy99610009711000976976971971963978980
@ylecun9961000960982973973969972965976978
@gdb9951000970979968962970967969974976
@demishassabis99510009619789731000972971960976974
@andrewyng9951000956981970972969969961974979

Compare any row with the table above, e.g. @matty_ quantum reads 559 on the magnitude scale and 921 here. Same account, same raw score, same rank; the magnitude scale spreads people by how much reputation they have, the rank scale by how many accounts they beat.

Interim path (no pipeline re-run): if the v2.1 pipeline re-run isn't scheduled yet, the un-pinned top band also works as a pure display swap on the unchanged §13 scores, identical ranks, ships in seconds, and already removes the flat-1000 hub rows (@sama reads AI 1000 / quantum 977), but decorrelation stays at §13's 0.54 until the re-run lands (full table: results_v21_spec_full10.txt, P2_knee).

Choosing between the two displays, pros & cons

Reminder: both sit on the same v2.1 raw scores, identical ranks, identical leaderboards, identical decorrelation. Only the printed number changes; the trade-off is what that number communicates.

Magnitude scale (reads like §13's log-raw)

  • + The number means something physical, it tracks orders of magnitude of actual trust mass. A 700-vs-500 gap is a real multiplicative reputation gap, not a rank artifact.
  • + Strongest anti-inflation, a top-3% account with modest absolute trust reads ~400–600, not ~900. The firmest answer to the original "everything reads ≥950" complaint.
  • + Stable as the graph grows, adding millions of near-zero accounts barely moves the core's log-raw values. It was the rank that inflated when the crawl 6×'d (§3's darkening); magnitude scores won't drift upward run-to-run for no reason.
  • Hard to explain, there is no one-sentence plain-English meaning of "your fintech score is 523."
  • Feels harsh on consumer surfaces, genuinely good accounts sit 300–600; top-3% can read like a failing grade on a shareable card.

Rank scale (reads like a percentile)

  • + Instantly legible, "≥950 = top 0.5% of the graph," 900 ≈ top 5%. One sentence; ideal for product copy and shareable cards.
  • + Flattering mid-range, real users see 750–940, which is exactly what a share-your-card GTM motion wants.
  • Inflation creeps back, with a population dominated by near-zero accounts, every real account ranks high: "too many ≥950" softens into "too many ≥850" rather than disappearing.
  • Number gaps are meaningless, 940 vs 880 may be a hair's width or a chasm of actual reputation; rank flattens that away.
  • Population-sensitive, every deeper crawl re-inflates displayed scores even when nobody's reputation changed.
The truthful instrument vs. the legible one. Since the two never disagree on order, the strongest play may be both: the rank scale on consumer-facing cards and leaderboards (legibility + share-ability) and the magnitude scale for analyst-facing or longitudinal views (stable across runs, real gaps). If exactly one must ship, rank usually wins for GTM, at the accepted price of mild score inflation and run-to-run drift as the graph grows.

Leaderboard sanity, top 10 per sector under v2.1

The decorrelation does not disturb who floats to the top, every sector's leaderboard is its genuine authorities, and crossovers appear exactly where they should (@elonmusk in robotics + space only; @karpathy in AI + robotics; @jigarshahdc in climate + nuclear):

ai/ml
@sama
@karpathy
@gdb
@ilyasut
@natfriedman
@demishassabis
@ylecun
@_jasonwei
@merettm
@eladgil
fintech
@arampell
@collision
@zachperret
@mickymalka
@patrickc
@fintechjunkie
@davidmarcus
@astrange
@mlevchin
@rabois
robotics
@botjunkie
@andyzengineer
@karpathy
@rodneyabrooks
@elonmusk
@svlevine
@hausman_k
@pabbeel
@pathak2206
@lerrelpinto
space
@lrocket
@jeff_foust
@sciguyspace
@thesheetztweetz
@rookisaacman
@elonmusk
@peter_j_beck
@torybruno
@gwynne_shotwell
@bridgitmendler
biotech
@andybiotech
@jaybradner
@lifescivc
@bradloncar
@rtnarch
@peterkolchinsky
@cngarabedian
@semodough
@noubarafeyan
@recursionchris
climate
@jigarshahdc
@mliebreich
@hausfath
@natbullard
@timmlatimer
@shaylekann
@sacca
@orbuch
@posamentier
@_hannahritchie
quantum
@preskill
@andrewmchilds
@jaygambetta
@mjbiercuk
@jfitzsimons
@quantumashley
@earltcampbell
@wjzeng
@quantum_jake
@cjsavoie
nuclear
@whatisnuclear
@atomicrod
@ritab66
@katyhuff
@rachelslaybaugh
@caorilne
@isabelleboemeke
@energybants
@j_lovering
@jakedewitte
defense
@ktmboyle
@jtlonsdale
@traestephens
@shivon
@palmerluckey
@shaunmmaguire
@eladgil
@lulumeservey
@ssankar
@emilmichael
semi
@iancutress
@rajaxg
@clattner_llvm
@sallywf
@dylan522p
@lisasu
@szeloof
@jimkxa
@naveengrao
@benbajarin

Trade-offs & the dead ends (so nobody re-tests them)

  1. Purity weighting is harsh on sector-unendorsed accounts. An account no sector seed (or seed-adjacent path) specifically endorses collapses in that sector, @uselegion's AI cell drops to 0 (effectively unscored there; its space 848 / biotech 715 stay strong). Honest, but tunable: the share exponent (shareγ, γ<1) softens it if calibration shows it's too aggressive.
  2. The iron law still holds for percentiles. Even under purity weighting, @sama's quantum percentile is 1000, his diluted quantum raw still beats 99.9% of a mostly-zero population. It's the un-pinned scale (either variant) that displays the separation. The pair is the point.
  3. The purity edge weight needs a pipeline re-run (same cost as Approach 2, one extra per-sector edge-weight factor). Both scale variants are post-hoc on preserved raws.
Tested and ruled out (v20): Contrastive subtraction (subtract μ × the account's own other-sector mass, whitening done "right," as subtraction): the only variant that zeroes @sama's quantum, but it zeroes 64–83% of the graph per sector and recreates the radar's all-0s profiles. α = 0.5 (localized walk): no effect, hubs are one hop from seeds. Share × global: decorrelates (0.50) and differentiates hubs, but a person's sector score then depends on their other sectors, breaks the pure graph-rank semantics §13 was chosen for. Percentile within the seed-endorsed pool (11k–22k accounts/sector): most of the graph is unranked and hubs stay elite in every pool, at best a future leaderboard-eligibility filter, not a score. Percentile among LLM-relevant accounts: untestable, the relevance columns in the current accounts export are empty.

Ship-it v2.1. Scores: purity edge-weighting + Approach-2 source down-weight (one pipeline re-run). Scale: two rank-identical displays, final pick deferred to product calibration, the magnitude scale (LOG-KNEE: §13's log-raw feel kept, bulk scores ≈ §13 × 0.95, top 0.1% spreads 950–1000) or the rank scale (KNEE: bulk reads as percentile, "≥950" = top 0.5%). Result either way: sector↔global 0.54 → 0.40 with every sector improved, leaderboards intact, hubs elite-but-differentiated, specialists shaped, junk lower, no 0s for genuinely strong accounts. Interim path: un-pinning §13's scale on the unchanged §13 scores ships with zero ranking risk while the pipeline re-run is scheduled. Unchanged: never the whitened _score; radar stays a per-card visual only. Shipped: this was the production scoring in June, verified in §15 (since superseded by the 2026-07-22 full-graph rebuild, see banner).

15Production verification (2026-06-10), v2.1 was live and matches

v2.1 is no longer a proposal. A production export, data/eigen-rep-prod/eigentrust-v2.1-downweight-purity-logknee.csv (6,752,453 rows, flat 24-col schema), landed on 2026-06-10 implementing the §14 recommendation: purity edge-weighting + famous-source down-weight + log-knee magnitude scale. Verified against this report's offline computation: ranks match (global 0.99999, sectors 0.996–0.9997, all ten top-15 leaderboards identical); the small displayed-value differences are calibration-anchor cosmetics, quantified below.

What was verified

checkresult
Population6,752,453 rows · 0 unknown handles, exactly the scored set of the live graph
Global ranksspearman 0.99999
Sector ranksspearman 0.996–0.9997 across all 10 sectors (tie-aware, non-zero accounts)
Top-15 leaderboardsidentical in all 10 sectors (15/15)
Top-1000 per sector≥978/1000 in 9 sectors; climate 945/1000
Hub rows@sama AI 1000 · quantum 958 · global 996, within ±1–2 of the §14 magnitude table
Junk & structure@ouigo_es ai/ml 266 (report 267), 0 elsewhere; @uselegion AI 0, matches exactly

Per-sector rank agreement

sectorrank agreement (spearman, non-zero)top-15 matchtop-1000 overlap
ai/ml0.9996815/151000/1000
fintech0.9996615/15992/1000
robotics0.9991615/151000/1000
space0.9992115/15998/1000
biotech0.9990715/151000/1000
climate0.9973015/15945/1000
quantum0.9962315/15990/1000
nuclear0.9994715/15987/1000
defense0.9985215/15978/1000
semi0.9979915/15980/1000

Method: tie-aware Spearman on 200k-account random samples restricted to non-zero accounts; top-N lists ranked by production score with raw-score tiebreak. Script: scripts/experiments/v22_verify_prod_v21.py.

Why displayed values differ by a few points (and why it doesn't matter)

Production's bulk scores sit +5 to +30 points above the report's tables, most at the bottom of the scale, zero at the top. This is calibration, not ranking: fitting the prod−report delta against log₁₀(raw) gives a perfect line (residual σ = 0.26, below rounding), which is the signature of the same formula with a slightly different lo anchor. The root cause is the non-zero set: production counts a few hundred thousand more accounts as non-zero per sector (different dust threshold), which moves the 0.5th-percentile floor of the log scale and the _percentile denominator. Every shift is monotone, nobody's rank moves.

Two flags for the pipeline owner. (1) Climate is the loosest sector (spearman 0.9973, top-1000 overlap 945/1000, +450k extra non-zero accounts), and one concrete example: @matty_'s climate raw is ~1.4× lower in prod than offline (score 338 vs 354), breaking the otherwise perfectly monotone shift pattern. Harmless at this scale, but worth a one-line check on convergence tolerance / input freshness for the climate run. (2) Pin the calibration constants to make values bit-reproducible: dust threshold >1e-15, lo = 0.5th pct of log₁₀(non-zero raw), knee = 99.9th pct, band = 950, linear percentile interpolation.

Where everything lived (as of 2026-06-10)

16v2.3, content-aware sector reputation (2026-07-18)

§1–§15 tuned the graph; §16 adds what the graph provably cannot supply. The whole scoring line (v1 → v2 → v2.1) is graph-structural only, it swaps the seed/teleport vector and reweights edges. Two proofs (below) say that can never fix the sector pollution the founder raised: a mega-hub the sector seeds genuinely follow keeps a top sector percentile no matter how edges are weighted. The missing ingredient is content, a per-account, per-sector topical-relevance signal r_s derived from what an account is and posts, which the relevance columns of the v2.1 export were empty for.

v2.3 shipped that as a layered stack, all live in the June-graph build and its read-only API (2026-07-18; since superseded by the 2026-07-22 rebuild, see banner): (0) the content signal r_s; (3) a content gate + account-type filter that removes off-topic accounts from a sector; (2) the floored purity-ratio ρ specialty lens; and (4) a decibel scale that de-saturates the top. Same 2026-06-03 graph, same 318 seeds; v2.1's global ranks are unchanged. Research record: docs/technical/eigenrep-v3-redesign.md (diagnosis + literature survey) & eigenrep-v3-results.md (what shipped, with numbers).

The finding, why no graph change can fix sector pollution

Proof 1 · linearity. Personalized PageRank is linear in the teleport vector, so π_global = Σ_s (|S_s|/|S|)·π_s, each sector score is an additive component of the global score on the identical operator. Swapping the seed vector (which is all EigenRep does) can never escape "sector ≈ global."

Proof 2 · the iron law (§10–§12). Edge-weighting blew Altman's within-account AI ÷ quantum raw ratio to 2,218× and his quantum percentile never left 1000, because even his crushed quantum raw beats 99.9% of a mostly-empty graph. You cannot demote a hub on a percentile by reweighting; you have to refuse it the score.

Sector "flood" on live v2.1, trust reaches most of the graph, so every celebrity clears "top 5%":

sectoraccounts scored% of graph
nuclear4,290,06563.5%
semiconductors3,927,47658.2%
defense3,874,72757.4%
ai / ml2,453,03036.3%

Live probe: @elonmusk & @realdonaldtrump read 999p in all 10 sectors; a prototype found 86% of the defense top-500 had no topical term in their own bio.

Layer 0 · the content signal r_s, what an account is, not who follows it

For the top ~40k accounts per sector (the union where all pollution lives, the 6.6M-account tail already scores ≈0), embed name + bio + tweets with all-MiniLM-L6-v2 and take the cosine to a per-sector centroid (½ seed-account text + ½ a hand-written sector description). r_s ∈ [0,1] is semantic, not keyword, the named failure mode is Jimmy Fallon's bio joking "astrophysicist" and landing in a quantum top-500; the embedding places his comedy far from the quantum centroid regardless. The signal cleanly separates real operators from famous bystanders:

accountwhat they areon-topic r_sbest off-topic
@whatisnuclearnuclear engineernuclear 0.670.52
@preskillquantum physicistquantum 0.610.49
@lrocket · Tom Muellerrocket propulsionspace 0.610.50
@samaAI (OpenAI)ai/ml 0.500.40
@elonmuskgeneralist mega-hubspace 0.35 (peak)
@jk_rowlingnovelistquantum 0.21 (peak)
@mrbeastcreatorai/ml 0.19 (peak)
@jimmyfallonTV hostclimate 0.21 (peak)

Experts sit at 0.50–0.75 in their domain; celebrities peak at ~0.2–0.35 everywhere. The per-sector gate threshold, θ = median r_s of the sector's top-1000 (quantum 0.55, space/nuclear 0.41, defense 0.36), falls in the gap between them.

Layer 3 · the content gate, earn the sector or leave it

An account holds a sector-s score only if eligible(v,s) = is_seed(v,s) OR abstain(v) OR r_s ≥ θ_s, otherwise the score is zeroed and the percentile recomputed over the surviving pool. Three hardening layers close the gaps:

Seed-whitelist, a thin bio ≠ not an expert

A hand-curated sector seed is exempt from its own r_s floor. Rescued (would drop on r_s alone): @elonmusk in space (r_s 0.35, kept as a space seed), plus @sacca & @shellenberger (nuclear), @jaygambetta (quantum), @masason (semi), @ericschmidt (defense), terse-bio operators the embedding can't see but who genuinely belong.

Account-type filter, the r_s-passers that aren't people

X verifiedType + isAutomated, scraped for all 20,367 gate-survivors. 672 excluded even when a stray keyword clears r_s: @boeingspace, @cerebras, @federalreserve, @dhsgov, @nasauniverse, @coindesk, @elevenlabs… Government is split by a name heuristic so agencies drop but astronauts/officials stay.

Deeper coverage for thin bios, tweets + other languages

Tweets: for 1,308 accounts whose bio alone was too thin, r_s was recomputed from bio + up to 20 original tweets, e.g. @jimmyfallon space 0.47 → 0.14 once his actual (comedy) tweets are read, so he gates out. Languages: 321 non-English "abstain" accounts were scored in a separate multilingual model, 128 kept in-sector (e.g. Japanese AI/quantum/robotics researchers), 193 gated (parenting/creator accounts), instead of blanket-keeping them.

The effect is invisible at the top (the top-15 leaderboards were already clean, §15) and decisive in the 990–999 percentile band, the number a card actually shows. All scraped inputs are committed under data/eigen-rep-prod/ (SCRAPED_DATA.md) so nobody re-scrapes; total one-time cost ≈ $8.

Layer 2 · the purity-ratio ρ specialty lens, and the pollution, gone

On top of the gate, the floored purity ratio ρ = tsector / tglobal (λ=1, applied only where global rank is elite so a tiny denominator can't explode) demotes an account's off-domain sector standing, the "specialty lens." The table below is the combined payoff, gate + ρ, v2.1 → v2.3 percentiles, on the accounts the founder named. Net sector↔global percentile correlation over the surfaced pool: 0.38 → 0.16 (avg of 10 sectors).

accountsectorv2.1 pctv2.3 pctwhat happened
JK Rowlingai/ml · quantum · nuclear998 · 999 · 9990 · 0 · 0novelist, gated from every sector
MrBeastai/ml9990creator, gated
Barack Obamaai/ml · defense999 · 9990 · 0politician, gated
Turning Point USAspace · defense999 · 9960 · 0advocacy org, gated
Piers Morgandefense9990broadcaster, gated
Elon Musksemiconductors9990off-topic for him, gated
Elon Muskspace9991000genuine (SpaceX), kept #1
John Preskillquantum10001000in-domain, kept #1
John Preskillnuclear · semi739 · 9980 · 759ρ demotes his off-domain standing
@whatisnuclearnuclear10001000in-domain, kept
@whatisnuclearai/ml994379ρ demotes off-domain
Authority vs specialty, a product choice, and it is reversible. The gate removes the celebrity/brand pollution (every "0" above is the gate, identical with or without ρ). ρ is the specialty lens layered on top: it zeroes an expert's off-domain sectors. v2.3 = specialty ("who is the real expert in this sector"); the gate-only variant (v2.2) keeps an account's full multi-sector authority. Every consumer prefers v2.3 with v2.2 → v2.1 as automatic fallbacks, so switching back is a file swap, not a code change.

Layer 4 · the decibel scale, the elite band is finally scarce

The log-knee magnitude scale (§14) put 13,067 accounts at ≥900, "top" meant nothing. v2.3's global headline is a decibel scale: clip(1000 + 140·log₁₀(raw / r_ref), 0, 1000), anchored to a frozen #1-account raw so it never re-inflates as the graph grows. Now 319 accounts clear 900. Sectors and the world rank also carry a fixed-headcount tier ladder.

≥ 900 accountscount
log-knee score (old)13,067
decibel db (v2.3)319
decibel at world rankdb
rank 100950
rank 1,000751
rank 10,000636
rank 100,000487

Tier ladder, fixed headcount by world rank (per sector and global)

LegendTitanEliteNotableRankedUnranked
1004001,50028,00070,0006.65M
1–100101–500501–2k2k–30k30k–100k>100k

Our 12 sample accounts in the final v2.3 scoring

The accounts this report has tracked since OLD → NEW → IMPROVED, as they stand in v2.3, decibel headline, world rank and tier. None currently holds a vetted sector standing: all 12 sit below the top-5000-by-graph-score band the content gate vets, so under the Tier-0 rule "only surface a sector score for a content-verified account" they show global standing only. (An earlier version of this table showed sector scores of 200–889 here, those were un-vetted tail artifacts, removed by the Tier-0 fix; see eigenrep-v3-audit.md. The Tier-2 full-graph r_s embed on the roadmap will extend sector coverage to accounts like these.)

accountworld rankdecibeltiervetted sector standing
@pavelprata10,885631Notable, none (not in vetted band)
@wazzcrypto85,247502Ranked
@zemariamacedo111,783475Unranked
@murphcapital159,850421Unranked
@redphone140,179448Unranked
@matty_210,338385Unranked
@lukedelphi183,571401Unranked
@iamsage415,837318Unranked
@therosieum257,608363Unranked
@fabrizio_builds522,133298Unranked
@uselegion1,401,598208Unranked, (Legion reference acct)
@legiondotcc223,228378Unranked, (Legion reference acct)

Decibel = frozen-anchor magnitude 0–1000; tier by world rank (Notable = 2,001–30,000). That the whole set shows "no sector" is the honest post-audit state: v2.3 only vouches for the ~800–4,100 content-verified accounts per sector (quantum 797 … defense 4,135); broadening that coverage is the Tier-2 build.

What we tried, and the two hard limits (the research)

ρ is the survivor of a full sweep of source-side decorrelators, each a complete EigenTrust re-run on the 39.6M-edge graph. Metric = sector↔global rank correlation on the raw sector vector (lower = less popularity leakage); v2.1 baseline = 0.40.

approachcorrverdict
v2.1 baseline, purity edge-weight + famous-source down-weight0.40keep
IDF / PMI edge weighting0.61 / 0.60✗ backfires, floats junk (popularity discount ≠ topic)
degree-norm ÷ √in-degree0.32✓ safe mild win
floored purity ratio ρ (λ=1, floor ≥ 900th pct)0.10✓✓ the win, specialists sharpen, titans stay #1 in-domain
ρ with floor ≥ 500th pct, or ρ on IDF/PMI edges−0.1 to −0.3✗ over-corrects → whitening trap (junk floats to 900+)
topical edge-weight with the 40k r_s0.65–0.68✗ needs r_s for all 6.75M (~38-hr embed); the tail re-pollutes
Two limits, both confirming the design. (1) No graph-only method demotes an in-community celebrity, @elonmusk stays 957–966 and @jk_rowling 947–964 off-domain under every safe graph variant, because the sector seeds genuinely follow them (ρ ≈ 1). The last-mile fix is the content gate (Layer 3), which zeroes them outright. (2) Doing the decorrelation at the source (topical edge-weighting) needs the content signal for the whole 6.75M-node graph, a ~38-hour embed, deferred as the one remaining architectural upgrade. Everything else was live in that June-graph build.

Where v2.3 lived (June-graph build)

17Adversarial audit & hardening, the all-green scorecard (2026-07-18/19)

§16 shipped v2.3; then it was stress-tested to breaking. A five-agent adversarial audit (each agent re-deriving from the live CSVs, not from this report) found v2.3 strong in its showcase band but failing below it: the content gate had vetted only the top-5000/sector (~0.6% of the graph), so un-vetted junk held Elite sector tiers; the global ladder still ranked brands/celebrities among the investors; and no validation existed at all. What followed is a systematic, measured hardening, and the headline is that an eval harness now scores six quality axes and every one is green.

The quality scorecard, eval_harness.py, ~196 handle-verified cases

axiswhat it measuresscore
Expert recall117 real sector experts hold their sector99%
Pollution precision48 celebrities / athletes / musicians gated from every sector100%
Hard-neg precision26 sector media / newsletters / brand-orgs kept out of top standing100%
Bridge retention7 genuine dual-sector accounts hold both100%
Global tier hygienebrands / agencies out of the investor tiers100%
Adversarial gamingbio-stuffers blocked from inheriting a sector score100%

The single recall miss is Mira Murati (a borderline case at the rescue threshold). A broad manual sweep confirms every sector's top-15 is genuine experts. Full record: docs/technical/eigenrep-v3-audit.md.

What was fixed, three tiers of hardening

Tier 0 · honest denominators

The un-vetted tail (6.7M accounts) is zeroed in every sector, so a sector percentile is computed over the content-vetted pool, not the flood, a fly-fishing report no longer read "space Elite". Global was re-sourced verbatim from the prod v2.1 CSV (a build had regenerated it from experiment raws and drifted up to 63% for mid-tier accounts).

Tier 1 · the global ladder is now investors

Org filter → "Org" tier: 672 brands / media / agencies / VC-firms (OpenAI, NASA, Tesla, Sequoia, YC, CNBC) pulled out of Legend/Titan/Elite. ρ_global → "Fame" tier: 298 generic-fame individuals (CNN, Bernie, Pelosi, Tom Hanks) demoted by a seeded÷uniform-PageRank purity ratio. Seed-badge: the 318 curated anchors are flagged (global_is_seed) so the elite tier isn't misread as organically discovered. ρ demote, not delete: a floored purity multiplier restored the content-verified cross-sector bridges the earlier ρ had zeroed (Preskill nuclear 0→369).

Tier 2 · the signal, measured

ALF follower-composition backstop asks: is an account's follower set over-represented in sector s vs the base rate? Thin-bio experts followed by sector people are rescued, Peter Shor, whose bio is song lyrics (r_s 0.29), has followers 54× concentrated in quantum → quantum Legend; celebrities followed by everyone stay at lift ≈ 1 and are not rescued. Recall 73% → 99%. ALF corroboration closes the bio-stuffing attack, a stuffed bio can't move the follower signal, so "@realdonaldtrump + defense keyword" is blocked. Media/brand detector catches the unpaid outlets X's verifiedType misses (The Robot Report, Endpoints News, EE Times, AnandTech), lifting hard-negative precision 38% → 100%.

Honest limits, measured, not hidden

A negative result, kept. Extending the content signal past the top-5000/sector (toward a full-graph embed) was tested and reverted: below the top band, single-cosine + ALF cannot separate experts from noise, a pet-pig account surfaced at defense 950, so more coverage adds pollution. ALF had already captured the affordable coverage via the graph; the ~34-hour CPU full embed would make quality worse at the current signal precision. The remaining ceiling is individual sector journalists (people who cover a field, entangled with the experts who also write and host) and non-English accounts, both need a higher-precision person-type classifier, not more of the same signal. Tier 3 (per-sector localized sub-graph ranking, à la OpenRank) remains the one deferred re-architecture; it is speculative, not a fix, since the current gate + ALF already hits every measured target.

18The metric was wrong, a ground-truth re-test (2026-07-19)

§17 closed all-green; then the objective the whole report was tuned against went on trial. Every source-side decorrelator was re-run with tweaked values, and three independent adversarial reviewers audited the result. One conclusion: the corr number this report optimized since §11, sector↔global correlation, was measuring noise, and on the metric that actually matters no decorrelator beats any other, including doing nothing. The scoring doesn't change; the way it is judged does, and that is the real fix.

Why corr was the wrong ruler, four proofs

prooffinding
wrong regionthe top-100 a card actually shows is ≤0.01% of the whole-graph statistic, a full top-100 reshuffle moves corr by <0.0001. 99.99% of it is dormant accounts no one sees.
unstablethe same baseline reads 0.396 or 0.496 depending only on how zero-tied accounts are ordered. A ruler that wobbles 0.1 on a bookkeeping choice can't grade 0.1-scale changes.
no signala naive expertise oracle returned −0.50 in all 10 sectors, a pure zero-atom index artifact, not a target.
wrong directiondone right (over the real community) the legitimate target is positive, +0.28…+0.48, sector-specific, real experts are globally prominent. "Minimize toward 0" was chasing past the signal floor; the old "0.10 = the win" was over-whitening.

On ground truth, every decorrelator is the same, and why

North-star metric = AUC: per sector, the fraction of (real expert, non-expert) pairs the ranking orders correctly. Rank-based, un-gameable by rescaling, lives at the top where the product is. Measured on the raw decorrelator vectors, ~12 experts × sector media/celebrities:

decorrelatorAUC (expert>media)verdict
BASE (no decorrelator)0.994already at the ceiling
purity-ratio ρ (shipped)0.994identical
degree-norm / IDF / PMI / matched-null0.994identical
posterior-share0.855the only mover, worse (floated 82 junk accts into a top-100)

The corr spread across these was huge (0.60 → −0.21); the ground-truth difference is zero. The reason is a hard ceiling: a graph-only decorrelator can only flatten uniform fame, never demote it. Elon in quantum sits at percentile 999.9 → 998.1 (ρ) → 999.5 (matched-null), no method, however principled, pushes a universally-followed celebrity below the real experts. Only the content gate (what an account posts) and the org/media filter crack that, which is exactly what they already do (§16–§17).

The one robustness idea, tested and declined, the matched-null denominator

ρ = tsector/tglobal is a known, sound quantity (1 − Gyöngyi spam-mass, a likelihood ratio). Theory says the denominator should be uniform-popularity, not the investor-seeded global, a version that needs no bridge-protecting floor. It was built and measured against the shipped floored ρ on 29,076 content-eligible cross-sector standings:

methodmedian bridge pct% crushed <pct-100
ρ unfloored076.6%
ρ floored, shipped7472.9%
matched-null (no floor)5749.6%

Declined. The robustness claim doesn't hold empirically, the simple floor protects genuine cross-sector bridges better than the principled null (3× fewer crushed), with no offsetting AUC gain. The elegant theory loses to the measurement.

What changed, the ruler, not the scores

Kept: the shipped decorrelator (ρ + demote-floor). Nothing beats it on ground truth, and the low-corr variants over-whiten below the real signal floor. Retired: corr as an objective, it's now a one-line tripwire that fires only on inversion or fame-leak. New north star in eval_harness.py, on the live scored CSV:

sector AUC (expert > non-expert)score
mean across sectors, experts vs sector-media99.5%
weakest sector (ai_ml)95.8%
experts vs celebrities99.6%
The honest takeaway. The sector scores are at the quality ceiling of what the graph decorrelator can deliver, the re-test proves there is no better setting to find. The remaining headroom is not in the decorrelator at all; it is in the content lever (the full-graph r_s embed, per-sector localized ranking, Tier 2/3), the only thing that can reach the fame the graph cannot.

19Can we broaden sector coverage?, the content-lever ceiling (2026-07-19)

The obvious next ask: more accounts per sector. Two levers, tested end-to-end. A bigger embed union (top-5000 → top-20000/sector, 40k → 140k accounts) adds nothing, vetted coverage is flat (155k → 154k), because the content gate, not the union size, caps the pool. Lowering the content bar θ does broaden (+11–23%) and even recovers a real expert the gate had missed, but it leaks cross-sector fame the gold-set eval is blind to. Coverage sits at the content-precision ceiling; production is unchanged, and the harness gained a leak guard.

θ-lowering, the coverage/precision trade, measured

content bar θvetted coveragegold recallcross-sector fame leaks
1.0 (shipped)154,066116/1170
0.85173,283 (+11%)117/117 (recovers Mira Murati)2, Karpathy→quantum, Lex→defense
0.70191,449 (+23%)117/1176, Tyson/Nye/Nadella/Karpathy→quantum, Greta→nuclear, Lex→defense

The gold-set scorecard rated θ-lowering a free win (recall ↑, AUC → 1.000, pollution/hard-neg clean), falsely: the leakers aren't in the gold negatives, and the worst (Karpathy, Nadella, Lex) are s0 seeds of a different sector, invisible to a celebrity/media list. Only a hand-built adversarial leakage probe caught them. That probe is now a permanent harness axis (cross-sector leakage: 8/8 on production).

What this means

Keep k=5000 at θ=1.0. The fame-purity filter this pointed to was then built and tested (ρ = sector/global standing; leakers ρ≈0, real experts ρ>24): it cleanly gates every cross-sector leak and recovers the one expert the gate had missed (Mira Murati), but coverage lands right back at baseline, because the accounts a lower θ admits are almost all fame, correctly removed. The deeper band is fame, not hidden experts, which also settles the 34-hour full embed (it would only reach even-deeper fame). And Tier 3 (per-sector localized PPR, a different graph algorithm) was tested too: it can't separate them either, because a famous account is central to every community. The whole investigation converges: graph structure can't tell sector-fame from sector-expertise; only the sector/global ratio and the content signal can, both already in the system. The one lever that would move the ceiling is a better content / person-type classifier, not more graph. Production scores unchanged; banked along the way: an abstain-spam hardening, a cross-sector-leakage guard in eval_harness.py, and a working fame-purity filter (RHO_FLOOR) on the shelf.

20Architecture audit & the July-2026 state (2026-07-20)

The whole system was then put through a 5-front, literature-grounded audit (global core, sector decorrelator, content gate, eval methodology, red-team, each reading the live code and grounding against the papers, every load-bearing number re-verified). It confirmed the big design choices are sound, corrected a few things we'd mislabeled, found one real production hole and fixed it for free, and, most usefully, mapped where the genuine remaining headroom is and is not.

Corrections the audit forced (intellectual honesty)

what we'd saidwhat's actually true
global is "downweight + purity" weightedthe global score is plain personalized PageRank (verified bit-for-bit); the purity edge-weight + famous-source down-weight apply to the sector runs only. The filename/description conflated them.
"every decorrelator is identical / the ρ swap is neutral"that was an artifact of an underpowered eval, the AUC north-star saturates at 1.000, so it can't tell systems apart. Absence of evidence, not evidence of absence. The proper fix is pooled graded judgments over the real top-k with confidence intervals.
"graph structure can't separate fame from expertise"overstated, ρ (a graph statistic we already compute) separates them ~3 orders of magnitude; raw PageRank mass can't, but the popularity-normalized ratio can.
precision "100%, all green"precision measured only on the ~196 accounts we already trusted. 74% of sector standings are follower-rescued with no content check, never sampled, the real hole (next card).

The real hole, found, measured, and fixed for free

The follower-composition backstop admits accounts on who-follows-them alone. A random sample showed it is excellent in big sectors (AI: real researchers/VCs) but content-blind in small ones, quantum surfaced a DJ, a phone company (OnePlus), and a gaming exec at top-percentile scores. Fix (no scraping, the bios were already in our data): embed the follower-rescued band and content-check it too. Result:

effectvalue
junk sector-standings removed9,434 (quantum −3,040, −18%)
expert recall / precision / leakage / AUCheld (99 / 100 / 100 / 99.5%)
The honest ceiling, made concrete. The bio-check gates the obvious junk (OnePlus bio→quantum 0.06) but cannot gate the hard cases: a gaming exec's bio reads 0.30 to quantum, higher than real physicist Peter Shor's 0.29. No bio threshold separates them. Cracking that needs world knowledge (a model that knows Shor is a physicist and Skee is a DJ) applied only to the few thousand accounts that surface, not more graph, not a bigger embed, and not an SEC-filing filter (most real experts have no filings). That is the one remaining lever, scoped as a bounded next step, not a dependency. The integration hook is already built and demonstrated: apply_gate.py reads an optional SECTOR_CLASS classification (the shape a prod tweet-DB + LLM emits) that is authoritative in the ambiguous band, live it gates @djskee/quantum while keeping @petershor1/quantum (r_s 0.23 vs 0.29). Absent the file, it is a no-op and the shipped scores are the pure rule results.

Technical mechanism of each change (with a concrete before→after)

changemechanism (technical)example: before → after
1 · Content gater_s = cosine( MiniLM(all-MiniLM-L6-v2) embedding of name+bio, sector centroid ), where centroid = 0.5·mean(seed bios) + 0.5·written sector description. Keep sector s only if r_s ≥ θ_s (θ_s = median r_s of that sector's top-1000-by-score) AND the account's followers corroborate (ALF lift ≥ 1.3).@wazzcrypto: all 10 sectors → 0 (crypto bio scores below θ in every sector, not follower-corroborated)
2 · Fame removalCelebrities/politicians fail both paths: their bio doesn't match a sector (low r_s) and their followers aren't sector-concentrated (ALF lift ≈ 1.0, since a famous account is followed by everyone). No path keeps them, so every sector zeroes.@barackobama: quantum 966→0, nuclear 965→0, robotics 968→0 (keeps a global fame rank only)
3 · Org / brand filterorg = ( X verifiedType == Business ) OR is_agency(name) OR media/brand detector (regex + curated list). org accounts are removed from every sector and assigned the global Org tier (unpaid brands X's verifiedType misses are caught by the detector).@openai: ai_ml 977→0, semi 967→0 → global tier Org
4 · Specialty lens ρρ = t_sector(v) / t_global(v) (personalized-PageRank masses). For elite accounts (global pct ≥ 900), sector score ×= max(ρ, 0.15)1, a fame-uniform account has ρ≈0 in off-domain sectors and is demoted. (The gate does the hard zeroing; ρ shapes the surviving elite.)@sama: ai_ml 1000→999 (kept), off-domain space 967→0, quantum 958→0, focused to real domains
5 · Decibel scaleglobal_db = clip( 1000 + 140·log₁₀(raw / R_REF), 0, 1000 ), R_REF frozen = rank-#1's raw PageRank. Tiers are fixed-headcount by rank: Legend 100, Titan 400, Elite 1500, Notable 28k. De-saturates the top: 13,067 accounts ≥900 under the old log-knee → 319 under decibel.same ranking, un-squashed: only ~100 accounts are now 'Legend' instead of thousands tied at ~1000
6 · Follower backstop + bio-checkALF lift = ( sector-followers(v)/followers(v) ) / base_rate_s. Rescue thin-bio experts at lift ≥ 2.5; the 2026-07-20 fix additionally requires a rescued account to clear a content floor (RESCUE_FLOOR = r_s ≥ 0.15), gating follower-only junk whose bio is off-topic.@oneplus: quantum 936→0 (bio r_s 0.06). @djskee: 939→948 survives (bio 0.23 ≈ real physicist 0.29, the ceiling)

What each change impacted, at scale, with examples

changewhat it impacted (at scale)example accounts
1 · Content gateZeroed the graph-fame noise, a sector score now survives only if content backs it. ~145,600 vetted (account,sector) standings remain across the whole 6.75M graph; everything else is 0.@wazzcrypto: 10 graph sectors → 0 (crypto influencer, no deep-tech bio)
2 · Fame removalEvery celebrity / politician gated from all 10 sectors (they keep a global fame rank).@barackobama, @jk_rowling, @mrbeast, @neiltyson → 0 in every sector
3 · Org filter672 brands/agencies/media → the Org tier and off the person-lists; a 2026-07-20 pass cleaned 359 more mid-tier orgs the filter had missed.@openai/@nasa → Org; @sanofi biotech 656→0, @siemens nuclear 629→0, @us_navyseals defense 627→0
4 · Specialty lens ρOff-domain elite demoted so titans focus on their real domains.@elonmusk: 10 sectors → 2 (space, robotics); @sama → ai_ml + robotics + semi + defense
5 · Decibel scaleUn-squashed the top: 13,067 accounts scored ≥900 on the old scale → 319 on decibel.only ~100 accounts are 'Legend' now, vs thousands tied at ~1000 before
6 · ALF + bio-checkContent-checked the follower-rescued band: removed 9,434 content-blind junk standings (quantum −3,040, −18%).@oneplus quantum 936→0 (bio r_s 0.06); a sports-fan robotics 933→0

The sector scores are a spectrum, not all-or-nothing

fintech kept-scores: p10 250 / median 434 / p90 951, 63% below 500. A single account is a mix: @lisasu semi 1000 + defense 824; @pavelprata space 955 + fintech 399. A sector 0 = not a content-verified participant there, not "ranked low." The mid-tier VC accounts that zero out (e.g. @murphcapital) weren't content-verifiable deep-tech operators; their old sector scores were follow-graph fame. (@wazzcrypto looked identical to the cosine gate but the v2.5 LLM recovers his real fintech.)

21Before → after, every sector, on the tracked accounts

June (v2.1) → Now (v2.5), the exact skill-graph radar (one score everywhere). ('Now (v2.5)' throughout this section is the June-graph v2.5 build, superseded by the 2026-07-22 full-graph rebuild — see banner.) Bold = earned expertise (sector experts trust you); muted = interest (who you follow / engage with); struck = removed fame; · = never scored.

How to read every cell: two numbers, June score → Now score. When they look identical (e.g. 999→999) the score was kept unchanged, not a duplicate. Green kept (content-verified), amber endorsed middle tier (v2.4, §22), red strike removed, · never scored. The June columns are dense (graph-only put everyone in every sector); the Now columns are sparse and honest (content gate + ρ + org/fame filters + endorsed recovery).

accountoverall
June→Now
AIFinRoboSpaceBioClimQtmNucDefSemi
Real experts (AI leaders), focused to their true domains
@sama996974Legend1000999967286970965967279962253963095809650966961967962
@karpathy995966Legend999999966961999999962959964960955095708910966962970964
@ylecun994962Legend99999995395297296695818895821395109599569400963959967962
@gdb994959Legend99999996609689639512168680953095109550960957963242
@demishassabis993958Legend99999995523696696295824099999995609582288420964959962958
@andrewyng993957Legend999999945200971965954206957219952095408620961958967962
Titan, kept in-domain, removed elsewhere
@elonmusk10001000Legend972972971971999997999997965281960276963250968286975386970970
Famous non-experts, removed from every sector
@jk_rowling965765Elite908257888236956266955300534300950300950300961284958231913253
@barackobama980867Titan964300963300968300959300960300968300966300965300953300961300
Organizations, moved to the Org tier, off the person lists
@openai992946Org9770956096609550955095609560960096009670
@nasa979859Org9570955095709740953095109620962095709560
Mid-tier tracked accounts, below the vetted band, so sector scores withheld
@pavelprata914631Notable39130045330044025495730090530045423744904950505300434294
@wazzcrypto740502Ranked3951828917934151845002004910387048105100503196361183
@zemariamacedo704475Unranked4922775913005232775652715422475282096112346090591291566274
@murphcapital630421Unranked4292854863004772716373005013004903004780557300536300422251
@redphone666448Unranked49405683005210534197568162520054505630579195532157
@matty_581385Unranked4280545300472177552298497300338056528353305002184290
@lukedelphi604401Unranked409286536300486292522297480269494212542299571206543300522300
@therosieum552363Unranked39105343004590526291460300247054930052704832202290
@fabrizio_builds464298Unranked359041830035105253004433001340488031205052971550
@uselegion342208Unranked·3703005323747530039030079010701320742081210
@legiondotcc572378Unranked4292585253004292965413005743004682185282195220531271468204
Junk, one still leaking (the ceiling case)
@djskee847581Notable4423008483004422655053005422584763009393004140505300882300

22The endorsed middle tier, recovering the over-gated (v2.4, 2026-07-21)

The content gate (§16) trades recall for precision: it zeroes any (account, sector) whose bio doesn't clear θ. Correct for fame noise, but it also produces false negatives, genuinely distinctive operators whose bio just doesn't name the sector.

Canonical case, @wazzcrypto: by the follow graph he is fintech rank 8,702 / 6.75M (top 0.13%) and is directly followed by fintech seed @howardlindzon, yet his bio (“shadowy super speculator”) scores r_s≈0 in every sector, so v2.3 zeroed him everywhere. That is the gate over-reaching.

Recovery rule (per account, its top sector only): recover a gated (v,s) iff Os(v) ≥ 1 (≥1 sector-s seed follows v) AND specs(v) ≥ 10·spec2nd(v) (distinctive, s dominates the account's own profile) AND top-20k within-sector rank, minus fame-flagged. Distinctiveness is what rejects fame:

accountfollowed bydistinctiveness (top ÷ 2nd sector)result
@wazzcrypto1 fintech seed3,407×recover fintech → 793
@elonmusk17 defense seeds1.1× (uniform)rejected, fame
@realdonaldtrump / @paulg / @pmarca15–23 seeds2.8× / 1.4× / 1.3×rejected

Score: min( logknee(specs) × 0.9, sector rank-500 ceiling ). The 0.9 endorsement discount + ceiling hold the whole recovered band below the content-verified elite (max ~875 vs elite 900+), so 0 endorsed accounts enter any sector top-100 (verified all 10). Each carries is_endorsed=1 + endorsed_sector, leaderboards filter to content-verified while cards still show the endorsed score.

Org handling: the pool draws from the 6.6M tail (no type data), so orgs slip in. A targeted verifiedType scrape of all 55,485 candidates (~$10, full raw profiles saved, §23) removed 1,583 Business/Gov-agency/automated accounts. Org outbound reputation propagation is untouched (display-only filter; @anthropicai still boosts whom it follows).

Result: 53,902 recovered with capped middle scores; @wazzcrypto fintech 0→793 (Notable, endorsed); @stripe/@intel/@nvidia stay 0; 0 endorsed in any top-100. Residual meme/parody contamination (personal-type accounts the type-scrape can't see) stays mid-band, contained by the discount + flag; an LLM pass over raw.description clears it with no new scraping.

23Data-capture lesson, store the complete raw API response (2026-07-21)

A process lesson worth recording, because it cost real money. The production graph scrape called the twitterapi.io profile endpoint (GET /twitter/user/info) for every account, then normalized each response down to five columns, name, bio, follower_count, following_count, total_tweets, and discarded the rest of the paid-for payload.

When the seed-endorsement recovery needed to keep organizations off the person-lists, the field that does it cleanly, verifiedType (Business / Government / …), had never been stored. We had to re-scrape 55,485 accounts (~$10) to recover data already bought once. Re-paying for discarded data is the tax on normalizing too early.

Fixed: scrape_account_type.py now persists the entire raw profile object under a raw key (~24 fields). The recovery set's full profiles live in data/eigen-rep-prod/recovered_profiles.jsonl.

field the API returns free why every field earns its keep
id (numeric)The only STABLE identifier, handles get renamed, IDs don't. Enables the bulk endpoint (/twitter/user/batch by userIds, ~half the per-call cost), dedup, cross-scrape joins, and rename tracking. We couldn't use the cheap batch path here because IDs were never stored.
verifiedTypeThe clean org/agency filter, the exact signal needed to keep Stripe / Intel / NASA off person-leaderboards. Not derivable from name or bio.
isBlueVerified · isVerified · isAutomatedVerification tier + bot flag, inputs to credibility weighting and spam gating.
createdAtAccount age, one of the strongest bot / sockpuppet signals.
location · statusesCount · favouritesCount · mediaCount · entities · url · pinnedTweetIds · profilePictureActivity, context, and links for sector classification, liveness/inactivity flags, and future org-logo detection, all delivered in the same call, all previously discarded.

Recommendation for the next full graph build: store the raw API response verbatim (a raw JSONL keyed by numeric id) alongside any normalized columns, for the profile GET and every other paid endpoint (followings, tweets). Storage is cheap; re-scraping millions of accounts to recover one dropped field is not.

✓ Already delivered as a handoff asset, data/eigen-rep-prod/recovered_profiles.jsonl. The complete profile (all ~24 raw fields) for every one of the 55,485 accounts in the recovery set, precisely the population that can surface in sector leaderboards and needs org-filtering. Prefetched once (~$10); the dev team should consume it rather than re-scrape. It already yielded endorse_droplist.txt (1,583 Business/Gov-agency/automated handles excluded from v2.4), gives reliable org-filtering at the top of every leaderboard via verifiedType, unlocks the numeric-id bulk path, and feeds the LLM sector-classifier (a no-scrape pass over raw.description).

24Real-world validation, and the shipped LLM + skill-graph layer (v2.5, 2026-07-21)

The v2.4 pipeline was tested against the actual production "People on the map" list that motivated the project, and two enhancements (a graded skill-graph and an LLM participant filter) were built and shipped as v2.5.

Validation, the production map, fixed

The old app surfaced famous people and brands ranked high in sectors they have nothing to do with. In v2.4 every flagged case is 0 in the wrong sector:

accountold app (v2.1)now (v2.4)the fix
Elon MuskSemiconductors 970semi 0 (now robotics 997 + space 997)specialty lens
J.K. RowlingAI/ML 9080 in every sector (Fame)fame filter
Turning Point USASpace 9500 (Org tier)org filter
TBPN (a podcast)AI/ML 9590media / brand filter
Piers MorganDefense 9500 (Fame)fame filter
@realdonaldtrump(fame everywhere)0 in every sector (Titan)content gate + fame

Of ~40 map accounts checked, all flagged brands/celebrities are cleanly fixed and crypto figures now read fintech; a residual handful of very-famous investors (e.g. Chris Dixon, still 6 sectors) carry one stray sector, the precision ceiling the bio-LLM (Roadmap B) closes.

Shipped: the graded skill-graph radar

The skill-graph is shipped: 19,608 balanced radars in skill_graph_radars.csv (June-graph build; the 2026-07-22 full-graph rebuild produces 55,061 radars in skill_graph_radars_newgraph.csv — see banner). Each account gets real anchor sectors plus graded interest secondaries (who you follow) capped below them, and true-zero where there is no connection. Two fame-resistant signals, inbound reputation (who follows you) and outbound interest (who you follow), both computed free from the existing crawl with no scraping, normalized to a measured per-sector baseline. e.g. Elon Musk: space 997, robotics 997, ai_ml 972, fintech 971, semi 970 (anchors) plus defense 386 interest; NVIDIA: semi 969, ai_ml 950; John Carmack: ai_ml 967, space 957. Producer build_skill_graph.py; design docs/technical/eigenrep-skill-graph-design.md.

June (v2.1)
Now (v2.5)
@elonmusk: June near-max in all 10 (fame). Now space 997, robotics 997, ai_ml 972, fintech 971, semi 970 anchors + interest (defense 385, nuclear 286...).
June (v2.1)
Now (v2.5)
@dreidel1 (AI/Nuclear Ninja): a balanced radar, nuclear 815 + ai_ml 819 anchors with real secondaries.
June (v2.1)
Now (v2.5)
@pavelprata: no expertise anchor (LLM: LP investor in new media, not deep-tech), so a flat scattered interest layer, not a specialist. Contrast the clean spikes above.
June (v2.1)
Now (v2.5)
@barackobama: June looked expert in all 10. Now 0 in every sector, the LLM prunes a celebrity to a global fame rank only.

Shipped: the LLM participant filter (v2.5, additive)

Shipped as v2.5 (additive). We ran DeepSeek V4 Flash (any OpenAI-compatible model works) over 118,414 accounts, reading name+bio and keeping a sector only for genuine participants, stacked on the cosine floor, never guessing from fame. It recovered 3,706 jargon/founder bios cosine missed (@wazzcrypto to fintech), pruned 57,824 false positives cosine had verified (journalists, politicians, a music band), and reclassified 32,976, taking the verified sector claims from 190,468 to 54,678 (49% were non-participants). Whole-graph cost $2.41. It ships as new llm_* columns in eigentrust-v2.5-scored.csv, every legacy v2.4 column untouched, and the classifier also reads recent tweets at card-time. Seeds stay authoritative via curation plus a legacy-override table (e.g. Elon PayPal fintech). Full methodology: handoff doc section 13. (June-graph build: this bio-LLM was an additive overlay on cosine. On the current 2026-07-22 full-graph rebuild the tweet-LLM classification shipped with the graph is the content gate — $0, in eigentrust-v2.5-newgraph-scored.csv — see banner.)

Methodology. Reproduced the EigenTrust algorithm per docs/technical/eigentrust-spec.md (α=0.20, dangling→seed, sector = seed-vector swap); the unweighted baseline matches the live run bit-exact. Edge weight = target's sector-seed in-degree; whitening removes PC1 (≈70% of sector-score variance); residual regresses each sector on global. All computed on the live 2026-06-03 graph (6.75M nodes, 39.6M edges). Global-score note (2026-07-20): the production global column is plain personalized PageRank; the purity edge-weight + famous-source down-weight are sector-only (the …downweight-purity… filename describes the sector treatment, not the global column).

Status. §1–§14 were written as offline analysis/proposals. As of 2026-06-10 the §14 v2.1 scoring went live in production (eigentrust-v2.1-downweight-purity-logknee.csv), verified in §15. As of 2026-07-18, v2.3 (content gate + purity-ratio specialty lens + decibel scale, §16) was the live production scoring. As of 2026-07-22, the pipeline was rebuilt on the near-complete re-crawl (10.45M accounts, 76.4M edges) and v2.5-newgraph supersedes all of the above — see the CURRENT BUILD banner at the top & comparison.html. Prior scorings archived under data/archive/. Source: data/exports/edge_weight_experiment/results_v8_three_version.txt · scripts in scripts/experiments/ · full analysis in docs/technical/eigentrust-improvements.md.

§8 (2026-06-09). v2 export = data/eigen-rep-prod/eigenrep-v2-exports/eigentrust-v2-lambda-(0.1, 0.5, 0.8).csv (same 6.75M-account graph as NEW; only the scoring changes). Figures gathered live from the λ-files + current/archived scores.csv. Finding: the un-whitened _percentile is the usable sector rank; the whitened _score needs a reputation floor + magnitude-residual form before it's safe to expose.

§9 (2026-06-09). "v2 minus whitening" = fresh edge-weighted run (seed-indegree weights, FLOOR=0.05) scored by percentile and log-raw, no whitening. Recompute: scripts/experiments/edgeweight_lograw_nowhiten.pydata/exports/edge_weight_experiment/results_v12_edgeweight_lograw.(json|txt). Global reproduction matches the live run; confirms edge-weight+log-raw restores reputation order & de-saturates, but leaves cross-sector bleed for top hubs.

§10 (2026-06-09). Strong-edge-weighting sweep = scripts/experiments/strong_edgeweight_test.pyresults_v14_strong_edgeweight.(json|txt) (3 weighting strengths × 5 sectors). Finding: hubs stay percentile-1000 at every strength, but @sama's AI raw is 17–38× his quantum raw, the within-account separation is in the raw and is destroyed by population ranking. Resolution: within-account-normalized raw for the per-account profile (as the InvestorDNA radar already does); percentile for the leaderboard.

§11 (2026-06-09). Inverse-global weighting (Matty) = scripts/experiments/matty_inverse_global.py (A seed / C target) + matty_approach2.py (non-renormalized source down-weight) → results_v15_matty.*, results_v16_approach2.*; full per-account grid (all 12 sample + 6 AI × 10 sectors) = matty_full_grid.pyresults_v17_full_grid.*; §12 log-raw clip-vs-unclip = matty_approach2_lograw.pyresults_v18_approach2_lograw.*; §13 final solution = Approach 2 + log-raw (clipped) leaderboard (sector cells from v18 log_clip, global log-raw from §5/v2 global_score); the within-account radar (matty_final_recommendation.pyresults_v19_final.*) is demoted to an optional per-account visual. Finding: source down-weight is the best decorrelation lever (sector↔global 0.60→0.53, lifts niche, sinks junk) but @sama's quantum percentile stays 1000 even at a 2,218× raw AI/quantum ratio, the hub-percentile bleed is structural, not a weighting failure.

§14 (2026-06-10). Remaining-design-space sweep = scripts/experiments/v20_beyond_final.pyresults_v20_beyond.(json|txt) (KNEE / seed-pool percentile / contrastive subtraction μ∈{0.25,0.5,1.0} / share×global post-hoc on Approach-2 raws, + the purity edge weight (script name: SPEC) on 4 sectors and α=0.5 in-algorithm; raw vectors cached in v20_raws/). Full 10-sector SPEC confirmation = v21_spec_full10.pyresults_v21_spec_full10.(json|txt). Purity (SPEC) edge weight = (ssi+0.05) × (ssi+0.05)/(ssi_total+0.5) at the target; KNEE = percentile→0–950 below the 99.5th pct of non-zero raw, log₁₀-magnitude→950–1000 above it; LOG-KNEE = §13's log-raw clip rescaled to 0–950 below the 99.9th pct, log₁₀-magnitude→950–1000 above it (rank-identical to KNEE; bulk values ≈ §13 log-clip × 0.95). Finding: purity weighting improves sector↔global correlation in 10/10 sectors (avg 0.556→0.496 rank-level; 0.543→0.396 with KNEE) with clean top-15 leaderboards; KNEE alone on §13 raw (the interim path) is a rank-preserving display swap that already de-saturates the hub rows. Dead ends confirmed: contrastive subtraction (zeroes 64–83% of the graph), α=0.5 (no effect), share×global (breaks pure graph-rank semantics), seed-pool percentile (not a score).

§15 (2026-06-10). Production verification = scripts/experiments/v22_verify_prod_v21.py against data/eigen-rep-prod/eigentrust-v2.1-downweight-purity-logknee.csv (6,752,453 rows; flat 24-col schema). Tie-aware Spearman on non-zero accounts (200k–300k samples), top-15/top-1000 overlap per sector, 20-handle table vs §14, calibration fit (prod−report delta linear in log₁₀ raw, residual σ 0.26). Result: ranks match (global 0.99999, sectors 0.996–0.9997, top-15 identical ×10); value deltas are lo-anchor calibration. Archives: original 2026-06-03 scoring → data/archive/eigen-rep-prod-scores-2026-06-03/; v2 λ-exports → data/archive/eigenrep-v2-exports-2026-06-08/.

§16 (2026-07-18). v2.3 = v1's sector raws re-ranked by the floored purity ratio ρ = tsector/tglobal (λ=1, applied where global percentile ≥ 900) + a content gate (per-account r_s from all-MiniLM-L6-v2 embeddings of name+bio+tweets; seed-whitelist; X account-type exclusion; multilingual abstain) + the decibel magnitude scale. Build: scripts/eigenrep_content_gate/{build_rs,build_v23,apply_gate,scale_tiers}.py; scraped inputs committed under data/eigen-rep-prod/ (SCRAPED_DATA.md). Comparison (v2.2 gate-only vs v2.3 gate+ρ, both content-gated): sector↔global percentile correlation 0.38→0.16 (avg of 10); off-topic celebs/brands gated to 0 in both (the gate, not ρ); ρ demotes off-domain specialist standing (Preskill nuclear 739→0, semi 998→759) while keeping in-domain #1s. Global de-saturation: 13,067 accounts ≥900 under log-knee → 319 under decibel. Full write-up: docs/technical/eigenrep-v3-redesign.md + eigenrep-v3-results.md.

§17 (2026-07-18/19). Five-agent adversarial audit (docs/technical/eigenrep-v3-audit.md) → Tier-0/1/2 hardening. Tier 0: un-vetted tail zeroed (sector percentile over the vetted pool, not the flood); global re-sourced verbatim from the prod v2.1 CSV. Tier 1: org-filter → "Org" tier (672); ρ_global "Fame" tier (298, seeded÷uniform PageRank purity); seed-badge (global_is_seed); ρ demote-not-delete (floored multiplier). Tier 2: ALF follower-composition rescue (compute_alf.py; recall 73→99%); ALF corroboration (closes the bio-stuffing attack); media/brand detector (media_detect.py; hard-neg precision 38→100%). Validation: eval_harness.py (6 axes, recall 99 · precision 100 · hard-neg 100 · bridges 100 · hygiene 100 · gaming 100, ~196 verified handles) + sweep_quality.py. Coverage-expansion (union k=20k / full-graph embed) tested and reverted, single-cosine adds noise below the top band. Build: scripts/eigenrep_content_gate/{build_v23,apply_gate,scale_tiers,compute_alf,compute_rho_global,media_detect,eval_harness}.py.

§18 (2026-07-19). Decorrelator re-test (docs/technical/eigenrep-v3-audit.md "Decorrelator re-test"). Reproduced anchors (BASE avg corr 0.396, ρ 0.099) from cached raws, swept ~40 variants post-hoc (rho floor/λ/rho_min × denominator {seeded, uniform-pop}, degree-norm powers + floored, stacks, matched-null, posterior) via scripts/experiments/v3_decorr_sweep2.py; re-scored on ground truth (oracle target ρ*, expert-vs-media/celebrity AUC, junk@100) via v3_decorr_auc.py; matched-null bridge-retention A/B on 29,076 content-eligible standings. Three adversarial fable reviewers (literature / numerical-audit / metric-critique) converged: corr is bookkeeping-dominated (top-100 ≤0.01% of it; 0.396↔0.496 on tie-handling; naive oracle −0.50) with a positive legit target (+0.28…+0.48); all decorrelators tie at AUC 0.994; ρ = 1−Gyöngyi relative spam-mass; matched-null retains bridges worse than the shipped floor (median pct 574 vs 747). Outcome: keep the shipped decorrelator; the AUC battery is now the north star in eval_harness.py (mean 99.5%, min 95.8% ai_ml), corr demoted to a tripwire.

§19 (2026-07-19). Coverage re-test (docs/technical/eigenrep-v3-audit.md "Coverage-expansion re-test"). Union expansion: build_rs.py --out embedded k=20000 (140,722 accounts) to a side file; gate+scale+eval vs shipped k=5000 → vetted coverage 155,408→154,066 (capped by the content gate, not union size; ALF-rescue coverage k-independent at 58,734). Latent bug fixed: non-Latin abstain bios were kept in ALL sectors; ABSTAIN_CORROB keeps them only where followers corroborate (−0.02% at k=5000, gates the spam at k=20000). θ-lowering (THETA_SCALE): sweep 1.0/0.85/0.70 → coverage +0/+11/+23%, recall 116→117 (recovers Mira Murati), but adversarial leakage probe shows 0/2/6 cross-sector fame leaks (Karpathy/Nadella/Tyson→quantum) invisible to the gold sets. Added a cross-sector-leakage axis to the harness (8/8 on production). Conclusion: keep k=5000 θ=1.0; clean broadening needs a person-type/fame-purity filter, not more graph.

§20 (2026-07-20). Five-front architecture audit (docs/technical/eigenrep-architecture-audit-2026-07.md), each front reading the live code/data and grounding against the literature (Kamvar EigenTrust, Gyöngyi TrustRank/spam-mass, Haveliwala TSPR, Andersen-Chung-Lang, SimClusters, learning-to-rank), all load-bearing numbers re-verified. Fixed: the follower-rescued (ALF) band is now bio-content-checked (build_rs.py --include-alf + RESCUE_FLOOR=0.15/ABSTAIN_CORROB=1 now default), removed 9,434 junk sector-standings (quantum −3,040) with recall/precision/leakage/AUC held; pre-fix scoring archived to data/archive/eigenrep-pre-alfcheck-2026-07-20/. Corrections: global = plain PPR (not purity-weighted); the AUC eval is underpowered (saturated at 1.000) so prior "all decorrelators identical / ρ-denominator neutral" A/Bs are not conclusive; ρ is a graph statistic that does separate fame from expertise. Deferred with reasons: the uniform-denominator ρ swap (literature-correct, empirically modest), SEC-data wiring (helps only the investor slice, doesn't crack the researcher/influencer ceiling, adds a matching dependency), and a supervised/world-knowledge person-type classifier on the surfaced pool (the one real ceiling-mover, bounded LLM cost, scoped not built).