FCF Growth in Canada: The Only Market With Alpha AND Negative Down Capture

Canada is the only market in our 13-exchange FCF growth study where the strategy produces both positive alpha (+0.54% excess CAGR) and negative down capture (-15.44%) simultaneously. When SPY had a down year, this portfolio averaged a small gain.

Growth of $10,000 invested in FCF Growth Canada strategy vs S&P 500 from 2000 to 2025.

The FCF growth screen in Canada produced 8.53% annualized returns from 2000 to 2025, beating the TSX Composite by 4.58 percentage points per year. $10,000 grew to $77,374 CAD. The portfolio captured only 26.6% of the TSX Composite's downside in down years while capturing 130% of the upside.

Contents

  1. Method
  2. The Screen
  3. Simple Screen
  4. Advanced Screen
  5. Results
  6. When It Works
  7. When It Fails
  8. The 2008 Result
  9. Annual Returns
  10. Limitations
  11. Global Context
  12. Run It Yourself

Data: FMP financial data warehouse (TSX), 2000–2025. Returns in CAD. Updated March 2026.


Method

The strategy screens for TSX-listed stocks with accelerating free cash flow. FCF must grow by more than 15% year-over-year, and operating cash flow must also grow. That second condition prevents false positives where a company cuts capex to inflate FCF without growing the underlying business.

Quality filters keep the portfolio in profitable, moderately leveraged companies: ROE above 10% and debt-to-equity below 1.5. The top 30 stocks by FCF growth rate get equal-weighted and held for a year.

Parameter Setting
Universe TSX (Toronto Stock Exchange)
Market cap >C$750M
Signal FCF growth YoY >15%, OCF growth YoY >0%
Quality ROE >10%, D/E <1.5
Selection Top 30 by FCF growth, equal weight
Cash rule Hold cash if <10 qualify
Rebalancing Annual (July), 45-day data lag
Execution MOC (next-day close after rebalance signal)
Costs Size-tiered transaction costs
Benchmark TSX Composite Total Return (^GSPTSE)
Period 2000–2025 (25 periods)
Currency CAD (both portfolio and benchmark)
Code github.com/ceta-research/backtests

The 45-day lag ensures that annual filings are publicly available before they enter the screen. A fiscal year-end in May doesn't enter the July rebalance until statements are filed. Entry and exit prices use the next trading day's close (MOC execution).

The market cap threshold of C$750M filters out small-caps where liquidity becomes a constraint for most portfolios. The TSX has fewer listed companies than US exchanges, so a lower threshold than the US $500M makes sense.

The academic grounding comes from Sloan (1996), who showed that cash-backed earnings outperform accrual-heavy earnings. Companies that report cash generation tend to continue generating cash. This screen isolates companies where cash generation is accelerating.


The Screen

Simple Screen

Ranks TSX-listed stocks by year-over-year FCF growth with a 15% minimum threshold and C$750M market cap floor. Run it: cetaresearch.com/data-explorer?q=yvsqNYPa1I

SELECT cc.symbol,
    ROUND((cc.fcf - cp.fcf_prior) / ABS(cp.fcf_prior) * 100, 1) AS fcf_growth_pct,
    ROUND(cc.fcf / 1000000, 1) AS fcf_m,
    ROUND(k.marketCap / 1000000000, 2) AS mktcap_bn
FROM (
    SELECT symbol, freeCashFlow AS fcf,
        ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY dateEpoch DESC) AS rn
    FROM cash_flow_statement WHERE period = 'FY' AND freeCashFlow > 0
) cc
JOIN (
    SELECT symbol, freeCashFlow AS fcf_prior,
        ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY dateEpoch DESC) AS rn
    FROM cash_flow_statement WHERE period = 'FY' AND freeCashFlow > 0
) cp ON cc.symbol = cp.symbol AND cp.rn = 2
JOIN key_metrics_ttm k ON cc.symbol = k.symbol
JOIN profile p ON cc.symbol = p.symbol
WHERE cc.rn = 1 AND cp.fcf_prior > 0
  AND (cc.fcf - cp.fcf_prior) / ABS(cp.fcf_prior) > 0.15
  AND k.marketCap > 750000000
  AND p.exchange = 'TSX'
ORDER BY fcf_growth_pct DESC
LIMIT 30

Advanced Screen

Adds the capex-cut guard (OCF must also grow), ROE quality filter, and leverage check. cetaresearch.com/data-explorer?q=qKGaQ_B3uW

