agentleFS
QuantConnectQuantConnect/Documentation/skills/python/equity-fundamental-data/SKILL.md

equity-fundamental-data

Skill268 starsChanged 48 days agoApache-2.0View on GitHub

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).

The file

Files
SKILL.md

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 add_universe(...) selection callback (each element is a Fundamental), from self.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 familyLoad this skillContents
f.financial_statements.income_statement.*fundamental-income-statementrevenue, cost/expense lines, operating & net income, EBIT/EBITDA, interest, tax, dividends paid
f.financial_statements.balance_sheet.*fundamental-balance-sheetassets, liabilities, equity, debt, working-capital components, share counts
f.financial_statements.cash_flow_statement.*fundamental-cash-flow-statementoperating / investing / financing cash flows, capex, issuance & repurchase, dividends
f.operation_ratios.*, f.valuation_ratios.*, f.earning_ratios.*fundamental-ratiosROA/ROE/margins/turnover, PE/PB/PS/EV multiples & yields, EPS/DPS growth rates
f.earning_reports.*, f.company_reference.*, f.security_reference.*, f.company_profile.*fundamental-company-dataEPS & report dates, listing/exchange/share-class reference, company profile basics
f.asset_classification.* + code constantsfundamental-classificationsector / 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 .one_month .two_months .three_months .six_months .nine_months .twelve_months respectively (trailing-twelve-month at 12M). e.g. f.financial_statements.income_statement.net_income.twelve_months. 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.valuation_ratios.pe_ratio.
  • The integer *_code fields under asset_classification compare against the named constants in the fundamental-classification skill, e.g. f.asset_classification.morningstar_sector_code == MorningstarSectorCode.TECHNOLOGY.

Top-level and filing-metadata data points

The snapshot's own attributes and the filing/timing fields under f.financial_statements (period end, file date, period type, ...) — the fields every point-in-time strategy needs:

