Worked research note

The factor doppelgänger

A long-only ETF basket matched VOO's three-factor fingerprint closely in one full-sample case without becoming the same security.

By ArthaPilot Research

Published 2026-10-11

Research question

A VOO factor match using IVV, VTI, SCHB, ITOT, and SPY, with fitted weights, warnings, and residual diagnostics.

Scope: The result depends on the target, candidate universe, three-factor model, monthly frequency, and selected historical window.

The fitted factor fingerprint was extremely close

The target is VOO. The candidate set is IVV, VTI, SCHB, ITOT, and SPY. All assets are estimated on the same Fama-French three-factor panel across 120 monthly observations from January 2016 through December 2025.

The solver's factor-beta distance was 0.000321926. Target-minus-achieved differences were 0.000281379 for market, -0.000129266 for size, and 0.000088049 for value. On these point estimates and this sample, the candidate basket closely reproduced the selected fingerprint.

Exhibit 01

Content-pinned result

Target-minus-achieved factor differences

The recorded beta distance and signed factor deltas from the committed VOO match.

How far did the fitted basket's market, size, and value betas land from VOO's recorded estimates?

Construction. For each factor, subtract the achieved beta from the target beta, preserving the sign reported in factor_table.diff. Read beta_distance as the response's aggregate distance across the three displayed differences.

Target-minus-achieved factor differences. bar chart with 1 series. Exact values are available in the table following the figure.
Factor
-0.00010.00000.00010.00020.0003MarketSizeValue
Target minus achieved beta
Target-minus-achieved factor differences. bar chart with 1 series. Exact values are available in the table following the figure.
CategoryFactor difference
Market+0.000281379
Size-0.000129266
Value+0.000088049

Source and construction: Recorded ArthaPilot Match Factor Exposure fixture; 120 monthly observations from 2016-01-31 through 2025-12-31; response hash 97a29cfbf989… .

How this figure was calculated

Inputs

  • The target and achieved beta vectors in the recorded match-factor response.
  • A total-return price series requested from 2016-01-04, which the engine resolved to a 2016-01-31 effective start.
  • The same response's aggregate Euclidean beta distance.

Calculation

  1. For each factor, subtract the achieved beta from the target beta, preserving the sign reported in factor_table.diff.
  2. Read beta_distance as the response's aggregate distance across the three displayed differences.

What this step cannot establish

These are full-sample factor-estimate differences. They do not measure holdings overlap, future tracking, or legal identity.

Exact values behind the figure
Exact plotted values shown in Exhibit 01
SeriesTarget minus achieved betaFactor
Factor differenceMarket+0.000281379
Factor differenceSize-0.000129266
Factor differenceValue+0.000088049

The point-estimate match is close enough to justify the doppelgänger label for this analytical purpose: describing VOO's selected factor fingerprint over the shared history.

The label should not be stretched. A factor model compresses returns into three common drivers; it does not compare every holding, distribution, fee, mandate, or tax attribute.

The solution exposed redundancy in the candidate set

The basket assigned 28.1649% to IVV and 70.8459% to SPY. VTI received 0.0249%, ITOT 0.0319%, and SCHB 0.9324%. The output therefore relied on two near-total weights rather than spreading exposure evenly across five familiar broad-market funds.

The response also warned that the factor-beta matrix was rank-deficient after the sum-to-one constraint. The tie-breaker selected the optimum closest to equal weight among solutions at the primary factor-distance optimum. That warning is part of the finding, not implementation trivia.

Exhibit 02

Content-pinned result

The basket behind the match

The fitted long-only weights and the numerical warning that qualifies how uniquely they should be interpreted.

Which candidates carried the fitted exposure, and how concentrated was the numerical solution?

Construction. Convert each recorded decimal weight to percentage points by multiplying by 100. Display zero and small positions alongside the dominant weights so the fitted basket remains fully specified.

The basket behind the match. bar chart with 1 series. Exact values are available in the table following the figure.
Candidate ETF
0%20%40%60%IVVVTISCHBITOTSPY
Portfolio weight
The basket behind the match. bar chart with 1 series. Exact values are available in the table following the figure.
CategoryFitted weight
IVV28.165%
VTI0.025%
SCHB0.932%
ITOT0.032%
SPY70.846%

Source and construction: Same recorded ArthaPilot response; lexicographic solver with factor distance first and an equal-weight-proximity tie-breaker.

How this figure was calculated

Inputs

  • The five long-only candidate weights returned by the recorded solver response.
  • The response warning describing rank deficiency after the sum-to-one constraint.

Calculation

  1. Convert each recorded decimal weight to percentage points by multiplying by 100.
  2. Display zero and small positions alongside the dominant weights so the fitted basket remains fully specified.

What this step cannot establish

The chart shows the deterministic selected solution, not a uniquely identified economic portfolio. The response warns that the factor-beta system is rank-deficient.

Exact values behind the figure
Exact plotted values shown in Exhibit 02
SeriesPortfolio weightCandidate ETF
Fitted weightIVV28.165%
Fitted weightVTI0.025%
Fitted weightSCHB0.932%
Fitted weightITOT0.032%
Fitted weightSPY70.846%

The candidate funds are themselves close substitutes at the factor-model level, so a low-dimensional target does not uniquely identify a diversified five-fund construction.

The tie-breaker makes the selected optimum deterministic. It does not turn an underidentified exposure problem into a unique economic portfolio.

Historical tracking was tight; identity is still the wrong conclusion

On the same full sample, annualized tracking error was 0.1822%, tracking correlation was 0.999927, active alpha was 0.0708%, and active R-squared was 0.999855. The factor match and the realized return path were both close in this case.

