hedgeyourown

methodology · nothing hidden

How the numbers are made

Last updated: 2026-10-15 — full change history below in the changelog.

In short
  • Every track record is a simulated backtest — not a live trading result.
  • Universes are point-in-time: Nasdaq-100 + WIG20, no survivorship.
  • Prices are total-return (dividends reinvested).
  • Transaction costs: US 5 / EU 10 / GPW 20 bps, charged on every rebalance.
  • Cash rate: 3%/yr; the track record is pinned to 2026-09-30.

Every track record on this site is a simulated backtest — the strategy's fixed rules re-run on real historical data. Here's exactly how, including the limitations. A track record is a legal artifact for us: overstating it would be fraud, so we'd rather under-promise and show our work.

📈 Real, total-return prices

Adjusted close (dividends reinvested) from a licensed feed (EODHD) with Warsaw + US + EU coverage, and a keyless fallback (Yahoo). Using price-only data would understate dividend payers — we don't.

🕰️ Point-in-time universe

The backtest sees each index as it actually was on each date (Nasdaq-100, WIG20 with dated add/drop history) — no "we knew the winners in advance" survivorship. On the licensed feed, names that later delisted are still priced and included, closing the survivorship gap on the price side.

💸 Realistic, per-market costs

Turnover is charged on every monthly rebalance at the conservative end of a typical half-spread + fees — see the table. Market impact and FX aren't modelled (negligible at retail size).

🔁 Monthly rebalance, weights drift

Positions are set monthly and left to drift with prices in between (position-value method) — exactly what a subscriber following the update would experience.

Transaction costs, per market

MarketCost per rebalance turnoverWhy
US (NYSE / Nasdaq)5 bpsDeepest liquidity, tightest spreads
EU (XETRA / Euronext)10 bpsSlightly wider spreads / fees
Poland (GPW)20 bpsThinner books; costed conservatively

Risk-free (cash) rate for Sharpe & Sortino: 3%/yr — roughly the average US T-bill yield over the backtest window. A higher assumed cash rate makes the ratios LOOK worse, so this is the non-flattering choice.

What each number means

