Every number on this site traces back to a small set of outside sources. There is no proprietary data feed and nothing is hand-entered. Knowing what feeds what makes it easier to judge how much weight any given figure deserves.
Monthly returns: Tiingo
The monthly return series behind every strategy comes from Tiingo's end-of-day data. This is the authoritative source. When a strategy's performance is computed, recomputed, or published, it is Tiingo's month-end closing prices doing the work.
Returns are total return, adjusted for dividends and distributions. This matters more than it sounds. For bond and commodity positions the income component is most of the return, and a price-only series would understate those assets badly rather than slightly.
Inflation: the Bureau of Labor Statistics, via FRED
The CPI series used by the Inflation Adjusted toggle is CPI-U, All Urban Consumers, not seasonally adjusted. It is pulled from the St. Louis Fed's FRED service, which redistributes the BLS figures. FRED also supplies several market indicators shown elsewhere on the site, including the high-yield credit spread.
The CPI is published with about a one-month lag, so the newest month usually has no official print yet. See the Inflation Adjusted FAQ for how that gap is handled.
Live quotes: Twelve Data and Yahoo Finance
Intraday numbers come from a different place than the historical record. The market strip above the navigation and the month-to-date figures during an open month are built from live quotes, refreshed through the trading day. Historical performance never depends on them.
This is a deliberate separation. Live quote feeds are fast and occasionally wrong. End-of-day data is slower and much more reliable. The site uses each for what it is good at, and nothing in a strategy's published track record is ever sourced from an intraday quote.
History before an ETF existed
Where a fund is younger than the track record shown, the earlier history is reconstructed from other sources. That reconstruction has its own rules and its own limitations, covered in full in the extended-returns FAQ.
What this means for the numbers you see
A few consequences worth carrying around:
Where errors would come from
Being honest about the failure modes: the most likely source of a wrong number on this site is not the price data itself, which is well-tested and widely used. It is the reconstruction layer for pre-ETF history, and it is the transformation code that turns raw prices into strategy results. Both get audited, and both have had real defects found and fixed. The price feeds themselves have not been a meaningful source of trouble.
Most of the ETFs a DMS strategy trades are younger than the track record shown for that strategy. A broad commodity ETF may have launched in 2014, an international equity ETF in 2011, a Nasdaq-100 fund in 1999. If a backtest could only use the period where every holding actually existed, the entire test would be truncated to the youngest fund in the lineup - and a strategy tested only on the post-2014 era has never been shown a rate-shock, a commodity boom, or a 1970s-style inflation regime.
To avoid that, DMS uses extended return series: each asset class is reconstructed backwards to January 1979 from the best available source for each stretch of history. The strategy is then tested against that longer record.
The waterfall
Every asset class is built from a prioritized chain of sources. The engine walks the chain from best to worst and takes each date's return from the highest-ranked source that actually has data for that date. In order of preference:
The chain is a splice, not a blend. Two adjacent tiers are never averaged together; each date is sourced from exactly one place.
Substitutions are held to a standard
A fund only earns a place in a chain if it is genuinely tracking the same thing. This is where most of the judgment sits, and it cuts both ways: a corporate-bond fund is not a proxy for a broad aggregate bond index even though both are "bonds," and a high-yield fund is a different asset class entirely rather than a longer-history version of investment grade. Tiers get removed when they fail that test, even when removing them shortens the history.
Everything is total return
Price history alone is not usable. Every source in every chain is dividend- and distribution-adjusted, so the series represents what an investor would actually have earned holding the position. For bond and commodity series in particular, the income component is most of the return, and a price-only source would be badly wrong rather than slightly wrong.
Expenses are handled tier by tier
Each source in a chain carries its own expense ratio, and the reconstruction accounts for that source's actual fee for the dates it supplies - not a single blanket fee applied across the whole history. A 1990s mutual fund charging 0.90% and a modern ETF charging 0.05% are not interchangeable on cost, and using one fee across both eras would leave a small permanent drag or boost baked into the older half of the record.
Leveraged series are rebuilt, not borrowed
For 2x and 3x series, no leveraged fund existed before roughly 2006-2010, so those histories are constructed rather than sourced. Each day's unlevered return is multiplied by the leverage factor, then charged a financing cost derived from the prevailing overnight rate plus a spread, then charged the real leveraged fund's own published expense ratio. This is daily-reset leverage, matching how the actual products work - which means the reconstruction reproduces volatility decay in choppy markets rather than papering over it.
Monthly history often reaches further back than daily history
Daily price history and monthly return history come from different places and stop at different points. A fund may have thirty years of published monthly returns but only twenty years of usable daily prices. Where that's true, the monthly series is extended using the monthly data while the daily series stops at the last date with trustworthy daily prices.
The practical consequence: for some asset classes, monthly-resolution results start earlier than daily-resolution results. A strategy rebalancing monthly may therefore show a longer track record than the same strategy tested at daily granularity.
Regression-based tiers
Where an asset class has no fund and no clean index reaching far enough back, one remaining option is to estimate its returns from the assets it is statistically related to - regressing the target series on factors or on other markets with longer histories, then using that relationship to project the missing period.
This produces a plausible series, not a real one, and it is treated with more suspicion than every tier above it. A regression fit on one era's correlations can behave badly in an era where those correlations broke down, which is precisely the period a long backtest is meant to stress. Regression tiers are used sparingly, sit at the bottom of the chain, and are retired when a better source appears or when the reconstruction fails review.
Real data always wins
Where the actual ETF has traded, its own returns are used - always. Synthetic history exists only to fill the space before that, and the moment real data begins it takes over completely. The two are stitched at the fund's inception, not blended across it.
What synthetic history is and isn't
It is a careful reconstruction of what an asset class returned. It is not a record of what an investor experienced.
Specifically, it excludes: bid-ask spreads and market impact, tracking error against the index, securities-lending revenue, borrow availability, and the practical reality that many of these strategies would have been difficult or impossible to run in 1979. Reconstructed leveraged series in particular assume idealized daily rebalancing at zero cost, which real leveraged funds do not achieve.
It is also worth remembering that the deepest tiers of any chain are the least reliable, and they sit in the oldest and most unusual part of the record - the stretch doing the most work in a long backtest. Treat the earliest years as directionally informative about how a strategy behaves in an unfamiliar regime, not as a precise measurement.
How to read results that use it
Results built on extended history are best used to answer "does this approach survive conditions the last fifteen years never produced?" rather than "what exactly would I have made?" Where a strategy's edge depends heavily on the pre-ETF era, that is worth knowing and worth discounting.
DMS recomputes every strategy once a day, in the evening, after the US market has closed and the day's closing prices have settled. Nothing changes during the trading day except live quotes.
The daily cycle
All times below are US Eastern. Phoenix runs three hours behind Eastern in summer.
Closing price data is fetched in several passes through the evening, starting shortly before 6 PM and continuing into the late evening. Multiple passes exist because data providers do not publish everything at once, and a ticker that is not ready on the first attempt gets picked up on a later one.
Strategy results are then computed twice:
The after-midnight pass is the authoritative one. The 8:15 PM run is a useful early look, but it can be working from an incomplete picture.
The practical consequence: a figure you check at 9 PM Eastern can differ from the same figure the next morning. That is not an error being corrected. It is the early pass being superseded by the complete one. If a number matters, read it after midnight Eastern, or simply read it the following day.
FINAL versus "through" on the allocation table
The most recent row of a strategy's allocation table carries a small tag telling you how settled it is:
The tag reports the actual state of the underlying data rather than the calendar. A month that has ended on the calendar is not automatically final; it becomes final when the data confirming it has arrived and been verified.
The current month
While a month is in progress, two different things are shown, and they behave differently.
The allocation is published daily. You can see what a strategy is holding right now. This updates as the month goes on.
The return is not published until the month closes. Instead, during the month you see a month-to-date figure, labeled MTD rather than Month Return. MTD is built from live quotes and moves during the trading day. It is a running estimate of an unfinished month, not a result.
When the month closes, the MTD figure is replaced by a settled monthly return computed from month-end closing prices, and it becomes a permanent part of the record.
"Provisional" means something different
There is also a row labeled Provisional, and it is easy to confuse with the freshness tag above. They are unrelated.
The Provisional row is a projection of next month's allocation, showing what the strategy would hold if the current month ended today. It is a forward look, not a status label, and it is a Premium feature.
It also moves. A projection made on the 8th of the month is built on eight days of incomplete data, and the signals driving it can reverse before month-end. Treat it as a preview of where things are heading, not as an instruction.
A note for free accounts
Current-month allocations for Premium strategies unlock for free users on the 11th of each month. Everything else on the daily cycle above applies the same way regardless of account type.
What to do with all this