Closes #012 - Implement Sloan Ratio Accrual Radar

This commit is contained in:
Antigravity Agent
2026-06-13 12:56:52 +02:00
parent b94a7fcdd8
commit 0182bc22f0
8 changed files with 464 additions and 56 deletions

View File

@@ -14,6 +14,10 @@ interface QuarterData {
totalDebt: number;
equity: number;
depreciation: number;
netIncome: number;
cfo: number;
cfi: number;
totalAssets: number;
}
interface CompanyData {
@@ -31,66 +35,66 @@ const MOCK_TECH_AI_DATA: CompanyData[] = [
{
ticker: 'NVDA',
quarters: [
{ quarter: 'Q3-24', date: '2024-10-27', revenue: 35082, segmentRevenue: 29010, capex: 291, inventory: 5122, cogs: 8720, purchaseObligations: 0, totalDebt: 8460, equity: 48930, depreciation: 342 },
{ quarter: 'Q4-24', date: '2025-01-26', revenue: 37500, segmentRevenue: 31200, capex: 320, inventory: 5400, cogs: 9100, purchaseObligations: 0, totalDebt: 8460, equity: 52000, depreciation: 350 },
{ quarter: 'Q1-25', date: '2025-04-27', revenue: 39200, segmentRevenue: 33100, capex: 350, inventory: 5850, cogs: 9500, purchaseObligations: 0, totalDebt: 8500, equity: 55200, depreciation: 360 },
{ quarter: 'Q2-25', date: '2025-07-27', revenue: 41500, segmentRevenue: 35400, capex: 380, inventory: 6300, cogs: 10100, purchaseObligations: 0, totalDebt: 8520, equity: 58800, depreciation: 375 },
{ quarter: 'Q3-25', date: '2025-10-26', revenue: 44000, segmentRevenue: 37800, capex: 410, inventory: 6800, cogs: 10700, purchaseObligations: 0, totalDebt: 8550, equity: 62500, depreciation: 390 },
{ quarter: 'Q4-25', date: '2026-01-25', revenue: 46200, segmentRevenue: 39800, capex: 440, inventory: 7200, cogs: 11200, purchaseObligations: 0, totalDebt: 8600, equity: 66300, depreciation: 410 },
{ quarter: 'Q1-26', date: '2026-04-26', revenue: 47800, segmentRevenue: 41200, capex: 470, inventory: 7800, cogs: 11600, purchaseObligations: 0, totalDebt: 8650, equity: 70200, depreciation: 430 },
{ quarter: 'Q2-26', date: '2026-07-26', revenue: 49500, segmentRevenue: 42500, capex: 500, inventory: 8500, cogs: 12200, purchaseObligations: 0, totalDebt: 8700, equity: 74500, depreciation: 450 }
{ quarter: 'Q3-24', date: '2024-10-27', revenue: 35082, segmentRevenue: 29010, capex: 291, inventory: 5122, cogs: 8720, purchaseObligations: 0, totalDebt: 8460, equity: 48930, depreciation: 342, netIncome: 19309, cfo: 16800, cfi: -500, totalAssets: 85000 },
{ quarter: 'Q4-24', date: '2025-01-26', revenue: 37500, segmentRevenue: 31200, capex: 320, inventory: 5400, cogs: 9100, purchaseObligations: 0, totalDebt: 8460, equity: 52000, depreciation: 350, netIncome: 20500, cfo: 18000, cfi: -550, totalAssets: 90000 },
{ quarter: 'Q1-25', date: '2025-04-27', revenue: 39200, segmentRevenue: 33100, capex: 350, inventory: 5850, cogs: 9500, purchaseObligations: 0, totalDebt: 8500, equity: 55200, depreciation: 360, netIncome: 21500, cfo: 19000, cfi: -600, totalAssets: 95000 },
{ quarter: 'Q2-25', date: '2025-07-27', revenue: 41500, segmentRevenue: 35400, capex: 380, inventory: 6300, cogs: 10100, purchaseObligations: 0, totalDebt: 8520, equity: 58800, depreciation: 375, netIncome: 22800, cfo: 20200, cfi: -650, totalAssets: 100000 },
{ quarter: 'Q3-25', date: '2025-10-26', revenue: 44000, segmentRevenue: 37800, capex: 410, inventory: 6800, cogs: 10700, purchaseObligations: 0, totalDebt: 8550, equity: 62500, depreciation: 390, netIncome: 24200, cfo: 21500, cfi: -700, totalAssets: 105000 },
{ quarter: 'Q4-25', date: '2026-01-25', revenue: 46200, segmentRevenue: 39800, capex: 440, inventory: 7200, cogs: 11200, purchaseObligations: 0, totalDebt: 8600, equity: 66300, depreciation: 410, netIncome: 25400, cfo: 22600, cfi: -750, totalAssets: 110000 },
{ quarter: 'Q1-26', date: '2026-04-26', revenue: 47800, segmentRevenue: 41200, capex: 470, inventory: 7800, cogs: 11600, purchaseObligations: 0, totalDebt: 8650, equity: 70200, depreciation: 430, netIncome: 26300, cfo: 23500, cfi: -800, totalAssets: 115000 },
{ quarter: 'Q2-26', date: '2026-07-26', revenue: 49500, segmentRevenue: 42500, capex: 500, inventory: 8500, cogs: 12200, purchaseObligations: 0, totalDebt: 8700, equity: 74500, depreciation: 450, netIncome: 27200, cfo: 24300, cfi: -850, totalAssets: 120000 }
]
},
{
ticker: 'MSFT',
quarters: [
{ quarter: 'Q3-24', date: '2024-09-30', revenue: 65585, segmentRevenue: 24092, capex: 14920, inventory: 1120, cogs: 21720, purchaseObligations: 23100, totalDebt: 77800, equity: 228900, depreciation: 4610 },
{ quarter: 'Q4-24', date: '2024-12-31', revenue: 68200, segmentRevenue: 25900, capex: 16100, inventory: 1150, cogs: 22400, purchaseObligations: 25500, totalDebt: 78200, equity: 234000, depreciation: 4800 },
{ quarter: 'Q1-25', date: '2025-03-31', revenue: 70800, segmentRevenue: 27400, capex: 17500, inventory: 1190, cogs: 23150, purchaseObligations: 28200, totalDebt: 79000, equity: 240500, depreciation: 5050 },
{ quarter: 'Q2-25', date: '2025-06-30', revenue: 72900, segmentRevenue: 28800, capex: 19000, inventory: 1210, cogs: 23800, purchaseObligations: 31000, totalDebt: 79200, equity: 247000, depreciation: 5300 },
{ quarter: 'Q3-25', date: '2025-09-30', revenue: 75500, segmentRevenue: 30100, capex: 20500, inventory: 1240, cogs: 24500, purchaseObligations: 34100, totalDebt: 80500, equity: 254200, depreciation: 5600 },
{ quarter: 'Q4-25', date: '2025-12-31', revenue: 77800, segmentRevenue: 31400, capex: 22100, inventory: 1260, cogs: 25100, purchaseObligations: 37200, totalDebt: 81000, equity: 261800, depreciation: 5900 },
{ quarter: 'Q1-26', date: '2026-03-31', revenue: 80200, segmentRevenue: 32500, capex: 23800, inventory: 1290, cogs: 25800, purchaseObligations: 39500, totalDebt: 82000, equity: 269500, depreciation: 6200 },
{ quarter: 'Q2-26', date: '2026-06-30', revenue: 82500, segmentRevenue: 33600, capex: 25500, inventory: 1320, cogs: 26400, purchaseObligations: 38200, totalDebt: 83500, equity: 278000, depreciation: 6500 }
{ quarter: 'Q3-24', date: '2024-09-30', revenue: 65585, segmentRevenue: 24092, capex: 14920, inventory: 1120, cogs: 21720, purchaseObligations: 23100, totalDebt: 77800, equity: 228900, depreciation: 4610, netIncome: 24700, cfo: 29000, cfi: -16000, totalAssets: 485000 },
{ quarter: 'Q4-24', date: '2024-12-31', revenue: 68200, segmentRevenue: 25900, capex: 16100, inventory: 1150, cogs: 22400, purchaseObligations: 25500, totalDebt: 78200, equity: 234000, depreciation: 4800, netIncome: 25800, cfo: 30000, cfi: -17500, totalAssets: 498000 },
{ quarter: 'Q1-25', date: '2025-03-31', revenue: 70800, segmentRevenue: 27400, capex: 17500, inventory: 1190, cogs: 23150, purchaseObligations: 28200, totalDebt: 79000, equity: 240500, depreciation: 5050, netIncome: 26800, cfo: 31500, cfi: -19000, totalAssets: 512000 },
{ quarter: 'Q2-25', date: '2025-06-30', revenue: 72900, segmentRevenue: 28800, capex: 19000, inventory: 1210, cogs: 23800, purchaseObligations: 31000, totalDebt: 79200, equity: 247000, depreciation: 5300, netIncome: 27600, cfo: 32500, cfi: -20500, totalAssets: 525000 },
{ quarter: 'Q3-25', date: '2025-09-30', revenue: 75500, segmentRevenue: 30100, capex: 20500, inventory: 1240, cogs: 24500, purchaseObligations: 34100, totalDebt: 80500, equity: 254200, depreciation: 5600, netIncome: 28700, cfo: 34000, cfi: -22000, totalAssets: 540000 },
{ quarter: 'Q4-25', date: '2025-12-31', revenue: 77800, segmentRevenue: 31400, capex: 22100, inventory: 1260, cogs: 25100, purchaseObligations: 37200, totalDebt: 81000, equity: 261800, depreciation: 5900, netIncome: 29500, cfo: 35000, cfi: -23800, totalAssets: 554000 },
{ quarter: 'Q1-26', date: '2026-03-31', revenue: 80200, segmentRevenue: 32500, capex: 23800, inventory: 1290, cogs: 25800, purchaseObligations: 39500, totalDebt: 82000, equity: 269500, depreciation: 6200, netIncome: 30400, cfo: 36200, cfi: -25500, totalAssets: 568000 },
{ quarter: 'Q2-26', date: '2026-06-30', revenue: 82500, segmentRevenue: 33600, capex: 25500, inventory: 1320, cogs: 26400, purchaseObligations: 38200, totalDebt: 83500, equity: 278000, depreciation: 6500, netIncome: 31300, cfo: 37200, cfi: -27000, totalAssets: 585000 }
]
},
{
ticker: 'GOOGL',
quarters: [
{ quarter: 'Q3-24', date: '2024-09-30', revenue: 88268, segmentRevenue: 11353, capex: 12980, inventory: 980, cogs: 32610, purchaseObligations: 14800, totalDebt: 28100, equity: 285400, depreciation: 3280 },
{ quarter: 'Q4-24', date: '2024-12-31', revenue: 91400, segmentRevenue: 12100, capex: 13800, inventory: 1010, cogs: 33450, purchaseObligations: 16200, totalDebt: 28200, equity: 292000, depreciation: 3400 },
{ quarter: 'Q1-25', date: '2025-03-31', revenue: 94250, segmentRevenue: 12850, capex: 14900, inventory: 1040, cogs: 34300, purchaseObligations: 17900, totalDebt: 28500, equity: 299000, depreciation: 3550 },
{ quarter: 'Q2-25', date: '2025-06-30', revenue: 96800, segmentRevenue: 13500, capex: 15900, inventory: 1060, cogs: 35100, purchaseObligations: 19500, totalDebt: 28600, equity: 306500, depreciation: 3700 },
{ quarter: 'Q3-25', date: '2025-09-30', revenue: 99600, segmentRevenue: 14150, capex: 17000, inventory: 1080, cogs: 36000, purchaseObligations: 21400, totalDebt: 28800, equity: 314800, depreciation: 3900 },
{ quarter: 'Q4-25', date: '2025-12-31', revenue: 102400, segmentRevenue: 14800, capex: 18200, inventory: 1110, cogs: 36800, purchaseObligations: 23500, totalDebt: 29000, equity: 323500, depreciation: 4100 },
{ quarter: 'Q1-26', date: '2026-03-31', revenue: 105200, segmentRevenue: 15350, capex: 19500, inventory: 1130, cogs: 37700, purchaseObligations: 25200, totalDebt: 29200, equity: 332000, depreciation: 4300 },
{ quarter: 'Q2-26', date: '2026-06-30', revenue: 108100, segmentRevenue: 15900, capex: 21000, inventory: 1160, cogs: 38600, purchaseObligations: 24100, totalDebt: 29500, equity: 341000, depreciation: 4500 }
{ quarter: 'Q3-24', date: '2024-09-30', revenue: 88268, segmentRevenue: 11353, capex: 12980, inventory: 980, cogs: 32610, purchaseObligations: 14800, totalDebt: 28100, equity: 285400, depreciation: 3280, netIncome: 26300, cfo: 28800, cfi: -14000, totalAssets: 410000 },
{ quarter: 'Q4-24', date: '2024-12-31', revenue: 91400, segmentRevenue: 12100, capex: 13800, inventory: 1010, cogs: 33450, purchaseObligations: 16200, totalDebt: 28200, equity: 292000, depreciation: 3400, netIncome: 27200, cfo: 29800, cfi: -15000, totalAssets: 422000 },
{ quarter: 'Q1-25', date: '2025-03-31', revenue: 94250, segmentRevenue: 12850, capex: 14900, inventory: 1040, cogs: 34300, purchaseObligations: 17900, totalDebt: 28500, equity: 299000, depreciation: 3550, netIncome: 28100, cfo: 30800, cfi: -16000, totalAssets: 435000 },
{ quarter: 'Q2-25', date: '2025-06-30', revenue: 96800, segmentRevenue: 13500, capex: 15900, inventory: 1060, cogs: 35100, purchaseObligations: 19500, totalDebt: 28600, equity: 306500, depreciation: 3700, netIncome: 28900, cfo: 31800, cfi: -17000, totalAssets: 448000 },
{ quarter: 'Q3-25', date: '2025-09-30', revenue: 99600, segmentRevenue: 14150, capex: 17000, inventory: 1080, cogs: 36000, purchaseObligations: 21400, totalDebt: 28800, equity: 314800, depreciation: 3900, netIncome: 29700, cfo: 32800, cfi: -18200, totalAssets: 462000 },
{ quarter: 'Q4-25', date: '2025-12-31', revenue: 102400, segmentRevenue: 14800, capex: 18200, inventory: 1110, cogs: 36800, purchaseObligations: 23500, totalDebt: 29000, equity: 323500, depreciation: 4100, netIncome: 30600, cfo: 33800, cfi: -19500, totalAssets: 475000 },
{ quarter: 'Q1-26', date: '2026-03-31', revenue: 105200, segmentRevenue: 15350, capex: 19500, inventory: 1130, cogs: 37700, purchaseObligations: 25200, totalDebt: 29200, equity: 332000, depreciation: 4300, netIncome: 31400, cfo: 34800, cfi: -20800, totalAssets: 488000 },
{ quarter: 'Q2-26', date: '2026-06-30', revenue: 108100, segmentRevenue: 15900, capex: 21000, inventory: 1160, cogs: 38600, purchaseObligations: 24100, totalDebt: 29500, equity: 341000, depreciation: 4500, netIncome: 32300, cfo: 35800, cfi: -22200, totalAssets: 502000 }
]
},
{
ticker: 'META',
quarters: [
{ quarter: 'Q3-24', date: '2024-09-30', revenue: 40589, segmentRevenue: 39860, capex: 9210, inventory: 290, cogs: 7310, purchaseObligations: 9800, totalDebt: 17800, equity: 142100, depreciation: 2790 },
{ quarter: 'Q4-24', date: '2024-12-31', revenue: 42100, segmentRevenue: 41350, capex: 10100, inventory: 300, cogs: 7550, purchaseObligations: 11200, totalDebt: 17900, equity: 146000, depreciation: 2900 },
{ quarter: 'Q1-25', date: '2025-03-31', revenue: 43500, segmentRevenue: 42700, capex: 11100, inventory: 310, cogs: 7800, purchaseObligations: 12800, totalDebt: 18100, equity: 150200, depreciation: 3050 },
{ quarter: 'Q2-25', date: '2025-06-30', revenue: 44900, segmentRevenue: 44050, capex: 12200, inventory: 315, cogs: 8050, purchaseObligations: 14500, totalDebt: 18200, equity: 154800, depreciation: 3200 },
{ quarter: 'Q3-25', date: '2025-09-30', revenue: 46600, segmentRevenue: 45700, capex: 13400, inventory: 320, cogs: 8350, purchaseObligations: 16400, totalDebt: 18400, equity: 159500, depreciation: 3380 },
{ quarter: 'Q4-25', date: '2025-12-31', revenue: 48200, segmentRevenue: 47250, capex: 14700, inventory: 330, cogs: 8600, purchaseObligations: 18500, totalDebt: 18500, equity: 164200, depreciation: 3550 },
{ quarter: 'Q1-26', date: '2026-03-31', revenue: 49700, segmentRevenue: 48700, capex: 16100, inventory: 340, cogs: 8850, purchaseObligations: 20200, totalDebt: 18700, equity: 169500, depreciation: 3750 },
{ quarter: 'Q2-26', date: '2026-06-30', revenue: 51200, segmentRevenue: 50150, capex: 17500, inventory: 350, cogs: 9100, purchaseObligations: 19100, totalDebt: 18900, equity: 175000, depreciation: 3950 }
{ quarter: 'Q3-24', date: '2024-09-30', revenue: 40589, segmentRevenue: 39860, capex: 9210, inventory: 290, cogs: 7310, purchaseObligations: 9800, totalDebt: 17800, equity: 142100, depreciation: 2790, netIncome: 15680, cfo: 17200, cfi: -9800, totalAssets: 265000 },
{ quarter: 'Q4-24', date: '2024-12-31', revenue: 42100, segmentRevenue: 41350, capex: 10100, inventory: 300, cogs: 7550, purchaseObligations: 11200, totalDebt: 17900, equity: 146000, depreciation: 2900, netIncome: 16200, cfo: 17850, cfi: -10700, totalAssets: 272000 },
{ quarter: 'Q1-25', date: '2025-03-31', revenue: 43500, segmentRevenue: 42700, capex: 11100, inventory: 310, cogs: 7800, purchaseObligations: 12800, totalDebt: 18100, equity: 150200, depreciation: 3050, netIncome: 16800, cfo: 18500, cfi: -11800, totalAssets: 280000 },
{ quarter: 'Q2-25', date: '2025-06-30', revenue: 44900, segmentRevenue: 44050, capex: 12200, inventory: 315, cogs: 8050, purchaseObligations: 1450, totalDebt: 18200, equity: 154800, depreciation: 3200, netIncome: 17400, cfo: 19100, cfi: -13000, totalAssets: 288000 },
{ quarter: 'Q3-25', date: '2025-09-30', revenue: 46600, segmentRevenue: 45700, capex: 13400, inventory: 320, cogs: 8350, purchaseObligations: 16400, totalDebt: 18400, equity: 159500, depreciation: 3380, netIncome: 18050, cfo: 19800, cfi: -14200, totalAssets: 298000 },
{ quarter: 'Q4-25', date: '2025-12-31', revenue: 48200, segmentRevenue: 47250, capex: 14700, inventory: 330, cogs: 8600, purchaseObligations: 18500, totalDebt: 18500, equity: 164200, depreciation: 3550, netIncome: 18700, cfo: 20500, cfi: -15500, totalAssets: 308000 },
{ quarter: 'Q1-26', date: '2026-03-31', revenue: 49700, segmentRevenue: 48700, capex: 16100, inventory: 340, cogs: 8850, purchaseObligations: 20200, totalDebt: 18700, equity: 169500, depreciation: 3750, netIncome: 19300, cfo: 21200, cfi: -16800, totalAssets: 318000 },
{ quarter: 'Q2-26', date: '2026-06-30', revenue: 51200, segmentRevenue: 50150, capex: 17500, inventory: 350, cogs: 9100, purchaseObligations: 19100, totalDebt: 18900, equity: 175000, depreciation: 3950, netIncome: 19900, cfo: 21850, cfi: -18200, totalAssets: 330000 }
]
},
{
ticker: 'AMD',
quarters: [
{ quarter: 'Q3-24', date: '2024-09-28', revenue: 6819, segmentRevenue: 3549, capex: 148, inventory: 4490, cogs: 3410, purchaseObligations: 1450, totalDebt: 2480, equity: 55810, depreciation: 142 },
{ quarter: 'Q4-24', date: '2024-12-28', revenue: 7100, segmentRevenue: 3750, capex: 160, inventory: 4620, cogs: 3520, purchaseObligations: 1600, totalDebt: 2480, equity: 56200, depreciation: 148 },
{ quarter: 'Q1-25', date: '2025-03-29', revenue: 7380, segmentRevenue: 3980, capex: 175, inventory: 4750, cogs: 3640, purchaseObligations: 1820, totalDebt: 2500, equity: 56650, depreciation: 155 },
{ quarter: 'Q2-25', date: '2025-06-28', revenue: 7650, segmentRevenue: 4200, capex: 190, inventory: 4830, cogs: 3750, purchaseObligations: 2050, totalDebt: 2510, equity: 57100, depreciation: 162 },
{ quarter: 'Q3-25', date: '2025-09-27', revenue: 7950, segmentRevenue: 4450, capex: 210, inventory: 4920, cogs: 3880, purchaseObligations: 2300, totalDebt: 2520, equity: 57600, depreciation: 170 },
{ quarter: 'Q4-25', date: '2025-12-27', revenue: 8250, segmentRevenue: 4700, capex: 230, inventory: 5010, cogs: 4010, purchaseObligations: 2550, totalDebt: 2540, equity: 58150, depreciation: 178 },
{ quarter: 'Q1-26', date: '2026-03-28', revenue: 8520, segmentRevenue: 4920, capex: 250, inventory: 5120, cogs: 4120, purchaseObligations: 2780, totalDebt: 2550, equity: 58700, depreciation: 185 },
{ quarter: 'Q2-26', date: '2026-06-27', revenue: 8800, segmentRevenue: 5150, capex: 270, inventory: 5250, cogs: 4250, purchaseObligations: 2620, totalDebt: 2570, equity: 59300, depreciation: 192 }
{ quarter: 'Q3-24', date: '2024-09-28', revenue: 6819, segmentRevenue: 3549, capex: 148, inventory: 4490, cogs: 3410, purchaseObligations: 1450, totalDebt: 2480, equity: 55810, depreciation: 142, netIncome: 771, cfo: 1200, cfi: -300, totalAssets: 68000 },
{ quarter: 'Q4-24', date: '2024-12-28', revenue: 7100, segmentRevenue: 3750, capex: 160, inventory: 4620, cogs: 3520, purchaseObligations: 1600, totalDebt: 2480, equity: 56200, depreciation: 148, netIncome: 820, cfo: 1250, cfi: -320, totalAssets: 69200 },
{ quarter: 'Q1-25', date: '2025-03-29', revenue: 7380, segmentRevenue: 3980, capex: 175, inventory: 4750, cogs: 3640, purchaseObligations: 1820, totalDebt: 2500, equity: 56650, depreciation: 155, netIncome: 860, cfo: 1300, cfi: -350, totalAssets: 70500 },
{ quarter: 'Q2-25', date: '2025-06-28', revenue: 7650, segmentRevenue: 4200, capex: 190, inventory: 4830, cogs: 3750, purchaseObligations: 2050, totalDebt: 2510, equity: 57100, depreciation: 162, netIncome: 900, cfo: 1360, cfi: -380, totalAssets: 71800 },
{ quarter: 'Q3-25', date: '2025-09-27', revenue: 7950, segmentRevenue: 4450, capex: 210, inventory: 4920, cogs: 3880, purchaseObligations: 2300, totalDebt: 2520, equity: 57600, depreciation: 170, netIncome: 950, cfo: 1420, cfi: -410, totalAssets: 73200 },
{ quarter: 'Q4-25', date: '2025-12-27', revenue: 8250, segmentRevenue: 4700, capex: 230, inventory: 5010, cogs: 4010, purchaseObligations: 2550, totalDebt: 2540, equity: 58150, depreciation: 178, netIncome: 1000, cfo: 1480, cfi: -440, totalAssets: 74600 },
{ quarter: 'Q1-26', date: '2026-03-28', revenue: 8520, segmentRevenue: 4920, capex: 250, inventory: 5120, cogs: 4120, purchaseObligations: 2780, totalDebt: 2550, equity: 58700, depreciation: 185, netIncome: 1050, cfo: 1540, cfi: -475, totalAssets: 76000 },
{ quarter: 'Q2-26', date: '2026-06-27', revenue: 8800, segmentRevenue: 5150, capex: 270, inventory: 5250, cogs: 4250, purchaseObligations: 2620, totalDebt: 2570, equity: 59300, depreciation: 192, netIncome: 3500, cfo: 500, cfi: -100, totalAssets: 25000 }
]
}
];
@@ -203,6 +207,11 @@ export async function GET() {
const eqVal = bal.totalStockholdersEquity || bal.equity || comp.quarters[i]?.equity || 1000;
const depVal = inc.depreciationAndAmortization || inc.depreciation || comp.quarters[i]?.depreciation || 100;
const netIncVal = inc.netIncome || comp.quarters[i]?.netIncome || 0;
const cfoVal = cf.netCashProvidedByOperatingActivities || cf.operatingCashFlow || comp.quarters[i]?.cfo || 0;
const cfiVal = cf.netCashUsedForInvestingActivites || cf.netCashUsedForInvestingActivities || cf.investingCashFlow || comp.quarters[i]?.cfi || 0;
const assetsVal = bal.totalAssets || comp.quarters[i]?.totalAssets || 1000;
// Segment Revenue Parsing
let segRev = 0;
if (comp.ticker === 'MSFT') {
@@ -244,7 +253,11 @@ export async function GET() {
purchaseObligations: poVal,
totalDebt: Math.round(totDebt / 1000000) || comp.quarters[i]?.totalDebt || 0,
equity: Math.round(eqVal / 1000000) || comp.quarters[i]?.equity || 0,
depreciation: Math.round(depVal / 1000000) || comp.quarters[i]?.depreciation || 0
depreciation: Math.round(depVal / 1000000) || comp.quarters[i]?.depreciation || 0,
netIncome: Math.round(netIncVal / 1000000) || comp.quarters[i]?.netIncome || 0,
cfo: Math.round(cfoVal / 1000000) || comp.quarters[i]?.cfo || 0,
cfi: Math.round(cfiVal / 1000000) || comp.quarters[i]?.cfi || 0,
totalAssets: Math.round(assetsVal / 1000000) || comp.quarters[i]?.totalAssets || 0
});
}
@@ -422,6 +435,34 @@ export async function GET() {
};
});
// 4. Sloan Accrual Radar
const sloanRadar: Record<string, {
currentSloan: number;
currentRegime: 'SAFE' | 'ANOMALY';
data: { quarter: string; accruals: number; sloanRatio: number; regime: 'SAFE' | 'ANOMALY' }[];
}> = {};
companyData.forEach(comp => {
const qData = comp.quarters.map(q => {
const accruals = q.netIncome - (q.cfo + q.cfi);
const sloanRatio = q.totalAssets > 0 ? (accruals / q.totalAssets) * 100 : 0;
const regime = (sloanRatio > 10 || sloanRatio < -10) ? ('ANOMALY' as const) : ('SAFE' as const);
return {
quarter: q.quarter,
accruals: parseFloat(accruals.toFixed(2)),
sloanRatio: parseFloat(sloanRatio.toFixed(2)),
regime
};
});
const len = qData.length;
sloanRadar[comp.ticker] = {
currentSloan: qData[len - 1].sloanRatio,
currentRegime: qData[len - 1].regime,
data: qData
};
});
const payload = {
dates,
liveDataAvailable,
@@ -436,6 +477,10 @@ export async function GET() {
infrastructure: {
name: 'Tech Infrastructure Leverage & Cluster Expansion',
tickers: infrastructureLeverage
},
sloan: {
name: 'Sloan Earnings Quality Accrual Radar',
tickers: sloanRadar
}
}
};