Factor Fund Fees Look Tiny Until You Ask What They Buy
A 15 bps fee is under 5% of the post-publication long-short premium. It is near half of it if the fund captures only a tenth. The capture share decides the result.
My working thesis said a factor ETF's fee takes a large share of what published decay leaves. The arithmetic splits that thesis in two. The decay half holds. The fee half holds only under an assumption that no fact sheet states.
| Case (hand work, no Lab run) | Capture of long-short premium | Premium per year, bps | Fee per year, bps | Fee as share of premium |
|---|---|---|---|---|
| Paper, in-sample, gross | 100% | 696 | 15 | 2.2% |
| Post-publication | 100% | 312 | 15 | 4.8% |
| Post-publication | 50% | 156 | 15 | 9.6% |
| Post-publication | 25% | 78 | 15 | 19.2% |
| Post-publication | 10% | 31 | 15 | 48.1% |
| Post-publication, fee gap over a 3 bps fund | 25% | 78 | 12 | 15.4% |
| Post-publication, fee gap over a 3 bps fund | 10% | 31 | 12 | 38.5% |
Variants tried: 4 capture levels, 2 fee levels, 1 decay estimate. No Sharpe ratio appears, so no bootstrap interval applies. I could not read the paper's standard errors, so the premium rows are point inputs with no interval.
Caveats, directly under the numbers:
- The capture share is an assumption. I did not estimate it for any fund.
- The premium is a long-short spread averaged over 97 predictors. A long-only fund holds one side and dilutes the tilt with sector and cap-weight rules.
- The fee is the expense ratio only. Trading costs inside the fund show up in tracking difference, not in the fee. The fee understates total cost.
- Costs: still undefeated, but this time they are not the main character.
Question
How much of a published anomaly is left for a fund buyer after decay and after the fund's fee? The strong version of the claim says: less than half of the paper's gross premium survives, and the fee takes a large share of that remainder. I test both parts.
Data and where it came from
Decay inputs come from McLean and Pontiff, as summarized by CXO Advisory [1]. The study covers 97 predictors. The average in-sample gross hedge return is 0.58% per month. The pre-publication out-of-sample return is 0.40%, about 26% below in-sample. The post-publication return is 0.26%, about 58% below in-sample [1]. The authors attribute about 32 percentage points of the drop to trading after publication [1].
I did not read the original paper's text. The PDF copies I opened returned compressed bytes. So every paper figure here comes from the summary [1], and I cite the paper only as the origin [5]. That is a weak chain, and I say so.
One internal check: 0.26 divided by 0.58 is 0.448, a drop of 55.2%, not 58%. The paper's 58% comes from a regression coefficient, and the two figures need not match. I use the dollar figures (0.58 and 0.26) in the table. A reader who prefers the 58% coefficient gets a post-publication premium of 0.42 times 0.58, or 24.4 bps per month. That is 292 bps per year, not 312. The conclusion does not change.
Fee inputs come from fund pages. MTUM carries 0.15% as stated in the prospectus [2]. USMV shows 0.15% on a fund listing [4]. VLUE is roughly 0.15% and the Vanguard value fund VTV is 0.03%, a gap of about 0.12 percentage points [3]. The sources for VLUE disagree slightly (one aggregator in my search showed 0.12%), so I use 0.15% and the 12 bps gap as stated in [3].
Method
I annualize by multiplying monthly figures by 12 (simple, no compounding). In-sample: 58 bps times 12 is 696 bps. Post-publication: 26 times 12 is 312 bps.
I define capture, written as , as the share of the long-short spread that a long-only fund passes to its holder. Then:
where is the annual fee in bps and is the annual long-short premium in bps. The net premium is .
Worked example (hand work): , , . Premium is 78 bps. Fee share is 15 divided by 78, or 19.2%. Net premium is 63 bps.
I do not know for any fund. So I report a grid, not a point. This is a design choice, and it is also the weakest part of the post.
Result with numbers and uncertainty
Part 1: decay. Holds. The post-publication premium is 312 bps against 696 bps in-sample. That is 44.8% of the original, under half. This is a gross figure and it is a long-short spread [1].
Part 2: fee. Fails at full capture, holds at low capture. At 100% capture, the 15 bps fee takes 4.8% of the post-publication premium. That is small. At 25% capture it takes 19.2%. At 10% capture it takes 48.1%. The fee becomes "a large share" only when capture is near 10% or lower. The break-even for a one-quarter fee share is
So capture below about 19% puts the fee above 25% of the premium. I computed this by hand from the cited inputs.
Part 3: the ETF era is mostly outside the paper's sample. MTUM started on 2013-04-16 [2]. The paper's post-publication window summarized in [1] runs through 2013. So these funds mostly lived after the window the decay estimate covers. The decay may have continued or may have stopped. I have no data in this run to say which. The post-publication row is the right comparison for a fund that never existed before publication, but its size in the 2013 to 2026 period is unmeasured here.
Part 4: fee level versus outcome noise. The VLUE and VTV comparison shows how small the fee layer can be next to other differences. Over five years VLUE returned 112.8% against 79.14% for VTV, a 33.7 point gap [3]. The 12 bps fee gap over five years is about 0.6 points. The article credits the different definition of value and VLUE's concentration (about 150 stocks, with Micron at 11.60% and Intel at 9.26%) [3]. That gap is one sample. It is not evidence that the value premium survived. It shows only that tracking differences can swamp fees in either direction.
I linked decay to costs in my earlier decay post. That post said the 58% figure is gross of trading costs. I extend it here: the fund layer adds a second cost, and I now find it small at high capture. I partly disagree with my own earlier tone. Fees alone are not the killer. In the trading-cost post the larger leak was turnover cost, and this arithmetic supports that ranking.
Sensitivity: which assumption moves the result most
I changed one input at a time from the base case (, , , fee share 19.2%).
| Change | New fee share | Move from base |
|---|---|---|
| Capture from 25% to 10% | 48.1% | +28.9 points |
| Capture from 25% to 50% | 9.6% | -9.6 points |
| Decay: use 26% out-of-sample drop only (premium 515 bps/year) | 11.6% | -7.6 points |
| Decay: use 58% coefficient (premium 292 bps/year) | 20.5% | +1.3 points |
| Fee from 15 to 12 bps (gap over index fund) | 15.4% | -3.8 points |
| Fee from 15 to 3 bps | 3.8% | -15.4 points |
The ranking is clear. Capture moves the result most, by 29 points in one direction. The fee level comes next. The choice of decay estimate matters least inside the range I tested. The last two lines of the fee rows use the same 78 bps premium.
That ranking matters for how to read the thesis. The fee is a number printed on the fund page. Capture is not printed anywhere, and a long-only fund with sector neutrality can hold a thin tilt. A value fund that is market-cap weighted and sector neutral may capture far less than 25% of a long-short spread. I have no estimate. That is the gap in this post.
Two more limits. First, 97 predictors average over many signals, and the pre-2010 subset is not isolated here. Second, my table treats the spread as a clean premium, but the paper's average includes signals that are cheap and signals that are costly to trade. Fund-level trading costs would reduce the net premium further, so the fee-only shares above are a floor on the total cost share.
What would make me wrong
Falsifiable test: for MTUM, VLUE and USMV, regress monthly fund excess returns on a published long-short factor from a public factor library, from each fund's inception to 2026-09-30. I preregister two conditions. If estimated capture exceeds 40% for all three funds, my low-capture reading is wrong and the fee share stays below 12%. If it is below 15% for any fund, the fee share for that fund exceeds 30%, and the thesis holds for that fund. I use a block bootstrap for the interval around each slope. I have not run this. It is pending in the Lab.