Important: BestFolio provides information for educational purposes only. Nothing on this site constitutes investment advice. Past performance does not guarantee future results. Read full disclaimer

Research

Research Methodology

BestFolio aggregates published tactical and fixed asset allocation strategies and backtests them under a single, transparent framework. This page is the technical reference for everything you see on a strategy page: which strategies we accept into the catalog, how their backtests are constructed, how transaction costs and regime stress are modeled, how we validate robustness, and how we decide when not to endorse a strategy.

1. Inclusion Criteria

Not every strategy we encounter makes it into the catalog. Before a strategy is implemented, it has to clear four gates. Strategies that fail at any gate are either set aside or, if we implement them anyway for comparison, published in our rejection log with candid reasoning.

  1. Published, documented rules. The strategy must come from an academic paper, a book, a practitioner whitepaper, or a well-documented public post. We do not implement “secret” or proprietary strategies we cannot reproduce from public information.
  2. Mechanical, unambiguous signal definition. The rules must be specified tightly enough that two independent implementers would produce the same signal on the same data. Strategies requiring discretionary judgment or human interpretation are rejected.
  3. Implementable with publicly tradable instruments. Every ticker used must be investable by a retail account — ETFs, mutual funds, or index funds. Strategies that rely on institutional-only instruments, OTC derivatives, or unlisted alternatives are excluded.
  4. Minimum 10-year backtest window. Either the underlying ETFs have enough history, or our documented proxy chain can extend the series to a statistically meaningful window. Strategies that cannot be validated over at least one full business cycle are not admitted.

Note on editorial control. Passing the inclusion gates does not equal endorsement. Several strategies in the catalog — including the Kelly Signal family — are flagged as educational-only and documented in our rejection log with the reasons we do not recommend running them with real capital.

2. Data Sources

  • Price data: Sourced from an institutional-grade market data provider, using adjusted close prices that account for stock splits and dividend distributions.
  • Total return: All returns assume dividends are reinvested at the time of distribution.
  • Macro data: Select strategies use FRED series (unemployment, CPI, yield curves) as signal inputs. All FRED pulls are release-date-aware to prevent look-ahead on revised series.
  • Frequency: Daily prices are fetched and resampled to monthly frequency for signal computation. Daily granularity is retained for drawdown and NAV calculations.
  • Refresh cycle: Price data is refreshed daily. Signals are recomputed at the end of each month.

3. Backtest Mechanics

  • Rebalancing: Monthly, on the last trading day of each calendar month (unless the strategy’s original rule specifies a different frequency, in which case we preserve it).
  • Signal timing: Signals are computed using end-of-month closing prices. The resulting allocation is applied to the following month. A signal dated Feb 28 uses complete February data and determines what you hold during March.
  • No look-ahead bias: Signals use only data that was available at the time of computation. FRED revisions are treated as vintage-aware where applicable. No future data leaks into past decisions.
  • Starting NAV: Normalized to $100 at the beginning of each backtest.

4. Transaction Costs & Stress-Adjusted Slippage

All backtests include realistic transaction cost modeling. Costs are not set to zero — they are deducted from portfolio returns at every rebalance.

  • Base cost: 10 basis points (0.10%) per one-way trade, applied proportionally to portfolio turnover at each rebalance. A full 100% portfolio rotation incurs 0.10% in costs; a partial 30% rotation incurs 0.03%.
  • Stress-adjusted slippage: During periods of elevated volatility, spreads widen and execution quality degrades. Our engine dynamically scales transaction costs by up to 3× the base rate when recent 20-day realized volatility exceeds the baseline (~16% annualized). Backtests already account for the higher friction you would experience during market stress (e.g., March 2020, Q4 2018).
  • Turnover tracking: Every backtest reports total transaction costs, annual turnover, and average trades per year in the Summary Statistics panel. Friction impact is directly auditable.
  • Taxes: backtests are gross of tax. Every metric we publish (CAGR, Sharpe, Sortino, MaxDD, Calmar, turnover, etc.) is pre-tax. All 100+ strategies use the same gross-return engine, so cross-strategy comparisons are apples-to-apples regardless of when each was added. Jurisdictional after-tax estimates live in the US Tax Impact panel on each strategy detail page (US federal rates, holding-period aware), and in the TBSZ analysis for Hungarian users. Other jurisdictions are on the roadmap.
  • What is not included: Margin costs, fund expense ratios (already reflected in ETF NAV), and behavioural factors (delayed rebalancing, panic selling) are not modeled. These vary by investor and brokerage.

