QuanterLab produced this study: it wasn’t written up afterwards. Registered hypothesis and search record in Appendix A2.
As seen on Quantocracy
All research
QuanterLab · Research

Which tech companies spend more on building than their business brings in? Every S&P 500 tech company, checked each April since 2000

How this study was run: the companies, the method, the dates
Universe · S&P 500 (point-in-time constituents)
Method · Comparative: Expanding vs Not expanding
Manipulated variable ·
Two arms open each first of April with the same point-in-time S&P 500 membership, narrowed to the thirty-year record's roster of the technology chain (chip and computer designers, equipment makers, platforms, network builders and software sellers; the power companies and the tower and data-centre ow… (full registered statement)Two arms open each first of April with the same point-in-time S&P 500 membership, narrowed to the thirty-year record's roster of the technology chain (chip and computer designers, equipment makers, platforms, network builders and software sellers; the power companies and the tower and data-centre owners out), every member read on its latest annual report filed on or before the anchor, as first filed: capital spending, revenue and net cash from operating activities, with the prior year's report for the year-earlier figures. Arm B holds the scored members that are not building. Arm A holds the builders (capital spending up on the year in dollars and per dollar of revenue). So the arms differ in one registered field, the book. Every name is bought equal weight at the anchor close and held to the end of the one-year window, dividends reinvested on the ex-date bar from the payment record, 10 basis points paid one way at entry and at exit; a name that stops trading marks flat at its last close and is sold there; fewer names than the registered floor in either arm excludes the window.
Step size · 1 year per forward window
In-sample · 2 years before each anchor
Out-of-sample span · 2001-04-02 → 2026-04-01
Compiled · September 23, 2026
Search family · the paper's ten tests (N = 10, every member reported)
Abstract

Before the dot-com crash, the telecom companies building the internet's networks spent more on buildings and equipment than their businesses brought in, and borrowed or sold shares to pay the difference. Our thirty-year study of the tech industry found that their spending passed their own cash in 2000, and within two years they had cut it in half. Today's AI giants spend a similar share of their sales, but so far they pay for it from their own cash.

This paper checks every tech company in the S&P 500, every April since the dot-com peak: is it stepping up its spending, and is that spending more than its business brings in? As the crash unfolded, ten, then eleven of about seventy companies did both. For the last twenty years it has never been more than three, and this April it is three: Sandisk, Lumentum and Oracle. Microsoft, Alphabet and Meta still pay their own way, and Amazon is close to the edge.

Spending more did not hurt shareholders. The companies stepping up their spending did as well as the others, and the fastest spenders did better than the slowest. The usual worry about the AI giants is how much they spend. This check watches who pays.

Why we did this

Our thirty-year study of the tech industry followed what the biggest US tech companies spent on buildings, equipment and data centres. Today's four AI giants, Microsoft, Alphabet, Meta and Amazon, put about 22 cents of every sales dollar into building, close to the telecom companies' 24 cents at the same stage of the dot-com boom. The telecom companies borrowed to build; so far the AI giants pay from their own cash.

The study added up whole groups, but an investor owns single companies. So this paper asks the question company by company: who spends more on building than its business brings in, and did it matter for the shareholders? We also tested a worry in today's news, that the AI giants are raising their spending too fast. We expected that in this industry fast-rising spending goes with growth.

How we checked

Two numbers from each company's annual report are enough: what it spent on buildings and equipment, and the cash its business brought in. If the spending is smaller, the company pays for its growth itself, and we call it self-funded. If it is larger, the rest came from loans, new shares or savings. Apple in 2001 is an example: its business brought in 185 million dollars and it spent 232 million, so it was not self-funded.

We count a company when it is also expanding: spending more on buildings and equipment than the year before, and a bigger share of its sales, as the telecom companies did. Intel spends more than its cash, but it cut its spending this year, so it is not counted.

Every April we used only the reports each company had filed by then, so the check sees what an investor could have seen. The check leaves out power companies and the companies that rent out towers and data-centre space, which borrow to build every year whatever the business is doing.

To see what it meant for shareholders, each April we put the same amount into every company of a group and held it for a year. The returns start in 2006: before that our price data misses too many of the companies that disappeared in the crash.

Before reading any result we wrote down eight tests, most of them a group against all the tech companies. After reading them we added the two pairs in Figures 2 and 3, each group against its opposite, and they agree with the eight. Every test is in the full record, and every detail in the methodology.

Who spent more than their business brought in

Figure 1 shows the count every April. In the two years after the dot-com peak it rose to ten, then eleven companies, among them WorldCom and Nortel, which failed, and Apple, Verizon and Comcast, which came through. Annual reports come out months after the year they describe, so the count trails share prices by about a year.

It fell back after the crash and has stayed low, usually one company a year. This April it is three (Table 1): Sandisk, whose business brought in almost no cash last year; Lumentum; and Oracle, which tripled its spending to build data centres for its cloud business. Of the AI giants, Amazon comes closest, spending 94 cents for every dollar its business brings in; Meta, Alphabet and Microsoft spend well below their cash.

Two things could make the AI giants look safer than they are. Some of their newest reports are months old, and equipment they lease or computing power they rent is not counted. Both would move them closer to the edge.

The tech companies in the S&P 500 every April since 2000: expanding and self-funded (green), expanding and spending more than their business brought in (red, counted above each bar), and not expanding (beige). The dashed line counts the companies our price data does not cover.
Figure 1. The tech companies in the S&P 500 every April since 2000: expanding and self-funded (green), expanding and spending more than their business brought in (red, counted above each bar), and not expanding (beige). The dashed line counts the companies our price data does not cover.

Table 1. This April: what each company spends on buildings and equipment for every dollar of cash its business brings in. The three companies expanding beyond that cash, the four biggest AI spenders, Micron and Nvidia, which sell them chips, and Intel, which spends more than its cash but is not expanding.

