Skip to content

Fundamentals: Morningstar Equity Data Feeds data points - #9746

Draft
Martin-Molinero wants to merge 12 commits into
QuantConnect:masterfrom
Martin-Molinero:morningstar-edf-new-data-points
Draft

Fundamentals: Morningstar Equity Data Feeds data points#9746
Martin-Molinero wants to merge 12 commits into
QuantConnect:masterfrom
Martin-Molinero:morningstar-edf-new-data-points

Conversation

@Martin-Molinero

@Martin-Molinero Martin-Molinero commented Aug 25, 2026

Copy link
Copy Markdown
Member

Updates the fundamental data model for Morningstar's Equity Data Feeds, which replace the previous fundamentals feed in 2026.

New data points (96)

  • Credit risk: DistanceToDefault, ProbabilityOfDefault
  • Company and security flags: IsShellCompany, IsIPO, StateOrCountryOfIncorporation, full/part-time employee counts, TreasuryShares
  • Valuation: diluted and normalized enterprise-value ratios (DilutedEVToEBITDA, NormalizedEVToEBIT, TotalDebtToEV, ...), multi-year averages of the price multiples and yields, NormalizedEarningsYield
  • Bank regulatory metrics: Tier 1/2 capital and ratios, CET1, leverage and liquidity coverage ratios, net interest margin and spread, risk-weighted assets, non-performing loans
  • REIT metrics: funds from operations (basic/diluted/adjusted), net asset value and EPRA measures, with per-share variants

Retired data points
Morningstar no longer provides some series, or some reporting windows of them. Those members are kept so existing algorithms keep compiling, but they now carry [Obsolete] with the alternative and throw NotSupportedException with the same message when read:

DividendCoverageRatio.ThreeMonths was retired by Morningstar in 2026; use DividendCoverageRatio.TwelveMonths.
NormalizedDilutedEPSGrowth was retired by Morningstar in 2026 for all periods; no replacement is available.

GetPeriodValues() and HasValue never touch a retired member, and a field whose default window was retired reports a surviving one as its default.

No behaviour changes for data points that continue to be provided.

@Martin-Molinero
Martin-Molinero force-pushed the morningstar-edf-new-data-points branch from 1391384 to a13f304 Compare August 25, 2026 14:19
Martin-Molinero and others added 12 commits August 25, 2026 20:13
IsSPAC, IsMLP, IsBDC and LEI exist as GEDF data ids 28 to 31 and are delivered
by the Equity Data Feeds, but Lean has never had properties for them, so the
converter had nowhere to put them and dropped them.

Verified against the delivered data: 274 companies flag as SPACs, 21 as master
limited partnerships and 57 as business development companies, and the MLP flag
picks out EPD, GEL, MMLP and ARLP. The LEIs match the registered identifiers,
Apple HWUPKR0MPOU8FGXBT394 and JPMorgan 8I5DZWZKVSZI1NUHU748.

Additive: no existing property changes, and the converter's mapping table is
generated by reflecting over these classes, so it picks them up with no change
to the reader.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
GEDF data id 1007, delivered in BasicReference and never modelled. 10238 values
come through, correctly formed: ES0113211835 for BBVA, GB0031348658 for
Barclays. Only non US issuers are populated, because ISINs issued by CUSIP
Global Services are a separately licensed package the workbook excludes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
GEDF data ids 20452 to 20461, delivered by the new feeds and never modelled:
disposals of businesses and assets, discontinued operations, goodwill and other
impairments, extinguishment of debt, debt restructuring, litigation, and merger
and acquisition income. British American Tobacco's goodwill impairment comes
through as -277,000,000.

Each is a four period field, three, six, nine and twelve months, following the
existing supplemental values. 20462 and 20463 are left out, the workbook maps
them to nothing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
GEDF data id 40011, which sits with MarketCap and the shares outstanding Lean
already models in the 40000 range. Apple comes through at 4.56 trillion and
Microsoft at 3.71 trillion, equal to their undiluted figures as expected for
two companies with little dilution.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
GEDF data id 2002, delivered by the BusinessDescription feed and never
modelled, alongside the addresses and market capitalisation already on
CompanyProfile.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
GEDF data id 42006, delivered alongside the share counts Lean already models on
CompanyProfile. 8564 of the 8579 values sit at or below the shares outstanding
for the same security, which is what a float should do.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Distance to default and probability of default, the credit risk pair from the
grades feed; shell company and state of incorporation flags; full and part time
employee counts; treasury shares; and whether a security is in its IPO period.
Named by the Equity Data Feeds data definition document, ids 45001 to 45008.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Twenty two ratios the equity feeds ship in volume with no GEDF ancestor: the
diluted and normalized enterprise value ratios, total debt to enterprise value,
normalized earnings yield, and the one, five and ten year averages of the price
multiples and yields. Ids 45009 to 45030, named by the data definition document.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Thirty points the equity feeds carry and Lean had no home for: tier 1 and tier 2
capital and their ratios, common equity tier 1, the leverage and liquidity
coverage ratios, net interest margin and spread, risk weighted assets and non
performing loans; and for REITs the funds from operations family, net asset
value and the EPRA measures, each with its per share twin. Ids 45031 to 45060.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1,151 members that carried data under the old feeds and can never carry any
under the new ones: whole properties, individual reporting windows, and a few
reference scalars. Each keeps its shape so algorithms still compile, warns at
build time with the alternative, and throws NotSupportedException naming it at
run time. GetPeriodValues and HasValue never touch a throwing member, and a
field whose default window went moves its default to a surviving one.

Members whose feeds merely await entitlement are not touched: absence by
permission is not retirement.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A whole property that the new feeds drop lost the windows that held data, but
the windows the old feeds had left empty stayed live and quietly returned
nothing, which read as still available. Every modelled window of such a
property now warns and throws, and the wording says in any period.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Retired by Morningstar in 2026, use X, or: for all periods, no replacement is
available. No feed migration, no since the.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Martin-Molinero
Martin-Molinero force-pushed the morningstar-edf-new-data-points branch from a13f304 to 4af1f0a Compare August 25, 2026 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant