QuantConnect Morningstar Migration: What Changes Before October 31
Last updated: October 6, 2026
By TradingBotsSimplified
QuantConnect is replacing the Morningstar Global Equity Data Feeds behind its US Fundamental Data with Morningstar’s newer Equity Data Feeds. During the October transition, algorithms that use fundamentals can select different securities, receive some values on different dates and produce different backtest results—even when the code is unchanged.
QuantConnect’s announcement says the new feed is opt-in through October 10, becomes the default on October 11, and the legacy feed is retired after October 31, 2026. Its migration documentation describes the default switch as October 10. Because those two official pages differ by one day, the conservative approach is to complete comparisons before October 10 and confirm the selected LEAN engine version in the project panel.
This guide is for QuantConnect developers who use fundamental universes, valuation ratios, financial statements or Morningstar classification data. It explains what changed, which strategies are most exposed and how to compare the feeds without mistaking a data revision for a new trading edge.
QuantConnect Morningstar migration timeline
QuantConnect’s migration announcement gives three operating phases:
- October 1–10: the legacy feed remains the default and the new feed is available by opting in from the project panel.
- October 11–31: the new feed becomes the default, while a legacy LEAN version remains selectable for comparison.
- After October 31: the legacy feed is unavailable for both backtesting and live trading.
The separate Morningstar migration guide says the master branch changes on October 10. Treat October 10 as the safe deadline for finishing the first comparison, then verify the branch label before every run. A saved result without its LEAN version is not enough to reproduce the test later.
Morningstar’s own equity-data upgrade hub confirms that the old delivery services are being retired; this is not a temporary QuantConnect experiment that can remain optional indefinitely.
Why the same backtest can now produce different results
The migration rebuilds the historical fundamental dataset, rather than changing only observations delivered after the switchover. As a result, a backtest rerun on the new feed may see different values anywhere in its history from January 1998 onward.
Timing is one major reason. The old feed assigned some ratios, growth rates, per-share figures and averages to the end of the reporting period. The new feed dates them to the filing that produced them. QuantConnect reports that these values arrive a median of 63 days later, removing look-ahead bias where a historical simulation could read a figure before it became public.
Coverage is another reason. QuantConnect’s comparison grows from 8,717 to 9,705 companies—988 more, or about 11.3% by calculation. A universe that selects the top 100 or 500 qualifying companies now ranks a larger candidate pool. Securities near a cutoff can enter or leave even if their own values did not change.
The feed also recalculates historical series, changes the sign convention for some expenses and outflows, and updates price multiples such as P/E and P/B daily instead of monthly. Each difference can alter a filter, ranking, rebalance date or position size.
Old feed vs new feed: the material changes
| Area | Old feed | New feed | Possible algorithm effect |
|---|---|---|---|
| Company coverage | 8,717 in QuantConnect’s comparison | 9,705 | A ranked universe starts from a larger pool. |
| History | Starts January 1998 | Starts January 1998, rebuilt from the new feed | Old backtests may not reproduce even for early years. |
| Reporting dates | Some derived fields used period-end dates | Uses filing dates where available; values arrive a median 63 days later | Signals can move to a later rebalance and prior look-ahead can disappear. |
| Price multiples | P/E and P/B updated monthly | P/E and P/B updated daily | Thresholds and ranks can change more often. |
| Historical values | Legacy calculations and signs | Recalculated series, rounding and revised sign conventions | Factor values and cash-flow logic may change. |
| Properties | Legacy property set | 535 new; 1,251 retired, including 358 that were never populated | Direct reads of retired members can throw an exception. |
QuantConnect’s US Fundamental Data documentation says about one third of the values present in both feed generations differ. When a value differs, it usually changes by more than 20%. Those are vendor comparison findings, not results from a TradingBotsSimplified backtest.
For statements before 2013, the new feed does not always include an actual filing date. QuantConnect says it preserves dates from the previous dataset where available and otherwise applies a nominal 45-day delay. That reduces one form of look-ahead but does not turn an estimated timestamp into a known historical filing timestamp.
Which strategies are most exposed
Exposure depends on how fundamentals influence decisions. A buy-and-hold algorithm that never reads Morningstar data may be unaffected. A strategy can be materially exposed even when it uses only one fundamental field.
The highest-risk cases are fundamental universe selection, cross-sectional rankings, hard valuation thresholds, point-in-time rebalances near filing dates, and calculations that assume a particular sign for expenses or cash outflows. Live algorithms also need review: once the new feed is active, the eligible universe and current values can differ from the legacy feed.
| Strategy dependency | What can change | First comparison |
|---|---|---|
| Has fundamental data filter | More securities qualify | Candidate and selected symbol counts |
| Top-N factor rank | Order and cutoff membership | Ranked values and symbols on each rebalance |
| Valuation threshold | Daily multiples cross the threshold sooner or more often | Signal dates and turnover |
| Growth or per-share field | Later filing-based availability | First non-null timestamp used by the strategy |
| Expense or outflow field | Sign convention | Raw inputs and the derived metric |
| Retired property or period | Runtime exception or changed default period | Short compile-and-run smoke test |
A changed return is the end of the investigation, not the beginning. First compare inputs, selected symbols, signal timestamps, orders and exposure. Only then compare equity curves and summary statistics.
How to audit retired Morningstar fields
LEAN keeps retired members so existing projects can still compile, but reading one can raise a NotSupportedException. The exception identifies an alternative when one exists. QuantConnect gives DividendCoverageRatio.ThreeMonths as an example that should move to DividendCoverageRatio.TwelveMonths; NormalizedDilutedEPSGrowth is retired for all periods without a replacement.
Run a short backtest on the new feed before a full comparison. Exercise every path that accesses fundamentals, including rarely used risk or rebalance branches. Do not assume successful compilation proves the property is supported.
Code that iterates available periods is less brittle. QuantConnect states that get_period_values and has_value skip retired members. However, if the old default period was removed, reading the property without specifying a period can return the closest remaining value. That may keep the algorithm running while silently changing what the calculation means.
For each fundamental input, record the exact property, period, units, expected sign and missing-value behavior. If a replacement has a different horizon, do not substitute it mechanically; decide whether it still represents the original strategy rule.
A practical two-run migration test
Use the same code, dates, parameters, cash, brokerage model and fee/slippage settings for both runs. Change only the LEAN engine version that selects the Morningstar feed. This isolates the data migration from unrelated research changes.
- Freeze a baseline. Save the commit, parameters, engine version and legacy backtest ID.
- Run a short smoke test on the new feed. Catch retired fields and obvious sign or null-handling failures.
- Run the full comparison. Use identical start and end dates on the legacy and new feeds.
- Compare decisions before performance. Diff candidate counts, selected symbols, factor values, timestamps, insights and orders.
- Inspect the first divergence. Use QuantConnect’s Migration Atlas to check the company, year, property and period window.
- Revalidate live assumptions. Confirm schedules, data availability, warm-up behavior, portfolio construction and risk limits.
If the equity curves differ, do not immediately tune parameters to recover the legacy result. First explain the changed inputs. Retuning on the replacement data without a reserved evaluation period can overfit the migration.
The site’s guide to backtesting, paper trading and live trading explains why identical strategy logic can still diverge across environments. If order costs also changed the outcome, separate that question with the slippage sensitivity experiment.
What to do before October 31
QuantConnect developers using US fundamentals should complete a new-feed smoke test and at least one like-for-like comparison before October 10, then verify the selected engine version again after the default changes. Preserve both backtest IDs, logs and exported statistics while the legacy feed remains available.
A generic site-wide backtest would not answer whether your algorithm is safe to migrate. The impact depends on the exact Morningstar properties, ranking cutoffs and rebalance dates in the strategy, so this article does not present an invented “average” performance effect. Its original contribution is a reproducible comparison method and an exposure map grounded in QuantConnect’s published migration data.
After October 31, the legacy feed is scheduled to be unavailable for backtesting and live trading. Results produced before the migration may remain useful as historical records, but they will not be reproducible from the same code alone. Store the data-version context with every research conclusion. For a reusable bot foundation, see how to build a QuantConnect trading bot in Python.
Educational content about trading-system development. No dataset revision or backtest result guarantees future performance.
Questions about your QuantConnect workflow?
Work through your trading-bot development and testing questions in a one-hour consultation.