WITH cf_current AS (
    SELECT symbol, freeCashFlow AS fcf, operatingCashFlow AS ocf,
        ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY dateEpoch DESC) AS rn
    FROM cash_flow_statement WHERE period = 'FY' AND freeCashFlow > 0
),
cf_prior AS (
    SELECT symbol, freeCashFlow AS fcf_prior, operatingCashFlow AS ocf_prior,
        ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY dateEpoch DESC) AS rn
    FROM cash_flow_statement WHERE period = 'FY' AND freeCashFlow > 0
)
SELECT cc.symbol,
    ROUND((cc.fcf - cp.fcf_prior) / ABS(cp.fcf_prior) * 100, 1) AS fcf_growth_pct,
    ROUND((cc.ocf - cp.ocf_prior) / ABS(cp.ocf_prior) * 100, 1) AS ocf_growth_pct,
    ROUND(k.returnOnEquityTTM * 100, 1) AS roe_pct,
    ROUND(f.debtToEquityRatioTTM, 2) AS debt_equity,
    ROUND(k.marketCap / 1000000000, 2) AS mktcap_bn
FROM cf_current cc
JOIN cf_prior cp ON cc.symbol = cp.symbol AND cp.rn = 2
JOIN key_metrics_ttm k ON cc.symbol = k.symbol
JOIN financial_ratios_ttm f ON cc.symbol = f.symbol
JOIN profile p ON cc.symbol = p.symbol
WHERE cc.rn = 1 AND cp.fcf_prior > 0
  AND (cc.fcf - cp.fcf_prior) / ABS(cp.fcf_prior) > 0.15
  AND (cc.ocf - cp.ocf_prior) / ABS(cp.ocf_prior) > 0.0
  AND k.returnOnEquityTTM > 0.10
  AND f.debtToEquityRatioTTM < 1.5
  AND k.marketCap > 750000000
  AND p.exchange = 'TSX'
ORDER BY fcf_growth_pct DESC
LIMIT 30

Results

Metric FCF Growth TSX Composite
CAGR 8.53% 3.95%
Total Return 673.74% 162.89%
Max Drawdown -28.57%
Volatility 21.59%
Sharpe 0.320
Sortino 0.603
Beta 1.00
Up Capture 129.95%
Down Capture 26.56%
Win Rate vs TSX 68% (17/25 years)
$10,000 grew to $77,374 $26,289

Cumulative Growth
Cumulative Growth

The portfolio returned 8.53% annually over 25 years. The TSX Composite returned 3.95%. $10,000 grew to C$77,374 in the portfolio versus C$26,289 in the TSX Composite. That's a +4.58% annualized excess return.

The down capture ratio is 26.6%, meaning the portfolio absorbed only about a quarter of the TSX Composite's downside in down years. When the index fell 10%, the portfolio fell roughly 2.7%. The max drawdown of -28.57% shows the portfolio avoided the worst of market stress periods.

The up capture of 129.95% is notable: the portfolio captured 30% more upside than the index in rising years. Combined with the low down capture, this asymmetry drives the strong Sortino ratio (0.603).

The win rate is 68% (17 out of 25 years). The portfolio beat the TSX Composite in more than two-thirds of years.


When It Works

The FCF growth screen in Canada works best during market transitions and recovery periods when cash quality matters more than thematic plays.

2000-2001 were showcase years: +33.3% and +20.5% portfolio returns when the TSX Composite fell -24.1% and -9.3%. Excess returns of +57.5% and +29.9% in consecutive years. The dot-com bust destroyed speculative tech names. Cash-generating companies in resource and industrial sectors held up.

2009 (+29.4% portfolio vs +9.3% TSX, +20.1% excess) was another recovery year. After the 2008 financial crisis, the Canadian market rebounded, but companies with strong cash generation re-rated faster.

2004 (+12.7% excess), 2006 (+8.3% excess), 2010 (+10.8% excess), 2016 (+13.6% excess), and 2022 (+10.4% excess) show consistent outperformance in years when the broader market rose but investors rewarded quality.

The pattern: the screen works during stress, early recoveries, and quality rotations. It captures companies that can back up their earnings with actual cash.


When It Fails

The strategy has a clear failure mode: late-cycle momentum regimes and thematic resource booms when investors chase growth regardless of cash quality.

2019 was the worst year: -18.7% portfolio return when the TSX Composite fell -5.2%, a -13.5% excess loss. The portfolio failed to avoid downside and fell harder than the index. This was a year when the TSX itself was weak, and the FCF growth portfolio held names that underperformed even within a down market.

2021 (-22.6% excess) came during the post-pandemic recovery when speculative growth names dominated. The TSX fell -5.9% and the portfolio fell -28.6%. Cash-generating companies were not where the momentum was.