5. Survivorship & Selection Bias

  • Faithful implementation. We implement each strategy as described by its original author(s). No proprietary optimization or curve-fitting is applied on top of published rules.
  • Selection transparency. The catalog contains well-known, publicly documented strategies. This is a form of selection bias — we are showing strategies that gained attention, which may correlate with strong historical performance. We try to offset it by publishing the rejection log, which documents strategies we implemented but do not endorse.
  • Ticker survivorship. Our proxy fallback chain (Section 6) uses mutual funds and index series that predate modern ETFs. The fund chain is visible in the Price Build Log on every strategy page.

6. Synthetic / Proxy Data (Fallback Chain)

Many ETFs have limited history. To produce longer backtests, we use proxy data for periods before an ETF existed:

  • Fallback chain: Each ticker has a documented hierarchy of proxies. When the primary ETF has no data for a given date, the engine walks down the chain until it finds a valid source. Price continuity is maintained by scaling at each join point.
  • Transparency: The full fallback chain for every ticker in a strategy is visible on the strategy detail page under the “Price Build Log” section.

Key substitution chains (100+ tickers covered):

  • S&P 500: SPY (1993) → VFINX (1980)
  • Nasdaq 100: QQQ (1999) → ^NDX index (1985)
  • US Small Cap: IJR (2000) → NAESX (1990); IWM (2000) → ^RUT index (1987)
  • US Mid Cap: IJH (2000) → VIMSX (1998) → ^MID index (1981)
  • US REITs: VNQ (2004) → VGSIX (1996) → FRESX (1986)
  • Int'l Developed: EFA (2001) → VGTSX (1996) → PRTIX (1989)
  • Emerging Markets: EEM (2003) → VEIEX (1994) → FEMKX (1990)
  • Long Treasuries: TLT (2002) → VUSTX (1986)
  • Intermediate Treasuries: IEF (2002) → VFITX (1991)
  • Short Treasuries: SHY (2002) → VFISX (1991)
  • T-Bills: BIL (2007) → ^IRX yield (1970)
  • TIPS: TIP (2003) → VIPSX (2000) → PRTNX (1997) → VFITX (1991)
  • Gold: GLD (2004) → GC=F futures (2000) → London fixing (1968)
  • Commodities: DBC (2006) → PCRIX (2002) → ^SPGSCI (1990)
  • Aggregate Bonds: AGG (2003) → VBMFX (1986)
  • High Yield: HYG (2007) → VWEHX (1980)
  • Managed Futures: KMLM (2020) → RYMFX (2007) → AQR TSMOM (1985)
  • Leveraged ETFs: Synthetic daily-leveraged returns from underlying, with expense ratio and borrowing cost deductions

7. Walk-Forward Validation

  • Availability: Offered for strategies whose rules include tunable parameters.
  • Method: A rolling-window approach — train on N months of history, test on the next M months, then slide the window forward and repeat.
  • Purpose: Prevents overfitting to in-sample data by validating that a strategy’s edge persists out-of-sample.
  • Identification: Strategies with walk-forward validation results are marked accordingly on their detail pages.

8. Walk-Forward Portfolio Optimization

Beyond validating a single strategy, BestFolio offers walk-forward optimization for multi-strategy portfolios. Given a basket of strategy variants, the engine rolls a historical window forward and re-optimizes the sleeve weights at each rebalance date using only data available at that point in time. The resulting track record is genuinely out-of-sample — the weights held in any given month were never fit on that month’s returns.

Available criteria. Seven objective functions can drive the optimization. Two of them implement classical Markowitz mean-variance optimization (Markowitz, 1952, Portfolio Selection) using mean and covariance estimates from the rolling window. The remaining criteria reflect alternative or post-modern frameworks that address known limitations of the mean-variance approach.

  • Max Sharpe Ratio — The tangency portfolio on the Markowitz efficient frontier. Maximizes the ratio of expected excess return to portfolio volatility.
  • Min Variance — The Global Minimum Variance (GMV) portfolio on the Markowitz efficient frontier. Minimizes portfolio variance without regard to expected return.
  • Max CAGR — Directly maximizes realized compound annual growth rate over the lookback window. Closer in spirit to growth-optimal / Kelly sizing than to mean-variance.
  • Min Max-Drawdown — Minimizes the worst peak-to-trough decline over the window. A path-dependent objective, distinct from variance-based risk.
  • Max Sortino Ratio — Substitutes downside deviation for total volatility. A post-modern portfolio theory (PMPT) variant that does not penalize upside volatility.
  • Risk Parity — Inverse-volatility weighting (equal risk contribution). Developed explicitly as an alternative to mean-variance optimization, which is known to be sensitive to estimation error in expected returns.
  • Equal Weight — A 1/N baseline. Often surprisingly competitive with optimization in out-of-sample studies (DeMiguel, Garlappi & Uppal, 2009).