CompanyBusinessAnnual report filedSpends per dollar brought inSpending change on the yearWhere it stands
Sandiskchips and computersAug 20252.43 dollars+23%spending more than it brings in
Lumentumnetwork and data-centre equipmentAug 20251.83 dollars+74%spending more than it brings in
Oraclebusiness softwareJun 20251.02 dollars+209%spending more than it brings in
Amazoninternet platformsFeb 202694 cents+59%expanding, self-funded
Micron Technologychips and computersOct 202590 cents+89%expanding, self-funded
Meta Platformsinternet platformsJan 202660 cents+87%expanding, self-funded
Alphabetinternet platformsFeb 202656 cents+74%expanding, self-funded
Microsoftbusiness softwareJul 202547 cents+45%expanding, self-funded
Nvidiachips and computersFeb 20266 cents+87%expanding, self-funded
Intelchips and computersJan 20261.51 dollars-39%not expanding
1  Methodology, in detail (click to open)

1  Methodology

Who is checked. A company is checked in an April if it was in the S&P 500 that day and belongs to one of the thirty-year study's five tech groups, except the five that rent out towers and data-centre space (American Tower, Crown Castle, SBA Communications, Equinix and Digital Realty). A company that changed its legal form counts once (Google and Alphabet, for example). The old AT&T, bought in 2005, has no share prices but is in the counts.

The figures. Capital spending is the entry in the cash flow statement called purchases of property, plant and equipment; the cash the business brought in is the cash from operations. Every figure is the one first reported, including the ones we read by hand from the original reports. A company whose report lacks a figure is left out that April, and counted as left out. A company whose business lost cash counts as not self-funded. Expanding means capital spending rose on the year, and faster than sales.

Timing. Each April uses the latest annual report a company had filed by then, as long as the year it covers ended within the last fifteen months. A company whose financial year ends within days of the first of April is left out that April. This April, Microsoft's latest report ends in June 2025 and Oracle's in May 2025, so up to ten months of their newest spending is not in these figures.

The return tests. Each April the same amount goes into each company of a group, held for a year with dividends reinvested, paying 0.1 percent to buy and 0.1 percent to sell. Seven tests were written down and dated before the first one ran: the self-funded expanding companies against all the tech companies; the expanding companies spending more than their business brings in against all the tech companies, and against the self-funded ones; all the tech companies without them; the companies not expanding; and the fastest-growing spenders, whole and split by who pays. An eighth, holding every company spending more than its business brings in even alone, was added after the seven ran and before any result was read. The two pairs, expanding against not expanding and the fastest third against the slowest, were added on 23 September 2026, after the first eight results had been read, with the same rules, companies and years.

The fastest and slowest spenders are the top and bottom thirds of the companies ranked each April by how much their capital spending grew over the year, ties broken by ticker. A group needs ten companies to be held, or three for the companies spending more than they bring in; in a year with fewer, that test skips the year. The test on this page skipped 2000, 2003 and 2004, when fewer than ten expanding companies had share prices. The fastest third is held in two of the tests, run two days apart; the dividend records of Amphenol and Lam Research were updated in between, so it ends at 21.92 dollars in one and 21.93 in the other.

Share prices. Our price data does not carry companies that no longer trade. Before 2006 over 40 percent of the companies checked each April have no prices; we picked 2006 from this price record, as the first April when about two in three have them. From 2007 about three in four have prices and from 2017 nearly all. The companies without prices are left out of both sides of every test, and not evenly: in 2006 about half the expanding companies had no prices against a fifth of the others, and in 2010 it went the other way. The counts include every company, priced or not.

The results in numbers, from 2006. A dollar in all the tech companies grew to 15.55. In the eight tests written down first, the self-funded expanding companies and the companies not expanding each ended within 13 cents of it, and the fastest third reached 21.92; the tests that needed three or more companies spending beyond their cash, with share prices, could read only one April. In the two pairs, the expanding companies fell 53 percent from their 2007 high to the low of November 2008, the others 64; the fastest and slowest thirds earned about the same in an average year, 19.8 percent against 18.9, the fastest third did better in eleven of the twenty years and lost 29 percent over the year from April 2008 against the slowest third's 44. In the last year the companies not expanding gained 52 percent against 27, led by Western Digital, Seagate, Lam Research and KLA. All the tech companies can end below both groups because companies move between the two every April and the groups change size.

Company by company. From 2006 a company was counted 28 times in all, some companies more than once. Of those, 23 have share prices: in 12 the company did better over the next year than the self-funded expanding companies of its own kind, in 11 worse, and the middle case was about two points ahead. The five without prices, Gateway, CA twice, Sprint and Yahoo, were all later taken over by other companies.

The Sharpe ratio on the card is the average daily return divided by how much the daily returns swung, scaled to a year, with no deduction for the interest cash would have earned. Every group is compared with its opposite and with all the tech companies bought the same way, not with the S&P 500 index fund, which puts more money into the biggest companies and holds companies our tests cannot price.

Changes after the rules were written. April 2026 can only be a count, because its year is not over. A second reading of the figures after the tests ran changed three companies in 2003 and 2005, before the returns start; the counts here use the corrected figures.

2  Results

2.1  Headline

Expanding, Sharpe
0.56
day by day, every year the test ran, 2001 to 2026
Not expanding, Sharpe
0.58
day by day, every year the test ran, 2001 to 2026
The result
From 2006, a dollar in the expanding companies, shared out again every April, grew to about 16 dollars, the same as in the others (Figure 2). In the fastest spenders it grew to about 22, in the slowest to about 14 (Figure 3). The two scores on this card, the Sharpe ratio, weigh each group's return against its swings over every year the test ran, crash years included, and they are level.
What one dollar grew to from 2006, shared out again every April: the expanding companies (green), the others (beige) and all tech companies (dashed).
Figure 2. What one dollar grew to from 2006, shared out again every April: the expanding companies (green), the others (beige) and all tech companies (dashed).
The same for the companies raising their spending fastest (dark blue) and slowest (light blue), a third of the companies each.
Figure 3. The same for the companies raising their spending fastest (dark blue) and slowest (light blue), a third of the companies each.
Sections 2.2 to 3, the full record: every year, every test, and how each one was run (click to open)

