A long-only portfolio built from nothing but the semantic distance between firms' news articles landed at the 0.89th percentile of in-sample variance against 20,000 capped random portfolios, drawn from the reference population matched to its own effective number of names. Inverse-volatility weighting landed at the 25.4th. The percentile is what makes this paper worth an hour, and it is also the number that needs the most careful handling, because it was measured on the same 2018 to 2022 window that produced the geometry. The authors label it themselves: the rankings are "descriptive and in-sample" and "illustrate the allocation implied by the maintained model rather than forecast out-of-sample performance". Credit them for that. What a manager gets from an illustration of a maintained model is a well-defined allocation rule and a bound that holds if you grant four unidentified restrictions. What the manager does not get is any evidence about variance in a period the geometry has not already seen.
Gawronsky and Huang build this. Take a firm, pull its news articles, encode each one with a frozen language model into a 4,096-coordinate vector, normalise the rows. You now have a cloud of points per firm rather than a single averaged vector. Compare two firms by balanced quadratic optimal transport: the least root-mean-square displacement needed to move one cloud onto the other. That number, W2, is the observed object. Everything else in the paper is machinery for turning it into a statement about risk.
The machinery is a chain of maintained restrictions. A common map carries information states into latent systematic exposures and is assumed antilipschitz with constant L, so two firms whose news distributions are far apart cannot have latent exposures that collapse onto each other. Firm-specific slack radii tau_i allow bounded departures from that common map. All exposures sit under one joint law, which matters because pairwise optimal couplings do not automatically stack into a coherent portfolio. A return bridge then splits each standardised return into a systematic piece carrying the exposure geometry and a residual that is assumed cross-orthogonal. Out of that comes the pairwise floor l_ij = [L^-1 W2(Ci,Cj) - tau_i - tau_j]_+ and a portfolio certificate C(q) = 0.5 * sum_i sum_j q_i q_j l_ij^2, with Var(Rq) <= 1 - C(q).
The authors are direct about what this is. In their words, "the text determines the observed geometry, but it does not identify any of these transmission restrictions." The certificate is an upper bound conditional on L, tau, joint coherence and the return bridge. The paper calls it an upper bound and nothing more.
What the optimiser actually does
Set tau to zero and standardise every asset to unit marginal variance, and the whole apparatus collapses to something you can write on a napkin: maximise q'W2^2 q over the long-only simplex. The rule buys the most semantically dissimilar names it can find, weighted so that every pair it holds contributes q_i q_j W2^2_ij of credit. Corollary 1 says L drops out of the normalised allocation at zero slack, which is why the empirical exercise never has to pin it down. Convexity of the standardised objective holds when the floor matrix is conditionally negative definite. That condition is checkable straight off the distance matrix by Schoenberg's criterion, with no returns and no estimated parameter. The authors report it holds for the matrix they use.
The data: 52 firms (53 with embeddings, WBA dropped for want of returns), 1,207 common daily observations from 2018-03-19 to 2022-12-30, Nasdaq per-symbol news, Qwen3-Embedding-8B via OpenRouter. Balanced transport requires equal cloud sizes, so the common support runs 6, 19, 32, 64 and 128 articles per firm at the successive annual cutoffs.
Six articles per firm in 2018 is very thin.
The resulting portfolio holds 38 of 52 names, effective N of 23.65, largest position 12.1% in AstraZeneca. Standardised variance 0.357 against 0.390 for equal risk weights and 0.264 for the ex post long-only global minimum variance portfolio (GMV): 8.3% below the inverse-vol benchmark, 35.6% above the covariance-informed optimum. Percentiles across the four prespecified Dirichlet-capped reference laws run 0.72%, 0.69%, 0.89% and 1.33%; equal risk weights run 28.6%, 28.4%, 25.4% and 21.1%.
The matched population is the one that carries the argument. Its mean effective N is 24.23 against the candidate's 23.65, so the ranking does not come from comparing a concentrated portfolio against diffuse ones. Push the reference law to alpha = 0.5 with mean effective N of 19.01 and the candidate still ranks 1.33%. The authors then note that market-cap-weighted or factor-tilted reference populations could rank it differently, which is fair and worth remembering: the percentile is defined relative to a chosen population of feasible portfolios, not to anything an investor holds.
One structural point deserves flagging. At the interior optimum, firm-level certificate shares reproduce the portfolio weights exactly, so firm-level attribution tells you nothing. Only the pair layer is informative, and 87.1% of certificate credit is cross-sector. The twelve largest pair contributions all involve AstraZeneca, the largest being AZN-GOOG (Alphabet) at 1.51% of total credit. AstraZeneca's 12.11% sits just under the 12.5% cap of the tightest comparison population, a cap that never bound the allocation itself.
The width ladder goes the wrong way
The representation sensitivity section does not flatter the method. Truncating Qwen3-8B from 4,096 to 64 coordinates improves the in-sample percentile from 0.89 to 0.02 and the relative-GMV index from 135.6 to 128.4, a gain of 7.2 index points. The contrast that clears Holm adjustment is 64 coordinates against 256: -7.796 index points, CI [-10.871, -4.012], Holm p 0.007. A general-purpose 1,024-dimension BGE-large, from BAAI, matches the prespecified model (0.80 versus 0.89, 135.3 versus 135.6). Qwen3-4B at the same 1,024 width is worse by 2.828 index points, CI [1.607, 4.081], Holm p = 0.007. No capacity or family ordering emerges. The authors' own EttaX vintage encoders hold architecture, recipe, tokeniser and token budget fixed and vary only the Wikipedia training snapshot. Under the effective-N reference law calibrated to the primary Qwen3-8B allocation, the three vintages land at 5.44 (V0), 7.27 (V1) and 2.48 (V3). V3's snapshot is dated 1 August 2026, which the paper itself calls "a post-sample negative control rather than a valid point-in-time encoder". No pair satisfies the post-specified equivalence bound of 2.913 index points.
So the geometry that produces the headline is not invariant to the encoder, and the direction of the sensitivity is not monotone in model size. At 64 coordinates the percentile is 0.02 and the relative-GMV index 128.4, against 0.89 and 135.6 at 4,096. I read that as the certificate picking up something coarser than semantic separation. A prespecified width ladder run on a held-out window, with the ordering reproduced, would change my mind.
Core theorems are machine-checked in Lean 4 / mathlib v4.31.0, which is unusual and which I take seriously as a signal about the algebra. It says nothing about the economics, and the appendix says so.
Our adaptation, and what it could not test
Before any of our numbers: the variance certificate rests on the carrier scale L, the slack radii tau_i, joint exposure coherence and the return bridge, none of which are identified by text. A zero-slack build gives an operational rule; the bound attached to it is assumed, not measured. We also could not use the paper's exact Qwen3-Embedding-8B representations, and our news coverage begins around 2020. The paper studies a 52-firm panel whose geographic coverage it never specifies. We ran a liquid US-equity roster instead, so the paper's in-sample variance rankings do not transfer to our universe. Call this an adaptation.
We swapped the universe to a 46-symbol liquid US-equity roster and the encoder to the frozen 320-dimension EttaX V0 snapshot, drawing text from stored news and press releases over a rolling 24-month window with a common cloud capped at 128 documents. The allocator minimises the raw-capital objective CV(x) with 63-session trailing marginal volatilities, a 10% capital cap and L = 1, rebalanced monthly at the close with 10 bps one-way charged on traded notional.
Over 2020-01-01 to 2024-07-01 that book returned 44.25% total with a Sharpe of 0.47 and 21.01% volatility across 842 trades. Those are our figures, from our run, on our substitute universe. The paper reports no returns, no Sharpe and no drawdown at all. Its self-reported performance is the 0.69% to 1.33% variance percentile band and the relative-GMV index of 135.6, on its own 52-firm panel. Both are in-sample, with no cost assumption stated. The two sets of numbers measure different things. A 0.47 Sharpe over a prospective cost-charged window and a 0.89th in-sample variance percentile are not comparable quantities, and we did not recompute the paper's percentile, effective N or GMV index on our universe.
The 21.01% volatility is the figure that matters here, because volatility is the only thing this rule claims to manage. Our book ran a beta of 0.81 to SPY over the same window, which is most of what a 21% annualised figure is made of. Max drawdown was -29.95%, taken through the 2022 sell-off. The paper asserts nothing that this contradicts: it says the reported percentile "is neither a point-in-time test nor an ex-ante guarantee of future realized variance". What is missing from our run is a matched benchmark variance computed the same way, and that is the one comparison that would tell you how much of the 21.01% is the allocator rather than the regime.
Several of our choices point the same way, toward a weaker outcome than the paper's canonical cell. The encoder is the clearest: EttaX V0 ranks at the 5.44th percentile and 140.8 relative GMV in the paper's own ladder, against 0.89 and 135.6 for Qwen3-8B. Our text corpus is different, so every pairwise distance is a different number. The raw-capital objective retains L, so the carrier-invariance corollary does not apply and our weights are a different allocation rather than a rescaling of theirs. Our window shares 2020 through 2022 with theirs and then adds eighteen months they never see. We cannot fully explain the difference, because the gap on the paper's own metric was never measured. This is evidence about our build first.
Before trading it
The honest summary of the paper is the authors': "an unusually low location among feasible allocations, not covariance-free replication of the covariance-informed optimum." The allocation remains 35.6% above the ex post GMV. And the geometry and the evaluation covariance come from the same window. Turnover across expanding cutoffs runs 13.2% to 26.8% one-way with the largest reallocation at the 2018 to 2019 extension rather than 2020, and no cost is charged against it anywhere in the paper.
What would change my mind is a frozen point-in-time build: encoder, corpus and W2 matrix all fixed before the evaluation returns exist, then realised variance against inverse-vol and a rolling-covariance minimum-variance book over the following years. The authors name this as the immediate priority themselves. Until someone runs it, the 0.69% to 1.33% band tells you that maximising weighted transport separation produces a portfolio that happens to have sat low in the in-sample variance distribution of one 52-firm survivor panel. For that panel it is a surprising fact, and a long way short of a risk model.
We have written before about a premium whose legs do not match the instrument that would trade it (the correlation rotation case). This is the adjacent problem: a bound whose economics are assumed rather than identified, with a descriptive ranking standing in for the test.
Our backtest stops at 2024-07-01, and everything after that date is deliberately left untouched so the same strategy can be checked out of sample later.