Those diagnostics are in sample: the same history supports the fit and the tracking description. No rolling estimation or next-window test is present. And none of these statistics determines whether the securities are substantially identical under wash-sale rules.

Exhibit 03

Content-pinned result

The residual ledger and its boundary

The recorded path-similarity statistics, followed by the legal and temporal claims they do not establish.

How large were the fitted basket's annualized residual tracking error and active alpha in the same sample?

Construction. Convert tracking_error_annualized and active_alpha_annualized from decimals to percentage points. Keep correlation and R-squared in the table rather than putting unlike units on the same chart axis.

The residual ledger and its boundary. bar chart with 1 series. Exact values are available in the table following the figure.
Residual statistic
0%0.05%0.1%0.15%Tracking errorActive alpha
Annualized percentage points
The residual ledger and its boundary. bar chart with 1 series. Exact values are available in the table following the figure.
CategoryRecorded residual
Tracking error0.182%
Active alpha0.071%

Note: Tracking correlation and active R-squared remain in the adjacent evidence table because they are unitless fit statistics.

Source and construction: Same recorded ArthaPilot response. Tax-scope boundary follows IRS Publication 550; no substantially-identical classification is generated.

How this figure was calculated

Inputs

  • Annualized tracking error and active alpha from the recorded tracking object.
  • Tracking correlation and active R-squared retained in the evidence table as complementary unitless diagnostics.

Calculation

  1. Convert tracking_error_annualized and active_alpha_annualized from decimals to percentage points.
  2. Keep correlation and R-squared in the table rather than putting unlike units on the same chart axis.

What this step cannot establish

Both plotted statistics are in sample. A small realized residual does not establish next-window persistence or substantially identical status.

Exact values behind the figure
Exact plotted values shown in Exhibit 03
SeriesAnnualized percentage pointsResidual statistic
Recorded residualTracking error0.182%
Recorded residualActive alpha0.071%

The worked result supports a precise but limited statement: this long-only basket closely matched VOO's selected factor betas and return path over the recorded sample.

Rolling fits and next-window tracking are still required before making a persistence claim. Tax treatment remains a separate facts-and-circumstances inquiry even if that later evidence is strong.

Method and constraints

Method

The displayed VOO factor-match results reconcile to one committed request and response fixture.

Verification: Preserve the fixture path, source commit, and request/response SHA-256 hashes with the note.

Verification: Verify displayed candidate weights sum to 100% within rounding and preserve the rank-deficiency warning verbatim in substance.

Verification: Reconcile factor deltas, distance, tracking statistics, and units to the committed response.

Assumptions held fixed

  • The target is VOO and the candidate set is IVV, VTI, SCHB, ITOT, and SPY; the target itself cannot appear as a candidate.
  • The factor model is Fama-French three factors over 120 monthly observations from 2016-01-31 through 2025-12-31.
  • Candidate weights are long-only and sum to one. The solver minimizes beta distance first and applies its documented tie-breaker at that optimum.
  • Tracking statistics use the same full historical sample as the fit; no rolling or held-out result is asserted.

What this study establishes

Across 120 monthly observations, a constrained basket of five broad U.S. equity ETFs matched VOO's Fama-French three-factor betas with a recorded distance of 0.000321926. The resulting tracking correlation was 0.999927 and annualized tracking error was 0.1822% in the same historical sample.

The closeness is real but narrow. The solver warned that the factor-beta matrix was rank-deficient after imposing the sum-to-one constraint, and nearly all weight landed in IVV and SPY. Similar estimated betas and a tight historical residual do not establish identical holdings, future tracking, legal equivalence, or substantially identical status for wash-sale purposes.

Limitations
  • The result depends on the target, candidate universe, three-factor model, monthly frequency, and selected historical window.
  • The factor-beta system was rank-deficient after the sum-to-one constraint, so the displayed weights should not be read as uniquely determined economic exposures.
  • The tracking diagnostics are in sample; rolling stability and next-window tracking are outside this note.
  • The study does not determine tax, legal, or investment suitability, including whether securities are substantially identical under wash-sale rules.
Sources and prior research
Evidence and reproducibility

factor-doppelganger-recorded-demo-fixture

A descriptive worked note reporting one full-sample VOO factor match, its fitted basket, numerical warning, and in-sample tracking diagnostics.

Evidence date: 2026-08-17. Basis and units are stated in each recorded fact.

note=51d6cb7b7f42275c61c0e34a37539fc8a6234b980131a234da959397441ffd8b; request=69ce06eb65ee81c5791289464c0f9fd0dd65710f225fd67add8ef05e98ea216a; response=97a29cfbf989d795ea908ade7aff1c922b016a55250ed07278631c47d61deae5

Source: web/src/data/research/portfolio/fixtures/match-factor-exposure.record.json. Versions: fixture1=69daa3e2f3fd5efe2faa78e6b08748eee1bc250c.

  • A rolling or next-window persistence result
  • A claim that the fitted weights are economically unique
  • A conclusion about holdings identity, future tracking, or substantially identical status

Inspect the same question with your own inputs

The linked tools expose the assumptions, dates, and result tables behind this report.

  • Match a factor profile Choose a target and candidate set, then inspect weights, factor deltas, tracking diagnostics, and warnings.
  • Explain a portfolio's returns Estimate factor coefficients, confidence intervals, fit, and residual behavior for a saved portfolio.
  • Compare full return paths Backtest the target and candidate portfolio on common dates with explicit rebalance and cost assumptions.