Table 2. Every April from 2000 to 2012: the expanding companies spending more than their business brought in

AprilCompanies checkedExpandingSpending more than they bring inWhich onesandNo share prices
200062236CPQ LU S SFA SLR old AT&T40
2001724110ANDW AV CMCSK CNXT GLW JBL NT VZold AT&T WCOM47
2002733411AAPL AWE CMCSK GLW MU NVLS Q S SBLVIAV VTSS45
20036994AMD NTAP Q SBL31
200471201NVDA32
200568305ADCT AMD ANDW MXIM SLR31
200662333AMCC CA GTW22
200754343AMD CA SANM15
200859281MU16
200967281NVDA18
20107111020
20117436019
201268451MU14

Table 3. Every April from 2013 to 2026: the expanding companies spending more than their business brought in

AprilCompanies checkedExpandingSpending more than they bring inWhich onesandNo share prices
201370332AMZN S12
201463301AMZN9
201564292AMZN NFLX9
201661282NFLX YHOO6
201756191MU3
201856273AMD AMZN NFLX2
201963341AMD1
202064321NFLX0
202168191TMUS0
202269321AMZN0
202367332DISH INTC1
202470271INTC0
202575241SMCI0
202680393LITE ORCL SNDK

2.2  Per-step results

Table 4. One row per step, raw out-of-sample results. A short window can pair a negative return with a positive annualised Sharpe: at high daily volatility the arithmetic mean of daily returns sits above the compounded window return, and the Sharpe reads the former. Volatility drag, printed rather than smoothed.
#Out-of-sample window Expanding SR Not expanding SR
1 excluded: refused, no history , ,
2 2001-04-02 → 2002-04-01 0.31 0.42
3 2002-04-01 → 2003-04-01 -0.77 -0.78
4 excluded: refused, no history , ,
5 excluded: refused, no history , ,
6 2005-04-01 → 2006-03-31 1.83 1.46
7 2006-04-03 → 2007-03-30 0.41 -0.24
8 2007-04-02 → 2008-03-31 -0.43 -0.00
9 2008-04-01 → 2009-04-01 -0.44 -0.74
10 2009-04-01 → 2010-04-01 2.34 2.35
11 2010-04-01 → 2011-04-01 1.21 1.25
12 2011-04-01 → 2012-03-30 0.58 0.24
13 2012-04-02 → 2013-04-01 0.17 1.17
14 2013-04-01 → 2014-04-01 1.73 2.39
15 2014-04-01 → 2015-04-01 0.76 0.76
16 2015-04-01 → 2016-03-31 0.36 0.30
17 2016-04-01 → 2017-03-31 1.61 2.12
18 2017-04-03 → 2018-03-29 1.78 1.12
19 2018-04-02 → 2019-04-01 0.97 0.66
20 2019-04-01 → 2020-03-31 0.10 -0.02
21 2020-04-01 → 2021-04-01 2.46 2.64
22 2021-04-01 → 2022-04-01 0.56 0.28
23 2022-04-01 → 2023-03-31 -0.05 -0.19
24 2023-04-03 → 2024-03-28 1.80 1.60
25 2024-04-01 → 2025-04-01 -0.17 0.43
26 2025-04-01 → 2026-04-01 1.03 1.64
Out-of-sample equity: normalised growth (1.00x = break even)0.30x1.13x1.96xbars into the window →
Figure 4. Expanding: every step's out-of-sample curve overlaid, each rebased to 1× at its own start. Read alongside the per-step table: consistent shape across steps is the walk-forward's evidence; a single lucky leg is not.
Out-of-sample equity: normalised growth (1.00x = break even)0.35x1.19x2.03xbars into the window →
Figure 5. Not expanding: the same windows, the other arm. Compare shape-for-shape with the previous figure: the two arms trade the identical out-of-sample windows.

2.2b  Every test, in numbers

Every test this paper registered, two rows each, the paper’s own test first.

WalkWindowsSpanGrowth CAGRWorst drawdown
Expanding, against not expanding (this paper) 20 2006-04-03 → 2026-04-01 +1512.2% +14.9% -53.0%
Not expanding, against expanding (this paper) 20 2006-04-03 → 2026-04-01 +1468.1% +14.8% -64.4%
Expanding, spending more than they bring in, three or more held, against the self-funded 1 2018-04-02 → 2019-04-01 +79.6% +79.9% -43.0%
Expanding, self-funded, against those spending more than they bring in 1 2018-04-02 → 2019-04-01 +13.6% +13.7% -22.7%
Spending more than they bring in, one company in most years (not a portfolio), against the self-funded 18 2006-04-03 → 2026-04-01 +216.3% +5.9% -88.5%
Expanding, self-funded, against each company spending more than it brings in 18 2006-04-03 → 2026-04-01 +968.9% +12.6% -51.1%
Expanding, spending more than they bring in, three or more held, against all tech companies 1 2018-04-02 → 2019-04-01 +79.6% +79.9% -43.0%
All tech companies, against those spending more than they bring in 1 2018-04-02 → 2019-04-01 +16.5% +16.5% -23.1%
Expanding, self-funded, against all tech companies 20 2006-04-03 → 2026-04-01 +1449.1% +14.7% -51.1%
All tech companies, against the expanding self-funded 20 2006-04-03 → 2026-04-01 +1454.7% +14.7% -58.3%
All tech companies except those spending more than they bring in, against all 20 2006-04-03 → 2026-04-01 +1424.2% +14.6% -57.3%
All tech companies, against all except those spending more than they bring in 20 2006-04-03 → 2026-04-01 +1454.7% +14.7% -58.3%
Fastest third of spenders, against all tech companies 20 2006-04-03 → 2026-04-01 +2091.8% +16.7% -58.7%
All tech companies, against the fastest third 20 2006-04-03 → 2026-04-01 +1454.7% +14.7% -58.3%
Fastest third, spending more than they bring in, against the fastest third self-funded 1 2018-04-02 → 2019-04-01 +79.6% +79.9% -43.0%
Fastest third, self-funded, against the fastest third spending more than they bring in 1 2018-04-02 → 2019-04-01 +10.8% +10.8% -23.4%
Fastest third of spenders, against the slowest third 20 2006-04-03 → 2026-04-01 +2093.4% +16.7% -58.7%
Slowest third of spenders, against the fastest third 20 2006-04-03 → 2026-04-01 +1309.1% +14.1% -66.0%
Not expanding, against all tech companies 20 2006-04-03 → 2026-04-01 +1467.6% +14.8% -64.4%
All tech companies, against those not expanding 20 2006-04-03 → 2026-04-01 +1454.7% +14.7% -58.3%