2012 (-6.2% excess), 2011 (-6.1% excess), and 2018 (-8.8% excess) were smaller but consistent underperformance years. In each case, either commodity themes (oil, metals) or rate-sensitive sectors drove returns, and the FCF growth filter didn't align with those themes.

2005 (-8.7% excess) and 2024 (-10.2% excess) stand out because the TSX Composite had strong absolute returns (+18.0% and +22.4%) and the portfolio trailed badly. These were years when the index was driven by sector strength that the FCF screen missed.


The 2008 Result

2008 is worth isolating because it's the only major crisis year in the data set.

The portfolio lost -20.0% while the TSX Composite lost -27.0%. That's a +7.0% excess return, which shows the defensive quality working. The portfolio fell less than the market, consistent with the 26.6% down capture average.

But the absolute loss was still -20.0%. The FCF growth screen provided relative protection, not absolute protection. In a credit crisis, correlations spike and quality screens cushion but don't eliminate losses.

The 2008 result supports the down capture story. It's not a perfect hedge, but it's evidence that cash-generating companies in Canada absorbed less of the crisis than the broader market.


Annual Returns

Annual Returns
Annual Returns

Year Portfolio TSX Composite Excess
2000 +33.3% -24.1% +57.5%
2001 +20.5% -9.3% +29.9%
2002 -3.3% -0.3% -3.0%
2003 +26.7% +21.4% +5.3%
2004 +29.9% +17.1% +12.7%
2005 +9.3% +18.0% -8.7%
2006 +28.1% +19.9% +8.3%
2007 +9.3% -0.2% +9.5%
2008 -20.0% -27.0% +7.0%
2009 +29.4% +9.3% +20.1%
2010 +30.4% +19.6% +10.8%
2011 -17.5% -11.5% -6.1%
2012 -3.4% +2.8% -6.2%
2013 +30.0% +24.9% +5.2%
2014 -0.4% -3.8% +3.3%
2015 +1.5% -2.6% +4.1%
2016 +19.8% +6.1% +13.6%
2017 +10.3% +7.5% +2.8%
2018 -7.5% +1.3% -8.8%
2019 -18.7% -5.2% -13.5%
2020 +36.9% +29.5% +7.4%
2021 -28.6% -5.9% -22.6%
2022 +16.6% +6.2% +10.4%
2023 +10.1% +8.7% +1.4%
2024 +12.2% +22.4% -10.2%

The portfolio beat the TSX Composite in 17 of 25 years. The outperforming years include the largest absolute returns (2000, 2001, 2009, 2010, 2020). The underperforming years were mostly years when the TSX was weak or driven by thematic plays the FCF screen missed.


Limitations

Backward-looking signal. FCF growth from the prior fiscal year doesn't predict next year's FCF growth. A company that grew cash last year may face margin compression, capex needs, or commodity price changes this year. The screen captures historical quality, not future quality.

Commodity exposure. Canada's equity market is heavily weighted toward resources (energy, materials). The FCF growth screen will naturally tilt toward or away from these sectors depending on where cash generation is accelerating. Without sector-neutral analysis, it's unclear how much of the excess return comes from the FCF signal versus sector tilts.

Currency risk. All returns are in CAD. For USD-based investors, CAD/USD fluctuations would affect realized returns. Over 25 years, CAD has been volatile against USD.

Transaction costs. The backtest uses size-tiered cost estimates. Real-world costs depend on position sizing, liquidity, and execution. For smaller portfolios, per-share commission structures change the math.

Point-in-time data. All rebalances use data available 45 days after fiscal year-end to prevent lookahead bias. Live implementation requires access to a verified point-in-time financial data feed.

Market cap threshold. C$750M is mid-cap territory in Canada. Some qualifying stocks may have liquidity constraints for larger portfolios.


Global Context

This analysis covers TSX-listed stocks only. The FCF growth signal behaves differently across markets. Canada's results (8.53% CAGR, +4.58% excess vs TSX Composite) significantly outperform both the US version (6.29% CAGR, -1.56% excess vs SPY) and the global average. A full global comparison is covered in the companion blog on international FCF growth results.


Run It Yourself

Both screens query the Ceta Research FMP warehouse directly.

Today's FCF growth leaders (simple): cetaresearch.com/data-explorer?q=yvsqNYPa1I

With quality filters (advanced): cetaresearch.com/data-explorer?q=qKGaQ_B3uW

The full backtest code, including methodology, annual rebalance logic, and cost model, is on GitHub: github.com/ceta-research/backtests


Data: Ceta Research (FMP warehouse), TTM metrics. Backtest period: 2000–2025. Returns in CAD. Execution: MOC (next-day close).