| name | equity-fundamental-data |
| description | START HERE to look up the exact path or spelling of any Morningstar fundamental data point on a QuantConnect/LEAN `Fundamental` object `f`. This skill holds the path-reading rules, the top-level and filing-metadata fields (market cap, `period_ending_date`, `file_date`, ...), and the index of the six field-family skills that hold the full tables — fundamental-income-statement, fundamental-balance-sheet, fundamental-cash-flow-statement, fundamental-ratios, fundamental-company-data, fundamental-classification. Triggers — a missing-attribute / compile error on a Fundamental property path; questions like "what's the path to net income / operating cash flow / shares outstanding / PE ratio / sector code". Skip when — you need how to build or screen a universe (see the fundamental-universes skill). |
Fundamental data-point attributes — QuantConnect / LEAN
Morningstar data points are read as a full path from the snapshot f — copy the path you need rather than guessing from English names; a wrong path wastes a backtest run. Get f from an AddUniverse(...) selection callback (each element is a Fundamental), from Securities["SPY"].Fundamentals, or from a history request. The field tables are split across skills by family: THIS skill carries the top-level and filing-metadata fields plus the index below — load the family skill that holds your field's table.
Where every field lives — load the matching skill
| Field family | Load this skill | Contents |
|---|
f.FinancialStatements.IncomeStatement.* | fundamental-income-statement | revenue, cost/expense lines, operating & net income, EBIT/EBITDA, interest, tax, dividends paid |
f.FinancialStatements.BalanceSheet.* | fundamental-balance-sheet | assets, liabilities, equity, debt, working-capital components, share counts |
f.FinancialStatements.CashFlowStatement.* | fundamental-cash-flow-statement | operating / investing / financing cash flows, capex, issuance & repurchase, dividends |
f.OperationRatios.*, f.ValuationRatios.*, f.EarningRatios.* | fundamental-ratios | ROA/ROE/margins/turnover, PE/PB/PS/EV multiples & yields, EPS/DPS growth rates |
f.EarningReports.*, f.CompanyReference.*, f.SecurityReference.*, f.CompanyProfile.* | fundamental-company-data | EPS & report dates, listing/exchange/share-class reference, company profile basics |
f.AssetClassification.* + code constants | fundamental-classification | sector / industry-group / industry codes and the MorningstarSectorCode-style constants they compare against |
Reading the paths
- A path ending in
.[value 1M 2M 3M 6M 9M 12M] is a MultiPeriodField — append one period accessor to read the number. .Value is the most recent reported period; the 1M–12M tokens are .OneMonth .TwoMonths .ThreeMonths .SixMonths .NineMonths .TwelveMonths respectively (trailing-twelve-month at 12M). e.g. f.FinancialStatements.IncomeStatement.NetIncome.TwelveMonths. Forgetting the accessor is silent — the wrapper compares as truthy and numeric inequalities give nonsense.
- A path with no bracket is read directly. e.g.
f.ValuationRatios.PERatio.
- The integer
*_code fields under asset_classification compare against the named constants in the fundamental-classification skill, e.g. f.AssetClassification.MorningstarSectorCode == MorningstarSectorCode.Technology.
Top-level and filing-metadata data points
The snapshot's own attributes and the filing/timing fields under f.FinancialStatements (period end, file date, period type, ...) — the fields every point-in-time strategy needs:
| Data point | Description |
|---|
f.DollarVolume | Gets the day's dollar volume for this symbol |
f.Volume | Gets the day's total volume |
f.HasFundamentalData | Returns whether the symbol has fundamental data for the given date |
f.PriceFactor | Gets the price factor for the given date |
f.SplitFactor | Gets the split factor for the given date |
f.Value | Gets the raw price |
f.EndTime | The end time of this data. |
f.MarketCap | Price * Total SharesOutstanding. The most current market cap for example, would be the most recent closing price x the most recent reported shares outstanding. For ADR share classes, market cap is price * (ordinary shares outstanding / adr ratio). |
f.FinancialStatements.PeriodEndingDate.[Value 1M 2M 3M 6M 9M 12M] | The exact date that is given in the financial statements for each quarter's end. |
f.FinancialStatements.FileDate.[Value 1M 2M 3M 6M 9M 12M] | Specific date on which a company released its filing to the public. |
f.FinancialStatements.AccessionNumber.[Value 1M 2M 3M 6M 9M 12M] | The accession number is a unique number that EDGAR assigns to each submission as the submission is received. |
f.FinancialStatements.FormType.[Value 1M 2M 3M 6M 9M 12M] | The type of filing of the report: for instance, 10-K (annual report) or 10-Q (quarterly report). |
f.FinancialStatements.PeriodAuditor.[Value 1M 2M 3M 6M 9M 12M] | The name of the auditor that performed the financial statement audit for the given period. |
f.FinancialStatements.AuditorReportStatus.[Value 1M 2M 3M 6M 9M 12M] | Auditor opinion code will be one of the following for each annual period: Code Meaning UQ Unqualified Opinion UE Unqualified Opinion with Explanation QM Qualified - Due to change in accounting method QL Qualified - Due to litigation OT Qualified Opinion - Other AO Adverse Opinion DS Disclaim an opinion UA Unaudited |
f.FinancialStatements.InventoryValuationMethod.[Value 1M 2M 3M 6M 9M 12M] |