Every row above is that walk from 2006-04-01 on, the stretch this paper reads, rebased and recomputed over those windows. The pooled Sharpe is left out here because the compile pooled it over the whole registered walk, earlier windows included; the platform's own tables below carry it.

Growth and CAGR above are each walk over its own windows, so they are not comparable across walks with different window counts: a walk that excluded a window did not live through it. The figure rebases every line on the session all of them share.

2.3  Search accounting

This paper's search is a declared family: the paper's ten tests, counted at N = 10 evaluated books. Every member is either a registered walk with its own hypothesis and frozen record, or a derived average computed from those frozen records; every member is reported, in the family matrix table and the robustness figure, and none was selected away. The count is declared by the author rather than derived from one project's ledger, because the members are sibling registered studies; the declaration names them and is frozen in this artifact. What the source strategy's author searched before publishing is not knowable from here and is not counted. The registered per-step record below still guarantees each window's hypothesis was hashed and registered before that window was scored.

2.4  The comparison

Both arms trade the same registered windows, so their returns can be PAIRED: inside each window the two return series are inner-joined date by date and the difference rExpanding − rNot expanding is the object under test. Because this is ONE pre-declared contrast, frozen at registration before any window was scored, the paired statistic needs no multiple-testing deflation; the arm-level records carry the declared family count of §2.3 as their search accounting, and this contrast, registered per window before scoring, is not multiplied by it.

Table 5. Window-by-window paired comparison. Δ is the growth gap (Expanding − Not expanding) over the window's paired dates.
#WindowPaired bars ExpandingNot expanding ΔLeader
2 2001-04-03 → 2002-04-01 246 +4.4% +8.9% -4.5 pp Not expanding
3 2002-04-02 → 2003-04-01 253 -40.6% -31.8% -8.8 pp Not expanding
6 2005-04-04 → 2006-03-31 252 +34.4% +23.0% +11.5 pp Expanding
7 2006-04-04 → 2007-03-30 249 +5.8% -5.3% +11.1 pp Expanding
8 2007-04-03 → 2008-03-31 250 -10.8% -2.7% -8.1 pp Not expanding
9 2008-04-02 → 2009-04-01 253 -26.4% -37.3% +10.9 pp Expanding
10 2009-04-02 → 2010-04-01 252 +75.8% +72.0% +3.8 pp Expanding
11 2010-04-05 → 2011-04-01 253 +29.2% +28.6% +0.5 pp Expanding
12 2011-04-04 → 2012-03-30 251 +12.4% +2.8% +9.7 pp Expanding
13 2012-04-03 → 2013-04-01 248 +1.5% +19.2% -17.8 pp Not expanding
14 2013-04-02 → 2014-04-01 253 +24.7% +41.3% -16.6 pp Not expanding
15 2014-04-02 → 2015-04-01 252 +11.1% +10.5% +0.6 pp Expanding
16 2015-04-02 → 2016-03-31 251 +5.5% +3.9% +1.6 pp Expanding
17 2016-04-04 → 2017-03-31 252 +27.2% +34.1% -6.9 pp Not expanding
18 2017-04-04 → 2018-03-29 249 +31.4% +17.3% +14.1 pp Expanding
19 2018-04-03 → 2019-04-01 251 +21.3% +12.2% +9.1 pp Expanding
20 2019-04-02 → 2020-03-31 252 -3.1% -4.8% +1.8 pp Expanding
21 2020-04-02 → 2021-04-01 252 +84.7% +91.4% -6.7 pp Not expanding
22 2021-04-05 → 2022-04-01 253 +10.8% +3.7% +7.1 pp Expanding
23 2022-04-04 → 2023-03-31 250 -5.9% -9.0% +3.1 pp Expanding
24 2023-04-04 → 2024-03-28 248 +37.0% +27.9% +9.1 pp Expanding
25 2024-04-02 → 2025-04-01 251 -4.8% +6.9% -11.7 pp Not expanding
26 2025-04-02 → 2026-04-01 251 +26.9% +52.1% -25.2 pp Not expanding

Paired Sharpe of the difference track: -0.00 · block bootstrap (2000 paths, block 10, seed 1234): P(Expanding beats Not expanding) = 49.8%.

Window win-rate. Expanding led 14 of 23 windows (60.9%), Not expanding led 9, yet the mean window gap runs the other way: -0.54 pp toward Not expanding. Expanding wins more often and smaller; Not expanding wins less often and larger. The count and the mean answer different questions, and neither settles the comparison by itself. Widest single window: 2025 at -25.2 pp.

Table 6. The same comparison split at 2006. Pooling the whole walk into one row hides which side of the split the difference came from.
PeriodWindows ExpandingNot expanding Mean gapExpanding led
All windows 23 +15.32% +15.86% -0.54 pp 14/23
Before 2006 3 -0.60% +0.02% -0.62 pp 1/3
2006 onward 20 +17.71% +18.23% -0.52 pp 13/20
All windowsn=23 · Expanding led 14 · Not expanding led 9 · ties 0+15.3%+15.9%-0.54 ppBefore 2006n=3 · Expanding led 1 · Not expanding led 2 · ties 0-0.6%+0.0%-0.62 pp2006 onwardn=20 · Expanding led 13 · Not expanding led 7 · ties 0+17.7%+18.2%-0.52 ppgap
Figure 6. Mean window return per period. Expanding above, Not expanding below, with the gap at right. The pooled bar and the post-2006 bar are the same comparison over different periods.