Constraints & solver. All optimization is long-only with a user-configurable maximum weight per sleeve (default 40%) and weights summing to 100%. The problem is solved via sequential least-squares programming (SLSQP) at each rebalance date.

9. Parameter Sensitivity

Any strategy with tunable parameters (lookback windows, thresholds, top-N selection) is at risk of being fragile: a tiny change to a parameter can flip a great backtest into a disaster. We address this at two levels.

  • Defaults match the source. The default parameters published on each strategy page match the original author’s specification. We do not re-tune the defaults to make the headline numbers look better.
  • Walk-forward re-estimation. For strategies where the source paper authorizes parameter optimization, our walk-forward engine re-estimates the parameters on the trailing window at each rebalance date — no parameter is ever fit on data that includes the test period.
  • Sensitivity surfaces (roadmap). We are building a UI to display the full parameter sensitivity surface (e.g., CAGR and max drawdown as a function of lookback window in months) so readers can see how rigid or fragile a strategy’s published parameters are before committing capital. Until this ships, the monthly notes and walk-forward pages provide the same evidence in tabular form.

10. Regime Analysis

Aggregate metrics (CAGR, Sharpe, max drawdown over the full backtest) hide an important question: when did the strategy do well or badly? A tactical strategy that shines only in the 2009–2021 QE regime is not the same animal as one that held up in stagflation, the dot-com bust, and 2022 simultaneously.

  • Full-period display. Every strategy page shows the equity curve and drawdown curve across the full available history, not a cherry-picked window. The backtest-period line on each page tells you exactly which years are in the sample.
  • Stress windows. The Summary Statistics panel reports performance during well-known stress regimes (2000–2002 dot-com, 2007–2009 GFC, Q4 2018, Q1 2020 COVID, 2022 dual drawdown) where the data supports it. Strategies that survived only one of those regimes are clearly visible.
  • Regime-split metrics (roadmap). Our research pipeline includes a planned regime-tagging layer (growth/recession, expansion/contraction, high-vol/low-vol, rising/falling rates) to split every backtest into sub-period metrics. This is on the roadmap; ETA in a monthly release note.

11. Metrics Computation

All metrics are computed from the monthly NAV series unless otherwise noted.

MetricDefinition
CAGRCompound Annual Growth Rate. Annualized geometric return derived from the full NAV series.
Sharpe Ratio(Mean monthly excess return × √12) / (Std of monthly returns × √12). Risk-adjusted return per unit of total volatility.
Sortino RatioSame as Sharpe but substitutes downside deviation (volatility of negative returns only) for standard deviation. Penalizes downside risk without penalizing upside volatility.
Max DrawdownLargest peak-to-trough decline in NAV over the full backtest period. Expressed as a percentage.
Calmar RatioCAGR divided by the absolute value of max drawdown. A path-dependent risk-adjusted measure.
SWRSafe Withdrawal Rate. The maximum constant, inflation-adjusted annual withdrawal rate that survives every rolling 30-year window in the backtest.
PWRPerpetual Withdrawal Rate. The maximum withdrawal rate that preserves real (inflation-adjusted) capital over every rolling 30-year window.
UPIUlcer Performance Index. CAGR divided by the Ulcer Index (drawdown depth and duration). Higher values indicate better risk-adjusted performance with emphasis on drawdown pain.

12. Strategy Variants: SmartStack & SmartLeverage

Many strategies on BestFolio expose more than one tab in the variant selector (Standard, Leveraged 2x, SmartStack, SmartLeverage, and so on). These overlays keep the strategy’s underlying signal logic unchanged and modify only the execution step, i.e. which tickers and weights the base allocation is translated into. Two of those overlays are proprietary: SmartStackand SmartLeverage.

SmartStack (return-stacking overlay)

SmartStack layers a gold + managed-futures diversifier on topof the base allocation rather than funding it by selling equities. The engine walks each position in the base strategy’s signal output and applies a priority ladder:

  1. Prefer a return-stacked ETF if one exists for the position (for example, LQD can be replaced by RSBT, which embeds bonds plus managed futures in a single instrument).
  2. Otherwise, substitute a 3x leveraged ETF at 1/3 weight (SPY to UPRO, QQQ to TQQQ, TLT to TMF). This preserves full economic exposure to the original asset while freeing 2/3 of capital.
  3. If no 3x product is available, substitute a 2x ETF at 1/2 weight (VNQ to URE, VEA to EFO). This frees 1/2 of capital.
  4. For assets without a suitable leveraged product (DBC, AGG, BND), keep the full weight and layer a managed-futures sleeve alongside.
  5. Cash-like positions (BIL, SHV, SGOV) pass through unchanged.

