Do not multiply, add
A public record of stacking alphas to raise my score on the quant trading platform WorldQuant BRAIN. In episode 7, the fifth alpha candidate stalled 0.0063 short of the self-correlation wall. This episode is the story of going around that wall and catching the fifth alpha with completely different material.
0. One-line summary
An alpha built by multiplying three signals together collapsed, concentrated in a handful of blue-chip stocks. Adding the same three signals instead of multiplying them immediately spread the stock distribution evenly and cleared every passing criterion. Multiplication and addition are cousins in arithmetic, but in this game they were completely different weapons.
1. Setting down the competitor signal
There was something I confirmed at the end of episode 7. Trying to reuse the competitor-return signal, already used in the third and fourth alphas, for a fifth time kept getting stuck at the self-correlation gate. Even good material, pulled out a third time, meant the overlap with alphas already submitted kept accumulating. So this time I decided to set this material down entirely.
Instead, I carried over one method verified in episodes 6 and 7 as is: ranking a financial-statement field "within the same industry" instead of "across the whole market" strengthens the signal. I had already tested several fields with this method. Long-term deferred revenue (the long-term portion of money collected in advance for services not yet delivered to customers), new issuance of long-term debt, and stock trading turnover. All three, once switched to within-industry ranking, produced standalone values above 1.0 on their own, the strongest material in this hunt so far.
2. Multiplying the three made it stronger, but
I tried multiplying these three pieces of material together, extending to three the approach that had worked by multiplying two in episodes 4 and 6. The result was Sharpe 1.40 and Fitness 0.96, very close to the gate.
But it got stuck at the gate that checks robustness. Re-testing on the sub-universe gave 0.53, short of the threshold (0.61). Looking closer, the cause was clear: 886 long positions against 1,621 short positions. It was heavily skewed to one side.
This was because of the nature of multiplication as an operation. Multiplying three signals together means a large value only emerges when "all three are good at the same time." Stocks that satisfy all three conditions at once, good deferred revenue, healthy debt issuance, and active trading turnover, are rare. So the long positions ended up crowded into a small handful of near-perfect stocks, while the vast majority were lumped together on the short side. Even backfilling missing values (pulling in the most recent value for stocks whose data is blank) didn't fix this skew. The problem wasn't missing data, it was the multiplication operator itself.
3. Switching to addition
I standardized each of the three signals (adjusting to mean 0, variance 1) and then simply added them instead of multiplying. If multiplication is an operation that only counts a stock "when all three are good at once," addition is an operation that "reflects credit for whichever one is good." The condition becomes far looser.
The result was Sharpe 1.54 and Fitness 1.10, actually better numbers than the multiplication version. And crucially, the long positions came to 1,273 and the short positions to 1,288, split almost exactly down the middle. The sub-universe re-test also passed comfortably at 0.87.
Multiplication finds an intersection, addition covers a far broader area than that intersection. You'd expect the signal to weaken since each condition was loosened one by one, but it actually got stronger. Probably each of the three pieces of material carried a meaningful signal on its own, so summing their information evenly, rather than forcing a narrow intersection, worked more stably across a larger number of stocks.
4. Checking self-correlation one last time
One last gate remained. Since this alpha used no competitor signal at all, I expected low self-correlation with the four alphas submitted so far. Checking it, the value was 0.50, the second-lowest after the third alpha's 0.14. Bringing in completely new material had paid off.
I checked all eight gates. Every one passed.
long-term deferred revenue (rank within industry) + new long-term debt issuance (rank within industry) + share turnover (rank within industry)
standardize the three values, add them, then rank the result
USA / TOP3000 / delay 1 / decay 5 / industry neutralization / weight cap 2%
→ Sharpe 1.54, Fitness 1.10, sub-universe 0.87, self-correlation 0.50, 8/8 checks passed
This is the fifth alpha.
5. Numbers worth revisiting
In this session I tested twenty-seven financial-statement fields converted to "within-industry rank." Two fields topped out at 1.03: stock trading turnover and long-term deferred revenue. Next came new long-term debt issuance (1.01), long-term debt balance (0.92), and cost of goods sold (0.88). Interestingly, all these strong fields were related to a company's cash position or scale of operations. By contrast, fields already heavily priced in by the market, like enterprise value or shareholders' equity, didn't improve much even when switched to within-industry comparison. Perhaps this marks the dividing line between information already baked into price and information still buried, less known, inside the financial statements.
6. What I learned this episode
- Multiplication and addition are different philosophies. Multiplication is an intersection where every condition must hold at once, so it risks concentrating into a small handful. Addition is a sum that gives credit as long as any one is good, so it spreads more widely. With two signals, multiplication worked, but once it grew to three, multiplication broke down and addition won.
- The more signals combined, the greater the risk of multiplication. Each individual signal is a narrowing condition, so multiplying several of them stacks those conditions layer upon layer until only a tiny few remain. When combining three or more, there's good reason to try addition first.
- Filling missing values and fixing skew are different problems. At first I assumed the concentration into a handful of stocks was due to missing data. Even after backfilling the missing values, the skew stayed the same. The real cause lay in the operator itself.
- Swapping the material out entirely is also an answer. When I hit the self-correlation wall, switching to completely different material was faster than struggling to clear that wall through fine-tuning.
The next episode will look at the accumulated score from the five alphas so far and lay out the remaining grind to Gold.
Technical notes (appendix)
- Submitted alpha #5 (drlt_dltis_cshtr_3way_zscore, id leVnJG0e):
rank(zscore(rank(group_rank(ts_backfill(fnd6_drlt,120),subindustry))) + zscore(rank(group_rank(ts_backfill(fnd6_dltis,120),subindustry))) + zscore(rank(group_rank(ts_backfill(fnd6_cshtr,120),subindustry)))), USA/TOP3000/delay1/decay5/INDUSTRY/truncation0.02. Sharpe 1.54, Fitness 1.10, turnover 0.0134, sub-universe 0.87, self-corr 0.5032. Server 8/8 PASS. Submission complete (2026-07-02 04:22 EST). - Measured comparison, multiplication vs. addition: same 3 fields, multiplication (
a*b*c) → Sharpe 1.40, Fitness 0.96 to 0.98, sub-universe 0.51 to 0.53 FAIL (long 886 : short 1675). Addition (zscore(a)+zscore(b)+zscore(c)) → Sharpe 1.54, Fitness 1.10, sub-universe 0.87 PASS (long 1273 : short 1288). Missing-value backfill (ts_backfill(120)) only marginally improved Fitness (0.96→0.98) and didn't fix sub-universe. This suggests the cause was the multiplication operator, not missing data. - group_rank(field,subindustry) measurements (27 fields cumulative): top values fnd6_cshtr (stock turnover) / fnd6_drlt (deferred revenue LT) at 1.03, fnd6_dltis (new long-term debt issuance) at 1.01, debt_lt at 0.92, cogs at 0.88. Uplift over val_rank in the leverage/liquidity/operating-scale family; no effect in the valuation family (EV/equity/cashflow_op).
- Score status: SILVER 7,464 points (4 alphas reflected), 2,536 points to Gold (10,000). Alpha #5 is scheduled to be added in the 07-03 refresh (cap-diversification principle).
- Rejected SUBINDUSTRY variant: running the same addition formula with SUBINDUSTRY neutralization gave a higher Sharpe of 1.65 / Fitness of 1.23, but sub-universe came in at 0.66 (threshold 0.71) FAIL. Even with better numbers, if it fails the robustness gate, it doesn't get adopted. The INDUSTRY version (8/8 PASS) was the one finally submitted.