Incomplete walk. 26 steps were registered and 23 produced a scored window. No run was recorded for step 1 (anchor 2000-04-01), step 4 (anchor 2003-04-01), step 5 (anchor 2004-04-01). That window is absent from this table and from every average on this page, the comparison covers 23 of 26 registered periods, not all of them.

3  The circuit

The strategy is a circuit of platform primitives, frozen when the study is registered. Below is the circuit as wired on the canvas, the objective it encodes and how the search runs through it, followed by the mathematics each primitive actually computes, the same formulas the execution engine runs. The complete parameterisation is preserved in the study ledger (Appendix A).

The hypothesis under test

The sentence below is the registration record, generated when the circuit was registered and printed verbatim; the authored description of the design is Section 1.

A COMPARATIVE study: Expanding vs Not expanding, walked on the same registered out-of-sample windows. Expanding: S&P 500, bought equal weight at the anchor close and held a year, and run out-of-sample from the anchor: anything the design estimates from history, where it estimates at all, is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. Not expanding: S&P 500, bought equal weight at the anchor close and held a year, and run out-of-sample from the anchor: anything the design estimates from history, where it estimates at all, is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. The arms differ in: Capex line book (PIT), book: builders → rest. The contrast under test: whether Expanding generates better risk-adjusted returns than Not expanding over the identical out-of-sample windows.

Two building blocks were written for this study, the way a user writes one on the desktop: one sorts the companies each April by the two questions, the other holds a group for a year. They read a table built from our thirty-year study's figures and the SEC's filing dates. The S&P 500 membership comes with the platform.

The frozen circuit, data flows left to rightuniverse: click for detailsuniversecustom capex book: click for detailscustom capex bookcustom capex hold: click for detailscustom capex holdportfolio forward autopsy: click for detailsportfolio forward autopsyuniverse: click for detailsuniversecustom capex book: click for detailscustom capex bookcustom capex hold: click for detailscustom capex holdportfolio forward autopsy: click for detailsportfolio forward autopsyExpandingNot expandingshared
Figure 7. The frozen circuit, every node a primitive, every wire a typed data-flow; the two arms are colour-coded (Expanding green, Not expanding blue, shared feeds neutral). Each box is one step of the strategy; data flows along the wires left to right, and no box can see data dated later than the box feeding it. The whole diagram was frozen when the hypothesis was registered. Click any node to open what that step ran with and what it produced.

Envelopes show counts, ratios, dates, and the parameters the author chose. Full price and per-name data series are not republished: the underlying market data is licensed to QuanterLab. Point figures quoted in the prose, a named holding's return over a stated span, are summary facts derived from public market prices, not redistributed series.

What each part does
Universe, The starting set of tickers, resolved point-in-time from the index change-log, so names delisted or removed later still compete on the dates they traded.
Portfolio Forward Autopsy, The post-mortem, where the forward test’s return actually came from.

The objective and the search

Expanding