Capital freed by the ladder is split 50/50 into GLD (gold) and KMLM (managed futures). A final normalization step caps total notional exposure at 100% if the ladder over-allocates. The result: the investor keeps full exposure to the base strategy and adds a diversifying return stream, all inside a standard brokerage or UCITS account with no margin and no futures.

Why we built it. Classic diversification funds gold or managed futures by cutting equities, which in a strong equity decade turns diversification into a drag. Institutional investors solve this with futures-based portable alpha. SmartStack reproduces the effect using only retail-accessible leveraged and return-stacked ETFs.

SmartLeverage (fractional leverage overlay)

SmartLeverage is a leverage dial from 1.0x to 3.0x that amplifies the base strategy’s total exposure while keeping total notional at 100%. It does not naively swap every ticker for its leveraged equivalent. Instead, the engine uses a two-pass greedy algorithm:

  1. Pass 1 (prefer 2x): upgrade positions from 1x to 2x ETFs first. 2x products have less volatility decay and lower expense ratios than 3x, so they are the preferred lever.
  2. Pass 2 (escalate to 3x): if 2x cannot absorb enough notional to reach the target leverage, selectively upgrade positions from 2x to 3x. A maximum-leverage calculator determines the theoretical ceiling for any given allocation.
  3. Cash buffer: any capital not absorbed by leveraged positions is parked in a cash-like ETF (default BIL). Cash-like positions in the base allocation pass through unchanged.

Example: a 1.2x leverage on a 50/50 SPY/IEF portfolio produces roughly SSO 30%, IEF 60%, BIL 10% — 1.2x exposure with only 90% capital deployed and the remainder in cash.

Difference at a glance

  • SmartStack changes what you hold: it adds a gold + managed-futures overlay on top of the base allocation.
  • SmartLeverage changes how much you hold: it amplifies the base allocation’s total exposure without changing its asset mix.
  • Both are execution-layer transforms. The underlying signal, rebalancing cadence, and research logic of the base strategy are untouched.
  • Both are opt-in. Toggling between Standard and a Smart* variant on a strategy page simply swaps the execution overlay and re-runs the backtest. The Asset Universe panel updates to show the actual tickers the variant trades.

13. Research Pipeline & Changelog

BestFolio is a living research platform. New strategies are added on a rolling basis — the current cadence target is roughly five new strategies per month — and existing implementations are revisited whenever a source paper is updated or a bug is reported.

Current catalog: 52 strategies, 36 tactical + 16 fixed, 6 free forever.

Recently added. Latest additions to the catalog (most recent first):

AddedStrategyAuthor
2026-04-11Dynamic Macro Allocation (Sadek)Bill Sadek
2026-04-11Alpha-One MomentumBill Sadek
2026-04-01Composite MomentumBestFolio Research
2026-04-01Growth-Inflation Sector TimingInspired by David Varadi (CSS Analytics)
2026-03-27Golden RatioBogleheads Community

See the full strategy catalog for the complete list, filters, and sort order.

14. Rejection Log

Any research platform that only publishes strategies it likes is cherry-picking. We maintain a public rejection log documenting strategies we implemented honestly, backtested under this same framework, and then decided we could not recommend with real money. Each entry includes the strategy rules, our backtest metrics, the specific failure modes, and our verdict.

Read the rejection log →

15. Limitations & Disclaimers

  • Hypothetical results: All backtested performance is hypothetical. It does not represent actual trading and was not achieved with real capital.
  • No guarantee: Past performance — backtested or live — does not guarantee future results.
  • Remaining frictions: While transaction costs and stress-adjusted slippage are modeled (Section 4), taxes, margin costs, fund expense ratios, and behavioural factors (panic selling, delayed rebalancing) are not captured.
  • Execution assumption: Monthly rebalancing assumes execution at the closing price on the last trading day. Intraday or next-day execution will produce different results.
  • No universal winner: No strategy is guaranteed to outperform a simple buy-and-hold approach in all market environments. Tactical allocation involves active decisions that can underperform passive benchmarks for extended periods.

Questions about our methodology? Check the FAQ or reach out at [email protected].

See the methodology in action

Explore 52+ strategies with full backtest results, drawdown charts, and signal history. 6 are free forever.

Disclaimer: BestFolio is an informational tool only and does not provide investment advice, recommendations, or solicitations to buy or sell securities. All strategy signals, backtests, and performance metrics are provided for educational and research purposes. Past performance is not indicative of future results. You are solely responsible for your own investment decisions. BestFolio is not a registered investment advisor, broker-dealer, or financial planner. Always consult a qualified financial professional before making investment decisions.

© 2026 BestFolio · About · Methodology · Changelog · Terms · Privacy · · Contact Us