Data pointDescription
f.dollar_volumeGets the day's dollar volume for this symbol
f.volumeGets the day's total volume
f.has_fundamental_dataReturns whether the symbol has fundamental data for the given date
f.price_factorGets the price factor for the given date
f.split_factorGets the split factor for the given date
f.valueGets the raw price
f.end_timeThe end time of this data.
f.market_capPrice * 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.financial_statements.period_ending_date.[value 1M 2M 3M 6M 9M 12M]The period ending date of the financial statements, dated by the filing the balance sheet, income statement and cash flow statement were reported in. Each statement also carries its own date: BalanceSheet.PeriodEndingDate, IncomeStatement.PeriodEndingDate and CashFlowStatement.PeriodEndingDate.
f.financial_statements.file_date.[value 1M 2M 3M 6M 9M 12M]Specific date on which a company released its filing to the public.
f.financial_statements.accession_number.[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.financial_statements.form_type.[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.financial_statements.auditor_report_status.[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.financial_statements.period_type.[value 1M 2M 3M 6M 9M 12M]The nature of the period covered by an individual set of financial results. The output can be: Quarter, Semi-annual or Annual. Assuming a 12-month fiscal year, quarter typically covers a three-month period, semi-annual a six-month period, and annual a twelve-month period. Annual could cover results collected either from preliminary results or an annual report
f.financial_statements.total_risk_based_capital.[value 1M 2M 3M 6M 9M 12M]The total capital ratio: total regulatory capital, Tier 1 plus Tier 2, divided by risk weighted assets.
f.financial_statements.common_equity_tier_1_capital_ratio.[value 1M 2M 3M 6M 9M 12M]Common equity tier 1 capital divided by risk weighted assets
f.financial_statements.common_equity_tier_1_capital.[value 1M 2M 3M 6M 9M 12M]Common equity tier 1 capital, the highest quality regulatory capital
f.financial_statements.liquidity_coverage_ratio.[value 1M 2M 3M 6M 9M 12M]High quality liquid assets divided by projected net cash outflows over thirty days
f.financial_statements.net_interest_margin.[value 1M 2M 3M 6M 9M 12M]Net interest income divided by average earning assets
f.financial_statements.net_interest_spread.[value 1M 2M 3M 6M 9M 12M]The difference between the yield on earning assets and the rate paid on funding
f.financial_statements.non_performing_assets_loans.[value 1M 2M 3M 6M 9M 12M]Loans on which the borrower is not making interest or principal payments as scheduled
f.financial_statements.risk_weighted_asset.[value 1M 2M 3M 6M 9M 12M]Assets weighted by credit risk, the denominator of the regulatory capital ratios
f.financial_statements.tier_1_capital_ratio.[value 1M 2M 3M 6M 9M 12M]Tier 1 capital divided by risk weighted assets
f.financial_statements.tier_1_capital.[value 1M 2M 3M 6M 9M 12M]Tier 1 capital: common equity, qualifying preferred equity and retained earnings
f.financial_statements.tier_1_leverage_ratio.[value 1M 2M 3M 6M 9M 12M]Tier 1 capital divided by average total consolidated assets
f.financial_statements.tier_2_capital_ratio.[value 1M 2M 3M 6M 9M 12M]Tier 2 capital divided by risk weighted assets
f.financial_statements.tier_2_capital.[value 1M 2M 3M 6M 9M 12M]Tier 2 capital: subordinated debt, cumulative preferred stock and loan loss allowances
f.financial_statements.total_capital.[value 1M 2M 3M 6M 9M 12M]The sum of tier 1 and tier 2 capital, in currency rather than as a ratio
f.financial_statements.adjusted_basic_net_asset_value.[value 1M 2M 3M 6M 9M 12M]Net asset value adjusted per the reporting standard, on a basic share basis
f.financial_statements.adjusted_diluted_net_asset_value.[value 1M 2M 3M 6M 9M 12M]Net asset value adjusted per the reporting standard, on a diluted share basis
f.financial_statements.reported_basic_adjusted_fund_from_operations.[value 1M 2M 3M 6M 9M 12M]Adjusted funds from operations as reported, on a basic share basis
f.financial_statements.reported_diluted_adjusted_fund_from_operations.[value 1M 2M 3M 6M 9M 12M]Adjusted funds from operations as reported, on a diluted share basis
f.financial_statements.reported_diluted_fund_from_operations.[value 1M 2M 3M 6M 9M 12M]Funds from operations as reported, on a diluted share basis
f.financial_statements.adjusted_basic_net_asset_value_per_share.[value 1M 2M 3M 6M 9M 12M]Adjusted net asset value per basic share
f.financial_statements.adjusted_diluted_net_asset_value_per_share.[value 1M 2M 3M 6M 9M 12M]Adjusted net asset value per diluted share
f.financial_statements.reported_basic_adjusted_fund_from_operations_per_share.[value 1M 2M 3M 6M 9M 12M]Adjusted funds from operations per basic share, as reported
f.financial_statements.reported_basic_fund_from_operations_per_share.[value 1M 2M 3M 6M 9M 12M]Funds from operations per basic share, as reported
f.financial_statements.reported_diluted_adjusted_fund_from_operations_per_share.[value 1M 2M 3M 6M 9M 12M]Adjusted funds from operations per diluted share, as reported
f.financial_statements.reported_diluted_fund_from_operations_per_share.[value 1M 2M 3M 6M 9M 12M]Funds from operations per diluted share, as reported
f.marketGets the market for this symbol
f.price_scale_factorGets the combined factor used to create adjusted prices from raw prices
f.adjusted_priceGets the split and dividend adjusted price
f.priceGets the raw price
f.data_typeMarket Data Type of this data - does it come in individual price packets or is it grouped into OHLC.
f.is_fill_forwardTrue if this is a fill forward piece of data
f.timeCurrent time marker of this data packet.
f.symbolSymbol representation for underlying Security

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.