Growth-Trend Timing with job growth
The job growth version of Jesse Livermore's Growth-Trend Timing: hold the S&P 500 unless payrolls per member of the labor force are lower than a year earlier and the index is below its 10-month average at the same time, and hold Treasury bills then.
Designed by Jesse Livermore (Philosophical Economics), 2016. Implemented and tracked by Tactfolio.
| May 2007 – Sep 2026 | Strategy | SPY |
|---|---|---|
| Annual return (CAGR) | 11.8% | 10.7% |
| Worst drawdown | -33.7% | -55.2% |
| Sharpe ratio | 0.78 | 0.62 |
| Volatility | 16.0% | 19.7% |
| Annual return since publication (Feb 2016) | 14.1% | 15.7% |
| Jan 1960 – Sep 2026 | Strategy | SPY |
|---|---|---|
| Annual return (CAGR) | 11.7% | 10.6% |
| Worst drawdown | -33.7% | -55.2% |
| Sharpe ratio | 0.85 | 0.70 |
| Volatility | 14.2% | 16.4% |
| Annual return since publication (Feb 2016) | 14.1% | 15.7% |
The job growth version of Growth-Trend Timing is a stock market timing rule from Jesse Livermore of the Philosophical Economics blog, published in January 2016. It holds the S&P 500 unless employment, measured against the size of the labor force, is lower than a year earlier and the market is below its 10-month average at the same time. Then it holds Treasury bills.
The idea#
Growth-Trend Timing obeys a trend-following rule only when the economy looks recessionary, because that is when trend-following has avoided the worst bear markets, and it ignores the rule otherwise to skip whipsaws.
Economists usually call employment a lagging indicator, but the author found that lagging indicators can work well for this purpose. To make it a more accurate recession signal, he divided payrolls by the size of the labor force, and treated a year-on-year fall as the warning.
How it works#
At the close of the last trading day of each month:
- Divide US nonfarm payrolls (FRED series PAYEMS) by the civilian labor force (CLF16OV), and compare the result with a year earlier.
- If it has not fallen, hold 100% S&P 500 (SPY).
- If it has fallen, hold SPY while it is above its 10-month average (a 210-day average here), and Treasury bills (BIL) while it is below.
Both figures come from the monthly jobs report, and each counts from the day it was first published, as first reported.
What the backtest shows#
The ETF-era test starts in mid-2007, when the Treasury bill fund begins. Since then it returned about 11.8% a year, against 10.7% for the S&P 500 and 8% for a 60/40 stock and bond mix, with a better risk-adjusted return than either. It lost 4% in 2008, when the S&P 500 lost 37%, and matched the market in most other years.
Its worst drawdown, 34%, was the COVID crash of February and March 2020, which came before the jobs figures could fall; it was recovered by August 2020.
Since publication at the start of 2016 it has returned about 14% a year.
With simulated fund history the test starts in 1960 and returns about 11.7% a year, against 10.6% for the S&P 500. It gained 4% in 1974, when stocks lost 26%, and lost 5% in 2002 against 22%. In 2001 it lost 11%, nearly as much as the market, because job growth held up until late in the year.
When it struggles#
- Late signals. Employment turns only once a recession is under way, so the start of a bear market can pass before the trend rule switches on.
- Sudden crashes. A crash as fast as 2020's is over before the monthly jobs figures change.
- Recoveries. Payrolls keep falling after the market has turned, and the strategy waits for the price trend, so it can miss part of a rebound.
Using it on Tactfolio#
The live strategy above divides payrolls by the labor force with first-release FRED data, as the source does. Copy it to try a different trend length, or compare it with the unemployment version, which reads the same jobs report through the unemployment rate.
Year by year
| Year | Strategy | SPY |
|---|---|---|
| 2026* | 3.3% | 14.0% |
| 2025 | 12.3% | 17.7% |
| 2024 | 24.9% | 24.9% |
| 2023 | 26.2% | 26.2% |
| 2022 | -18.2% | -18.2% |
| 2021 | 28.7% | 28.7% |
| 2020 | 18.3% | 18.3% |
| 2019 | 31.2% | 31.2% |
| 2018 | -4.6% | -4.6% |
| 2017 | 21.7% | 21.7% |
| 2016 | 12.0% | 12.0% |
| 2015 | 1.2% | 1.2% |
| 2014 | 13.5% | 13.5% |
| 2013 | 32.3% | 32.3% |
| 2012 | 16.0% | 16.0% |
| 2011 | 1.9% | 1.9% |
| 2010 | 8.9% | 15.1% |
| 2009 | 22.6% | 26.4% |
| 2008 | -4.3% | -36.8% |
| 2007* | -3.3% | -3.4% |
| Year | Strategy | SPY |
|---|---|---|
| 2026* | 3.3% | 14.0% |
| 2025 | 12.3% | 17.7% |
| 2024 | 24.9% | 24.9% |
| 2023 | 26.2% | 26.2% |
| 2022 | -18.2% | -18.2% |
| 2021 | 28.7% | 28.7% |
| 2020 | 18.3% | 18.3% |
| 2019 | 31.2% | 31.2% |
| 2018 | -4.6% | -4.6% |
| 2017 | 21.7% | 21.7% |
| 2016 | 12.0% | 12.0% |
| 2015 | 1.2% | 1.2% |
| 2014 | 13.5% | 13.5% |
| 2013 | 32.3% | 32.3% |
| 2012 | 16.0% | 16.0% |
| 2011 | 1.9% | 1.9% |
| 2010 | 8.9% | 15.1% |
| 2009 | 22.6% | 26.4% |
| 2008 | -4.3% | -36.8% |
| 2007 | 5.1% | 5.1% |
| 2006 | 15.8% | 15.8% |
| 2005 | 4.8% | 4.8% |
| 2004 | 10.7% | 10.7% |
| 2003 | 22.8% | 28.2% |
| 2002 | -4.8% | -21.6% |
| 2001 | -11.2% | -11.8% |
| 2000 | -9.7% | -9.7% |
| 1999 | 20.4% | 20.4% |
| 1998 | 28.7% | 28.7% |
| 1997 | 33.5% | 33.5% |
| 1996 | 22.5% | 22.5% |
| 1995 | 38.0% | 38.0% |
| 1994 | 0.8% | 0.4% |
| 1993 | 9.7% | 9.7% |
| 1992 | 7.6% | 7.6% |
| 1991 | 17.1% | 30.3% |
| 1990 | -3.2% | -3.2% |
| 1989 | 31.5% | 31.5% |
| 1988 | 16.4% | 16.4% |
| 1987 | 5.1% | 5.1% |
| 1986 | 18.6% | 18.6% |
| 1985 | 31.6% | 31.6% |
| 1984 | 6.2% | 6.2% |
| 1983 | 22.4% | 22.4% |
| 1982 | 29.3% | 21.6% |
| 1981 | -5.0% | -4.9% |
| 1980 | 32.4% | 32.4% |
| 1979 | 18.3% | 18.3% |
| 1978 | 6.5% | 6.5% |
| 1977 | -7.2% | -7.2% |
| 1976 | 23.8% | 23.8% |
| 1975 | 37.1% | 37.1% |
| 1974 | 3.7% | -26.5% |
| 1973 | -14.7% | -14.7% |
| 1972 | 18.9% | 18.9% |
| 1971 | 5.3% | 14.1% |
| 1970 | 15.7% | 3.9% |
| 1969 | -6.6% | -8.4% |
| 1968 | 10.9% | 10.9% |
| 1967 | 23.8% | 23.8% |
| 1966 | -10.1% | -10.1% |
| 1965 | 12.4% | 12.4% |
| 1964 | 16.4% | 16.4% |
| 1963 | 22.7% | 22.7% |
| 1962 | -8.8% | -8.8% |
| 1961 | 26.8% | 26.8% |
| 1960* | 0.5% | 0.4% |
* Partial year.
The rules as implemented
This is the exact tree Tactfolio runs, rebalanced monthly with signals and trades at the close. Open it to inspect or copy it.
- StrategyGrowth-Trend Timing (job growth)
- WeightEqual
- IfAll of 2 conditions
- 12-month growth of US nonfarm payrolls per US civilian labor force is below 0
- current price of SPY is below 210d moving average of SPY
Then- WeightEqual
- TickerBIL
Otherwise- WeightEqual
- TickerSPY
- IfAll of 2 conditions
- WeightEqual
Sources and caveats
- Job growth is nonfarm payrolls (FRED PAYEMS) divided by the civilian labor force (CLF16OV), compared with a year earlier, as in the source's FRED chart; a fall turns the trend rule on.
- The source compares the month-end close with its 10-month average; this version uses the daily 210-session average, the closest daily equivalent.
- Each economic figure counts only from the day it was first published, and as first reported: at a month end the latest figure is the previous month's, the one-month lag the source describes.
- SPY and BIL stand in for the source's S&P 500 total return index and 3-month Treasury bills.
- Signals and trades use the close of the last trading day of each month, as in the source.
Common questions#
What is the job growth version of Growth-Trend Timing?#
It is a variant of the Philosophical Economics timing rule that treats a year-on-year fall in employment relative to the labor force as its recession signal, and leaves the S&P 500 only when the market is also below its 10-month average.
Why divide payrolls by the labor force?#
The number of jobs grows with the population. Dividing by the labor force measures whether employment is keeping up with it, which the author found a more accurate recession signal.
How is it different from the unemployment version?#
Both come from the monthly jobs report. This one follows payroll growth relative to the labor force, while the unemployment version compares the unemployment rate with its 12-month average.
Does it still work?#
Since publication in 2016 it has returned about 14% a year. The live record on Tactfolio shows how it is doing now.