The balanceSheetHistory, cashflowStatementHistory, and incomeStatementHistory modules (both annual and quarterly versions) are returning minimal or null data instead of detailed financial statement line items.
Bug Report
Describe the bug
Bug Report: Historical Financial Statement Modules Returning Incomplete Data
Summary:The balanceSheetHistory, cashflowStatementHistory, and incomeStatementHistory modules (both annual and quarterly versions) are returning minimal or null data instead of detailed financial statement line items.
Affected Modules: balanceSheetHistory balanceSheetHistoryQuarterly cashflowStatementHistory cashflowStatementHistoryQuarterly incomeStatementHistory incomeStatementHistoryQuarterly
Expected Behavior? Historical financial statements should include detailed line items such as: Balance Sheet: totalAssets, totalLiabilities, stockholderEquity, cash, inventory, etc. Cash Flow: operatingCashflow, investingCashflow, financingCashflow, capitalExpenditures, etc. Income Statement: costOfRevenue, grossProfit, operatingIncome, operatingExpenses, etc.
Actual Behavior: Modules return only minimal data or null values:
Balance Sheet - Only returns dates: { "balanceSheetStatements": [ { "maxAge": 1, "endDate": "2025-09-30T00:00:00.000Z" } ] }
Cash Flow - Only returns netIncome: { "cashflowStatements": [ { "maxAge": 1, "endDate": "2025-09-30T00:00:00.000Z", "netIncome": 112010000000 } ] }
Income Statement - Only returns totalRevenue and netIncome (all other fields null/0): { "incomeStatementHistory": [ { "maxAge": 1, "endDate": "2025-09-30T00:00:00.000Z", "totalRevenue": 416161000000, "costOfRevenue": 0, "grossProfit": 0, "operatingIncome": null, "netIncome": 112010000000 } ] }
Reproduction Code: const yahooFinance = require('yahoo-finance2').default;
const result = await yahooFinance.quoteSummary('AAPL', { modules: ['balanceSheetHistory', 'cashflowStatementHistory', 'incomeStatementHistory'] });
console.log(result.balanceSheetHistory.balanceSheetStatements[0]); // Returns only: { maxAge: 1, endDate: "2025-09-30T00:00:00.000Z" }
Testing:
- Tested with multiple stocks (AAPL, MSFT, GOOGL) - all show same incomplete data
- Issue affects both annual and quarterly versions of these modules
- Same results across different time periods
Minimal Reproduction
const yahooFinance = require('yahoo-finance2').default;
// Test balance sheet const balanceSheet = await yahooFinance.quoteSummary('AAPL', { modules: ['balanceSheetHistory'] }); console.log(balanceSheet.balanceSheetHistory.balanceSheetStatements[0]); // Expected: { totalAssets, totalLiabilities, stockholderEquity, ... } // Actual: { maxAge: 1, endDate: "2025-09-30T00:00:00.000Z" }
// Test cash flow const cashflow = await yahooFinance.quoteSummary('AAPL', { modules: ['cashflowStatementHistory'] }); console.log(cashflow.cashflowStatementHistory.cashflowStatements[0]); // Expected: { operatingCashflow, investingCashflow, financingCashflow, ... } // Actual: { maxAge: 1, endDate: "2025-09-30T00:00:00.000Z", netIncome: 112010000000 }
// Test income statement const income = await yahooFinance.quoteSummary('AAPL', { modules: ['incomeStatementHistory'] }); console.log(income.incomeStatementHistory.incomeStatementHistory[0]);
Environment
yahoo-finance2 version: [current latest] 3.10 Node.js version: v22.13.1 Tested: November 2025
Additional Context
Hey see this note from the quoteSummary docs:
Financial Statements: Since Nov 2024, the ~
incomeStatementHistory*~, ~balanceSheetHistory*~, ~Immunohistochemistry*~ modules provide almost no data. Use the fundamentalsTimeSeries module instead.
Open to suggestions on how to make this clearer.
Dupe #840.