node-yahoo-finance2 icon indicating copy to clipboard operation
node-yahoo-finance2 copied to clipboard

The balanceSheetHistory, cashflowStatementHistory, and incomeStatementHistory modules (both annual and quarterly versions) are returning minimal or null data instead of detailed financial statement line items.

Open wheeler88 opened this issue 2 months ago • 1 comments

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

wheeler88 avatar Nov 02 '25 19:11 wheeler88

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.

gadicc avatar Nov 02 '25 20:11 gadicc