MetricIn plain words
CAGRAverage yearly growth, compounding included. 12% ≈ it grew about 12% a year.
SharpeReturn per unit of total wobble. Higher = a smoother ride for the same gain; above 1 is solid.
SortinoLike Sharpe but only counts DOWNSIDE wobble (upside jumps aren't "risk"). Uses target semideviation.
VolatilityHow much the value swings, annualised. Measures wiggle, not direction.
Max drawdownThe single worst peak-to-trough fall in the whole record — the number your stomach feels.
CalmarYearly growth ÷ that worst fall. "Was the pain worth it?"

Known limitations (the small print)

We're a publisher, not an adviser.

Every strategy publishes ONE model-portfolio update, identical for every subscriber, generated systematically — never personalised, never a signal to buy or sell, and we never place or manage trades. You decide and trade in your own account. See the strategies → · Verify the ledger →

Methodology changelog

Every change to how results are calculated — dated, with an honest note on its effect on the published numbers.

Date Change Impact
2026-10-15 The backtest-window slider on strategy pages now ends on the same date as the official track record (the quarter-end it is pinned to), not on the day you view it, and its chart is drawn from about weekly points. Window figures now cover the same end date as the headline numbers; the official track record is unchanged.
2026-10-15 Congressional Buys is no longer published on stale disclosure data: when the newest congressional disclosure we hold is more than 21 days old, that month's update is held back until the data is refreshed. Before, a dead data feed could still produce an update — and, once the disclosures aged out of the strategy's 90-day window, a false "moved fully to cash". No published number changed; a month can be delayed instead of built on old data. Backtests and the track record are unaffected.
2026-10-15 Strategy pages now say so next to the CAGR when one calendar year delivered more than all the other years of the backtest together, with both numbers taken from the year-by-year table on the same page. A disclosure, not a recalculation: e.g. at the 30 Jun 2026 pin the audit measured Cross-Sectional Momentum at about -22% for July 2021 to December 2025 together and +167.8% for the first half of 2026.
2026-10-15 Market prices on stock pages and price charts are now adjusted for stock splits (not for dividends), the way brokers show them. Our data provider's plain closing price is not split-adjusted, so a split showed up as a crash and a 52-week range spanning two share bases. Display only: e.g. BKNG's 52-week range read 154.13-5,720.87 at a 157.51 quote. Track records always used the fully adjusted close and are unchanged.
2026-10-15 Craft-your-own baskets with less than a year of price history no longer get an annualised return or Sharpe ratio and are left out of the community ranking; they show their total return instead (returns under a year are not annualised). Lower for very young baskets: e.g. 31 sessions of +20% used to read as a 362% yearly return. Strategy track records all span several years and are unaffected.
2026-10-15 Calculators: the Markowitz tool now uses each ticker's average daily return x 252 (the arithmetic mean the model assumes) instead of its compound growth rate, which also read 0% under half a year of shared history. The regular-investing (DCA) tool shows a yearly IRR only from 12 months up, and treats the month still in progress as a valuation, not a payment. Markowitz returns are higher for volatile tickers; very short DCA periods show no IRR (three payments used to read 2,290% a year). Track records are unaffected.
2026-10-14 Track records moved to the last closed quarter, 30 Sep 2026 (they are pinned to a quarter-end and moved once a quarter), and were recomputed with the three corrections below. Every strategy's headline numbers now run to 30 Sep 2026 instead of 30 Jun 2026; already published model portfolios were not changed.
2026-10-14 Congressional Buys now chooses only among companies that were in the Nasdaq-100 on each date. Before, its candidate pool was every company ever in the index, so the backtest could buy a stock because it joined the index LATER (look-ahead), while its benchmark was already point-in-time. Lower: recomputed at the old 30 Jun 2026 pin, CAGR fell from 22.2% to 20.0% and Sharpe from 0.81 to 0.73.
2026-10-14 A security with no real quote for 14 days is no longer picked or held on a frozen price. Renamed listings are followed under their new code with their full history: PUTW is now WTPI (WisdomTree, renamed April 2025), CCC is now MDV (Modivo), Santander Bank Polska is now Erste Bank Polska (EBP) — in the backtests and in the live record. Mainly the option-income strategies built on the put-write fund and the WIG20 strategies; the live record now prices a renamed holding instead of treating it as cash.
2026-10-14 CAGR is now compounded over calendar time (days ÷ 365.25) instead of assuming 252 trading sessions a year. A strategy trading US and Warsaw stocks has about 258 sessions a year on its combined calendar and a Warsaw-only one about 250, so the old count read the first a little low and the second a little high. Small: at the 30 Jun 2026 pin, Cross-Sectional Momentum 15.74% -> 16.14%, Inverse-Volatility (GPW) 19.52% -> 19.34%. Volatility, Sharpe and drawdown are unchanged by this.
2026-10-14 The year-by-year table on each strategy page now uses each year's actual last trading day. Before, it read the year-end off the simplified chart curve — a point up to about two weeks before 31 December — so single years could be off by several points. Yearly figures only (e.g. lottery-ticket 2022 was shown as +0.7% where the full curve gives +7.7%); headline CAGR, Sharpe and drawdown were always computed from the full daily series.
2026-10-14 When the data provider re-adjusts a price history for a new dividend or split, older stored prices are now rescaled to the same basis instead of being mixed with it. Mixing silently dropped dividends from total return and could show a split as a crash. Total return of dividend payers is no longer understated (e.g. the T-bill fund behind Safe Yield); no figure was edited by hand — numbers changed only through the 30 Sep 2026 recompute.
2026-09-11 The live record of published portfolios now keeps allocation revision history: if a past month's allocation is corrected, both versions stay visible instead of the correction silently overwriting what was actually published at the time. No published number changed; this only makes any future correction visible rather than silent.
2026-09-10 Strategy pages show a separate LIVE record of the actually published model-portfolio updates since first publication — distinct from the simulated backtest above it — entering each new allocation at the next trading session's close (no look-ahead). New metric, not a restatement of the backtest; a strategy with no full month since publication shows no live figure yet.
2026-09-10 Every track record now shows a market benchmark (an equal-weight universe or SPY, whichever fits the strategy) computed over the SAME window and the SAME costs, so a strategy's numbers can be read against a plain buy-and-hold, not in isolation. Display-only addition; no strategy's own CAGR/Sharpe/drawdown figures changed.
2026-07-15 Fixed two backtest bugs found in an internal audit: (1) filtering calendar month-ends against the trading calendar had silently skipped rebalancing on roughly a third of months (any month ending on a weekend/holiday), while the live product rebalances 12x/year; (2) the very first rebalance's transaction cost was erased by how the equity curve was normalised. Both fixed; every published track record was recomputed. Roughly a third of months gained a rebalance they'd been missing, and every curve now starts after its real entry cost (~2.5 bps) instead of before it — both changes make the numbers slightly LESS flattering, never more.
2026-07-07 Prices are forward-filled before each monthly decision, so a market holiday on one exchange (e.g. US closed, GPW open) no longer silently drops a whole market from that month's decision. July 2026 allocations were re-published under the fix. Separately, Sortino now uses target semideviation (the RMS of below-target returns over ALL periods) instead of the sample standard deviation of the downside subset around its own mean. Documented in engine/backtest.py: the prior subset-std formula OVERSTATED Sortino by roughly 9-18%, more for tightly-clustered losses — so published Sortino values fell by about that much on the recompute.
2026-07-07 The risk-free (cash) rate used for Sharpe/Sortino changed from 0% to a flat 3%/yr (roughly the average US T-bill yield over the backtest window) — 0% had actually INFLATED both ratios, not kept them conservative. Transaction costs switched from a flat 5 bps everywhere to per-market tiers (US 5 / EU 10 / GPW 20 bps). Every published track record was recomputed on both changes. Both changes make ratios/returns LESS flattering, never more — e.g. (as recorded at the time) balanced-duo Sharpe 0.919 -> 0.802 and inverse-vol 0.889 -> 0.701 on the rate change; PL/EU-heavy, high-turnover books lost the most on the cost change.
2026-07-01 Switched the price feed to the licensed EODHD data (from the keyless Yahoo fallback) for total-return prices that still include names which later delisted — Yahoo silently drops those, which had flattered results by leaving only survivors in the data. Documented at the time: momentum/dual-momentum CAGR eased roughly 1-2 percentage points on the honest recompute (more delisted names now priced-in); diversified sleeves were largely unchanged.
2026-06-30 Replaced the curated, present-day snapshot of large-cap names with REAL, dated index-membership history for both the US sleeve (Nasdaq-100) and the Polish sleeve (WIG20) — backtests now see each index as it actually was on each date, not "today's winners assumed to have always been in the index". Documented at the time: the old snapshot universe was empty before its 2024 starting point, so affected backtests had sat in cash through the 2022 bear market and invested for only part of the full window — the fix removes that look-ahead/survivorship bias, it does not add it.

This is published market information, not investment advice and not a personal recommendation. Allocations are generated systematically and are the same for every subscriber. You decide and trade in your own account.