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.
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
- Method
- The Screen
- Simple Screen
- Advanced Screen
- Results
- When It Works
- When It Fails
- The 2008 Result
- Annual Returns
- Limitations
- Global Context
- 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 |

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

| 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).