UniverseS&P 500 index constituents.
Validation & out-of-sampleheld forward test (every wired name bought equal weight at the anchor close and held to the end of the one-year window, dividends reinvested on the ex-date, 10.0 basis points one way at entry and at exit, every name's own return reported).
Other componentsStudy: Capex line book (PIT), Hold the book a year.

Not expanding

The specification is identical to Expanding's table above, row for row; the one registered difference between the arms is itemized below.

What differs between the arms, one difference; the comparison is clean:

  • paramCapex line book (PIT), book: builders → rest

Everything else is held identical, so an out-of-sample gap between the arms is attributable to this one change.

Cost elements are wired into the circuit, the realised drag is reported per step in Appendix B.

Show the mathematics, 2 primitives, formulas and parity notes

3.1  Universe

The starting set of tickers, resolved point-in-time from the index change-log, so names delisted or removed later still compete on the dates they traded.

Before any math, you need a list of stocks. An index preset (S&P 500, Nasdaq-100, Dow 30) is reconstructed as it stood ON your anchor date by replaying the historical add/drop change-log backwards, so a 2018 backtest sees the 2018 membership, not today's winners.

Point-in-time membership

Start from today's constituents and un-apply every membership change after the anchor t:

\mathcal{U}(t) = \mathcal{U}_{\text{now}} \;\ominus\; \{\text{adds after } t\} \;\oplus\; \{\text{drops after } t\}
Constituents resolved from the index change-log; the same point-in-time set the factor + screening modules use.

3.2  Portfolio Forward Autopsy

The post-mortem, where the forward test’s return actually came from.

Runs after the Portfolio Forward Test and dissects its realized path: per-rebalance contributions, winners and losers, exposure and cash periods, and how the realized route compares to what the risk cones projected. It computes nothing new about the future, it explains the past the book just lived.

Reading it

Depth I–IV: headline attribution, per-segment breakdown, per-name contributions, and the calibration ledger (projected cone vs realized, segment by segment). In a study, this is the node that fills the appendices.

4  Discussion

4.1  Findings

Stepping up spending did not hurt shareholders. The expanding companies did as well as the others (Figure 2), ahead for most of the way until the companies that had held their spending back, disk-drive and chip-equipment makers such as Western Digital and Seagate, caught up in the last year.

The fastest spenders did better than the slowest, and pulled away in the second half (Figure 3).

Company by company, the few that spent beyond their cash did about as well as the self-funded ones.

4.2  Interpretation

Across the whole US market, companies that invest the most have tended to earn less afterwards, one of the best-known findings in finance (Titman, Wei and Xie, 2004; Fama and French, 2015). Among the largest tech companies it went the other way. The fastest spenders were often the fastest growers too, and our reading is that in this industry fast-rising spending has mostly been what growth requires.

What to watch is who pays. The telecom companies ran past their own cash before their spending collapsed. The AI giants still pay their own way; if they join the three companies counted this April, the count will be the highest since the crash.

Every step of this check is saved on QuanterLab, where anyone can open it, change a rule and run it again as the new reports come in.

4.3  Limitations

The returns include only companies with share prices, and spending is what each company reports, without leases or rented computing power.

The fastest spenders were often the fastest growers by sales, and this test cannot tell which of the two did the work.

References

QuanterLab reference architecture
  1. Gelman, A., & Loken, E. (2013). The garden of forking paths: Why multiple comparisons can be a problem, even when there is no “fishing expedition.” Working paper, Columbia University.
  2. Harvey, C. R., Liu, Y., & Zhu, H. (2016). … and the Cross-Section of Expected Returns. Review of Financial Studies, 29(1), 5–68. doi:10.1093/rfs/hhv059
  3. Lo, A. W. (2002). The Statistics of Sharpe Ratios. Financial Analysts Journal, 58(4), 36–52. doi:10.2469/faj.v58.n4.2453
Author’s references?
  1. Girgin, Serhat (2026), Thirty Years of the Technology Industry, From Dot-Com to ChatGPT: Its Strong Stories and Their Relation to Capital Expenditure, SSRN, https://ssrn.com/abstract=7507181, doi:10.2139/ssrn.7507181: the study this paper checks company by company, with its groups, its stories and the figures published with it.
  2. Titman, Wei and Xie (2004), Capital investments and stock returns, Journal of Financial and Quantitative Analysis: across the US market, companies that sharply increased their capital investment earned lower returns in the years after.
  3. Fama and French (2015), A five-factor asset pricing model, Journal of Financial Economics: across the US market, companies whose assets grew fastest earned less than those whose assets grew slowest, the investment factor of the model.

Appendix A  Reproducibility in QuanterLab

Each step is backed by a frozen run report. The study is re-derivable from the ledger below.

#CommitReportAnchorOOS window
1 2c712323695c 11147 2000-04-01 ,
2 2c572d4564ba 11149 2001-04-01 2001-04-02 → 2002-04-01
3 871a2264b001 11151 2002-04-01 2002-04-01 → 2003-04-01
4 343cd1f5ac89 11153 2003-04-01 ,
5 40eb7103a3a4 11155 2004-04-01 ,
6 843fdbe02273 11157 2005-04-01 2005-04-01 → 2006-03-31
7 b19fc6bc0473 11159 2006-04-01 2006-04-03 → 2007-03-30
8 f34b1b7b50c8 11161 2007-04-01 2007-04-02 → 2008-03-31
9 e619f153abe0 11163 2008-04-01 2008-04-01 → 2009-04-01
10 692cb071861c 11165 2009-04-01 2009-04-01 → 2010-04-01
11 087c97ec327c 11167 2010-04-01 2010-04-01 → 2011-04-01
12 2e8b2e44fdb6 11169 2011-04-01 2011-04-01 → 2012-03-30
13 371223af4fce 11171 2012-04-01 2012-04-02 → 2013-04-01
14 002f5d7e4031 11173 2013-04-01 2013-04-01 → 2014-04-01
15 3c36da036f5b 11175 2014-04-01 2014-04-01 → 2015-04-01
16 526742bf8cd4 11177 2015-04-01 2015-04-01 → 2016-03-31
17 4058cb7db215 11179 2016-04-01 2016-04-01 → 2017-03-31
18 5258d0785b3e 11181 2017-04-01 2017-04-03 → 2018-03-29
19 3209ae593fb3 11183 2018-04-01 2018-04-02 → 2019-04-01
20 7cc40a250898 11185 2019-04-01 2019-04-01 → 2020-03-31
21 99e211cfc291 11187 2020-04-01 2020-04-01 → 2021-04-01
22 9a99debcedfe 11189 2021-04-01 2021-04-01 → 2022-04-01
23 2e345986a591 11191 2022-04-01 2022-04-01 → 2023-03-31
24 8e005ebece98 11193 2023-04-01 2023-04-03 → 2024-03-28
25 b6a6d21dcfd0 11195 2024-04-01 2024-04-01 → 2025-04-01
26 5b4cc6c8a3eb 11197 2025-04-01 2025-04-01 → 2026-04-01

Appendix A2  Registration record

What this record does and does not establish. Every window in this study is historical: the data existed before the study began, so this is sequential registration on past windows, not pre-registration in the clinical-trial sense, and no procedure could make it so. What the platform does enforce is order, each step's specification was frozen and hashed before that step was scored, and the walk cannot advance past a step that was never run or close one with a result registered for a different window. The two timestamp columns below are the evidence: read them together and each registration precedes its own run, and each run precedes the next registration. A study whose registrations all post-date its runs would show it here. Wall-clock spacing between registrations varies with the author's schedule and queue latency; the ordering, not the tempo, is the claim.

“A COMPARATIVE study: Expanding vs Not expanding, walked on the same registered out-of-sample windows. Expanding: S&P 500, bought equal weight at the anchor close and held a year, and run out-of-sample from the anchor: anything the design estimates from history, where it estimates at all, is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. Not expanding: S&P 500, bought equal weight at the anchor close and held a year, and run out-of-sample from the anchor: anything the design estimates from history, where it estimates at all, is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. The arms differ in: Capex line book (PIT), book: builders → rest. The contrast under test: whether Expanding generates better risk-adjusted returns than Not expanding over the identical out-of-sample windows.”

The same hypothesis was registered independently at every step, hashed before each step's out-of-sample window was scored:

Table 7. Registration audit, one row per registered step, with the time each specification was frozen and the time its window was scored. The hypothesis is identical on every row by design: it was registered once and re-registered unchanged at each anchor. Rows that differ would mean the specification moved mid-walk, which is the thing this record exists to rule out. The timestamps are the separate claim: each registration precedes its own run, and each run precedes the next registration.
#AnchorRegistered at (UTC)Run completed (UTC)
1 2000-04-012026-09-23 12:32:19 2026-09-23 12:32:43
2 2001-04-012026-09-23 12:32:43 2026-09-23 12:32:55
3 2002-04-012026-09-23 12:32:55 2026-09-23 12:33:07
4 2003-04-012026-09-23 12:33:07 2026-09-23 12:33:19
5 2004-04-012026-09-23 12:33:19 2026-09-23 12:33:31
6 2005-04-012026-09-23 12:33:31 2026-09-23 12:33:43
7 2006-04-012026-09-23 12:33:43 2026-09-23 12:33:55
8 2007-04-012026-09-23 12:33:55 2026-09-23 12:34:08
9 2008-04-012026-09-23 12:34:08 2026-09-23 12:34:20
10 2009-04-012026-09-23 12:34:20 2026-09-23 12:34:32
11 2010-04-012026-09-23 12:34:32 2026-09-23 12:34:44
12 2011-04-012026-09-23 12:34:44 2026-09-23 12:34:56
13 2012-04-012026-09-23 12:34:56 2026-09-23 12:35:08
14 2013-04-012026-09-23 12:35:08 2026-09-23 12:35:20
15 2014-04-012026-09-23 12:35:20 2026-09-23 12:35:32
16 2015-04-012026-09-23 12:35:32 2026-09-23 12:35:45
17 2016-04-012026-09-23 12:35:45 2026-09-23 12:35:57
18 2017-04-012026-09-23 12:35:57 2026-09-23 12:36:09
19 2018-04-012026-09-23 12:36:09 2026-09-23 12:36:21
20 2019-04-012026-09-23 12:36:21 2026-09-23 12:36:33
21 2020-04-012026-09-23 12:36:33 2026-09-23 12:36:45
22 2021-04-012026-09-23 12:36:45 2026-09-23 12:36:57
23 2022-04-012026-09-23 12:36:57 2026-09-23 12:37:09
24 2023-04-012026-09-23 12:37:09 2026-09-23 12:37:21
25 2024-04-012026-09-23 12:37:22 2026-09-23 12:37:34
26 2025-04-012026-09-23 12:37:34 2026-09-23 12:37:46

Appendix B  Per-step diagnostics

Realized in the projection tables below is the risk engine scoring its own forecast: the buy-and-hold return of the segment that followed each rebalance, on the same gross basis the cone was projected on. It is deliberately not the charged, calendar-window total return the study’s tables print, so the two will not reconcile line by line; the cone and its outcome share one basis, which is what a calibration test requires. Each row names its segment’s span so a boundary session is visible.

Names held is the union across the window: the count of distinct instruments the book touched between the window’s first and last session, not the number it held at one time. A book that rotates monthly touches more names than it holds.

What each step's run actually did beyond its return: capital allocation across lanes and regimes, the portfolio book's rebalancing and cost drag, and how positions were sized. Harvested from the frozen run reports, present where the circuit produced them. Cost drag is the gap between the step's return before and after its trading costs, in percentage points of the step's starting capital, so on a book that trades every session and compounds it can exceed the step's own net return.

Open the full per-step grid (26 steps: every rebalance, capital routing and sizing, per window)

Step 2 · 2001-04-02 → 2002-04-01

Expanding

Portfolio book, rebalanced hold · 15 names held · selection: anchor · cost drag 0.209% · 25 names dropped at load for want of prices (40 selected, 15 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 10 names held · selection: anchor · cost drag 0.218% · 21 names dropped at load for want of prices (31 selected, 10 held), weights renormalised onto the rest

Step 3 · 2002-04-01 → 2003-04-01

Expanding

Portfolio book, rebalanced hold · 15 names held · selection: anchor · cost drag 0.119% · 19 names dropped at load for want of prices (34 selected, 15 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 13 names held · selection: anchor · cost drag 0.136% · 25 names dropped at load for want of prices (38 selected, 13 held), weights renormalised onto the rest

Step 6 · 2005-04-01 → 2006-03-31

Expanding

Portfolio book, rebalanced hold · 18 names held · selection: anchor · cost drag 0.269% · 13 names dropped at load for want of prices (31 selected, 18 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 19 names held · selection: anchor · cost drag 0.246% · 17 names dropped at load for want of prices (36 selected, 19 held), weights renormalised onto the rest

Step 7 · 2006-04-03 → 2007-03-30

Expanding

Portfolio book, rebalanced hold · 17 names held · selection: anchor · cost drag 0.212% · 16 names dropped at load for want of prices (33 selected, 17 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 23 names held · selection: anchor · cost drag 0.189% · 6 names dropped at load for want of prices (29 selected, 23 held), weights renormalised onto the rest

Step 8 · 2007-04-02 → 2008-03-31

Expanding

Portfolio book, rebalanced hold · 25 names held · selection: anchor · cost drag 0.179% · 9 names dropped at load for want of prices (34 selected, 25 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 14 names held · selection: anchor · cost drag 0.195% · 6 names dropped at load for want of prices (20 selected, 14 held), weights renormalised onto the rest

Step 9 · 2008-04-01 → 2009-04-01

Expanding

Portfolio book, rebalanced hold · 22 names held · selection: anchor · cost drag 0.147% · 6 names dropped at load for want of prices (28 selected, 22 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 21 names held · selection: anchor · cost drag 0.125% · 10 names dropped at load for want of prices (31 selected, 21 held), weights renormalised onto the rest

Step 10 · 2009-04-01 → 2010-04-01

Expanding

Portfolio book, rebalanced hold · 19 names held · selection: anchor · cost drag 0.352% · 9 names dropped at load for want of prices (28 selected, 19 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 30 names held · selection: anchor · cost drag 0.344% · 9 names dropped at load for want of prices (39 selected, 30 held), weights renormalised onto the rest

Step 11 · 2010-04-01 → 2011-04-01

Expanding

Portfolio book, rebalanced hold · 10 names held · selection: anchor · cost drag 0.258% · 1 name dropped at load for want of prices (11 selected, 10 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 41 names held · selection: anchor · cost drag 0.257% · 19 names dropped at load for want of prices (60 selected, 41 held), weights renormalised onto the rest

Step 12 · 2011-04-01 → 2012-03-30

Expanding

Portfolio book, rebalanced hold · 22 names held · selection: anchor · cost drag 0.225% · 13 names dropped at load for want of prices (35 selected, 22 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 32 names held · selection: anchor · cost drag 0.206% · 6 names dropped at load for want of prices (38 selected, 32 held), weights renormalised onto the rest

Step 13 · 2012-04-02 → 2013-04-01

Expanding

Portfolio book, rebalanced hold · 37 names held · selection: anchor · cost drag 0.203% · 8 names dropped at load for want of prices (45 selected, 37 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 16 names held · selection: anchor · cost drag 0.239% · 6 names dropped at load for want of prices (22 selected, 16 held), weights renormalised onto the rest

Step 14 · 2013-04-01 → 2014-04-01

Expanding

Portfolio book, rebalanced hold · 26 names held · selection: anchor · cost drag 0.249% · 6 names dropped at load for want of prices (32 selected, 26 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 31 names held · selection: anchor · cost drag 0.283% · 6 names dropped at load for want of prices (37 selected, 31 held), weights renormalised onto the rest

Step 15 · 2014-04-01 → 2015-04-01

Expanding

Portfolio book, rebalanced hold · 27 names held · selection: anchor · cost drag 0.222% · 3 names dropped at load for want of prices (30 selected, 27 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 26 names held · selection: anchor · cost drag 0.221% · 6 names dropped at load for want of prices (32 selected, 26 held), weights renormalised onto the rest

Step 16 · 2015-04-01 → 2016-03-31

Expanding

Portfolio book, rebalanced hold · 25 names held · selection: anchor · cost drag 0.211% · 4 names dropped at load for want of prices (29 selected, 25 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 29 names held · selection: anchor · cost drag 0.208% · 5 names dropped at load for want of prices (34 selected, 29 held), weights renormalised onto the rest

Step 17 · 2016-04-01 → 2017-03-31

Expanding

Portfolio book, rebalanced hold · 25 names held · selection: anchor · cost drag 0.255% · 3 names dropped at load for want of prices (28 selected, 25 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 29 names held · selection: anchor · cost drag 0.268% · 3 names dropped at load for want of prices (32 selected, 29 held), weights renormalised onto the rest

Step 18 · 2017-04-03 → 2018-03-29

Expanding

Portfolio book, rebalanced hold · 19 names held · selection: anchor · cost drag 0.263%

Not expanding

Portfolio book, rebalanced hold · 34 names held · selection: anchor · cost drag 0.235% · 3 names dropped at load for want of prices (37 selected, 34 held), weights renormalised onto the rest

Step 19 · 2018-04-02 → 2019-04-01

Expanding

Portfolio book, rebalanced hold · 26 names held · selection: anchor · cost drag 0.243% · 1 name dropped at load for want of prices (27 selected, 26 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 28 names held · selection: anchor · cost drag 0.225% · 1 name dropped at load for want of prices (29 selected, 28 held), weights renormalised onto the rest

Step 20 · 2019-04-01 → 2020-03-31

Expanding

Portfolio book, rebalanced hold · 33 names held · selection: anchor · cost drag 0.194% · 1 name dropped at load for want of prices (34 selected, 33 held), weights renormalised onto the rest

Not expanding

Portfolio book, rebalanced hold · 29 names held · selection: anchor · cost drag 0.19%

Step 21 · 2020-04-01 → 2021-04-01

Expanding

Portfolio book, rebalanced hold · 32 names held · selection: anchor · cost drag 0.37%

Not expanding

Portfolio book, rebalanced hold · 32 names held · selection: anchor · cost drag 0.383%

Step 22 · 2021-04-01 → 2022-04-01

Expanding

Portfolio book, rebalanced hold · 19 names held · selection: anchor · cost drag 0.222%

Not expanding

Portfolio book, rebalanced hold · 49 names held · selection: anchor · cost drag 0.207%

Step 23 · 2022-04-01 → 2023-03-31

Expanding

Portfolio book, rebalanced hold · 32 names held · selection: anchor · cost drag 0.188%

Not expanding

Portfolio book, rebalanced hold · 37 names held · selection: anchor · cost drag 0.182%

Step 24 · 2023-04-03 → 2024-03-28

Expanding

Portfolio book, rebalanced hold · 33 names held · selection: anchor · cost drag 0.274%

Not expanding

Portfolio book, rebalanced hold · 33 names held · selection: anchor · cost drag 0.256% · 1 name dropped at load for want of prices (34 selected, 33 held), weights renormalised onto the rest

Step 25 · 2024-04-01 → 2025-04-01

Expanding

Portfolio book, rebalanced hold · 27 names held · selection: anchor · cost drag 0.191%

Not expanding

Portfolio book, rebalanced hold · 43 names held · selection: anchor · cost drag 0.214%

Step 26 · 2025-04-01 → 2026-04-01

Expanding

Portfolio book, rebalanced hold · 24 names held · selection: anchor · cost drag 0.254%

Not expanding

Portfolio book, rebalanced hold · 51 names held · selection: anchor · cost drag 0.304%

QuanterLab · Study b3d8f0b64d95 · compiled September 23, 2026. Point-in-time constituents and hypothesis-registration timestamps are enforced by the platform. This report is generated from the frozen study artifact and is reproducible from the ledger above. Educational research, not investment advice: every result on this page is simulated, and nothing here is a recommendation to buy or sell any security.

Run a study like this one

Everything above was produced inside QuanterLab, the registration, the walk, the statistics and the paper itself. Build the circuit on a canvas, register the hypothesis before you score it, and the platform enforces the rest.

The lab is in private beta and opens in September 2026. Reading the research needs no account, follow it and we'll tell you when the next study publishes.

As seen on Quantocracy

A note on AI. QuanterLab is a quantitative finance research platform, and every number in this study comes from a run on the platform. The hypothesis, the parameter choices, the validation design and the conclusions belong to the author. Runs execute on point-in-time data with walk-forward validation, and each study ships with its methodology and logs, so a reader can reconstruct the result instead of trusting it. I use AI to edit and structure the prose; it does not generate results, produce numbers, or decide what a study concludes.