diff --git a/src/lib/components/FinancialTable.svelte b/src/lib/components/FinancialTable.svelte index d40e9e33..6aa2eb19 100644 --- a/src/lib/components/FinancialTable.svelte +++ b/src/lib/components/FinancialTable.svelte @@ -1,38 +1,8 @@ {#each fields as { label, key }} @@ -44,9 +14,15 @@ {#each data as item} - {item[key] !== null && item[key] !== 0 - ? abbreviateNumber(item[key]) - : "-"} + {#if filterRule === "annual"} + {item[key] !== null && item[key] !== 0 + ? abbreviateNumber((item[key] / 4).toFixed(2)) + : "-"} + {:else} + {item[key] !== null && item[key] !== 0 + ? abbreviateNumber(item[key]?.toFixed(2)) + : "-"} + {/if} {/each} diff --git a/src/routes/stocks/[tickerID]/financials/+layout.svelte b/src/routes/stocks/[tickerID]/financials/+layout.svelte index e7321f3e..8b692b9f 100644 --- a/src/routes/stocks/[tickerID]/financials/+layout.svelte +++ b/src/routes/stocks/[tickerID]/financials/+layout.svelte @@ -45,7 +45,7 @@ } -
+
({ + label: item.label, + key: item.propertyName, + })); function toggleMode() { $coolMode = !$coolMode; } @@ -746,7 +774,7 @@ - +
diff --git a/src/routes/stocks/[tickerID]/financials/balance-sheet/+page.svelte b/src/routes/stocks/[tickerID]/financials/balance-sheet/+page.svelte index e4691093..b59a501c 100644 --- a/src/routes/stocks/[tickerID]/financials/balance-sheet/+page.svelte +++ b/src/routes/stocks/[tickerID]/financials/balance-sheet/+page.svelte @@ -11,6 +11,7 @@ import { abbreviateNumber } from "$lib/utils"; import { goto } from "$app/navigation"; //import * as XLSX from 'xlsx'; + import FinancialTable from "$lib/components/FinancialTable.svelte"; import { init, use } from "echarts/core"; import { LineChart, BarChart } from "echarts/charts"; @@ -206,7 +207,10 @@ }, ]; - let namingList = statementConfig?.map((config) => config?.propertyName) || []; + const fields = statementConfig.map((item) => ({ + label: item.label, + key: item.propertyName, + })); function toggleMode() { $coolMode = !$coolMode; @@ -506,669 +510,359 @@ {statementConfig?.find( (item) => item?.propertyName === displayStatement, )?.text} - - {:else} + {:else if balanceSheet?.length > 0} Get detailed breakdowns of the balance-sheet with total debts, total investments, and much more. + {:else} + No financial data available for {$displayCompanyName} {/if}
- -
+ {#if balanceSheet?.length > 0}
- {#each tabs as item, i} - - {/each} -
-
- -
- + class="bg-[#313131] w-full min-w-24 sm:w-fit relative flex flex-wrap items-center justify-center rounded-md p-1 mt-4" + > + {#each tabs as item, i} + + {/each} +
+
-
- - - - - - - Select time frame - - - - (timeFrame = "5Y")} - class="cursor-pointer hover:bg-[#27272A]" - > - 5 years - - (timeFrame = "10Y")} - class="cursor-pointer hover:bg-[#27272A]" - > - 10 years - - (timeFrame = "MAX")} - class="cursor-pointer hover:bg-[#27272A]" - > - Max - - - - -
- -
- + +
+ {#if $coolMode} + + Cool Mode + + {:else} + + Boring Mode + + {/if} + - {#if $coolMode} -
-
- +
-
- -
+ {#if $coolMode} +
+
+ +
+
-

- {statementConfig?.find( - (item) => item?.propertyName === displayStatement, - )?.label} History -

+
+ +
-
- - - - - - - - - - - {#each tableList as item, index} - - - + {:else} + + {/if} + {/each} + + + + + + +
{filterRule === "annual" - ? "Fiscal Year End" - : "Quarter Ends"}{statementConfig?.find( - (item) => item?.propertyName === displayStatement, - )?.label}ChangeGrowth
+ {statementConfig?.find( + (item) => item?.propertyName === displayStatement, + )?.label} History + + +
+ + + + - {item?.date} - - - - - - - - {/each} - -
{filterRule === "annual" + ? "Fiscal Year End" + : "Quarter Ends"}{statementConfig?.find( + (item) => item?.propertyName === displayStatement, + )?.label} - {abbreviateNumber(item?.value)} - Change - {item?.value - tableList[index + 1]?.value !== 0 - ? abbreviateNumber( - ( - item?.value - tableList[index + 1]?.value - )?.toFixed(2), - ) - : "-"} - Growth - {#if index + 1 - tableList?.length === 0} - - - {:else if item?.value === 0 && tableList[index + 1]?.value < 0} - -100.00% - {:else if item?.value === 0 && tableList[index + 1]?.value > 0} - 100.00% - {:else if item?.value - tableList[index + 1]?.value > 0} - - {( - ((item?.value - tableList[index + 1]?.value) / - Math.abs(item?.value)) * - 100 - )?.toFixed(2)}% - - {:else if item?.value - tableList[index + 1]?.value < 0} - - -{( - Math?.abs( - (tableList[index + 1]?.value - item?.value) / - Math.abs(item?.value), - ) * 100 - )?.toFixed(2)}% - - {:else} - - - {/if} -
-
- {:else} -
- - - - - {#each balanceSheet as balance} - {#if filterRule === "annual"} + + + {#each tableList as item, index} + + - {:else} + - {/if} + + + + + {/each} - - - - - - - {#each balanceSheet as balance} - +
Year
- {"FY" + balance?.calendarYear?.slice(-2)} + {item?.date} - {"FY" + - balance?.calendarYear?.slice(-2) + - " " + - balance?.period} + {abbreviateNumber(item?.value)} + {item?.value - tableList[index + 1]?.value !== 0 + ? abbreviateNumber( + ( + item?.value - tableList[index + 1]?.value + )?.toFixed(2), + ) + : "-"} + + {#if index + 1 - tableList?.length === 0} + - + {:else if item?.value === 0 && tableList[index + 1]?.value < 0} + -100.00% + {:else if item?.value === 0 && tableList[index + 1]?.value > 0} + 100.00% + {:else if item?.value - tableList[index + 1]?.value > 0} + + {( + ((item?.value - tableList[index + 1]?.value) / + Math.abs(item?.value)) * + 100 + )?.toFixed(2)}% + + {:else if item?.value - tableList[index + 1]?.value < 0} + + -{( + Math?.abs( + (tableList[index + 1]?.value - + item?.value) / + Math.abs(item?.value), + ) * 100 + )?.toFixed(2)}% + + {:else} + - + {/if} +
Cash & Equivalents - {abbreviateNumber( - balance?.cashAndCashEquivalents, - )}
+
+ {:else} +
+ + + + - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - - {#each balanceSheet as balance} - - {/each} - - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - - - {#each balanceSheet as balance} - - {/each} - - -
Year
Short-Term Investments - {abbreviateNumber(balance?.shortTermInvestments)}
Long-Term Investments - {abbreviateNumber(balance?.longTermInvestments)}
Other Long-Term Assets - {abbreviateNumber(balance?.otherNonCurrentAssets)}
Receivables - {abbreviateNumber(balance?.netReceivables)}
Inventory - {abbreviateNumber(balance?.inventory)}
Other Current Assets - {abbreviateNumber(balance?.otherCurrentAssets)}
Total Current Assets - {abbreviateNumber(balance?.totalCurrentAssets)}
Property, Plant & Equipment - {abbreviateNumber( - balance?.propertyPlantEquipmentNet, - )}
Goodwill & Intangibles - {abbreviateNumber( - balance?.goodwillAndIntangibleAssets, - )}
Total Long-Term Assets - {abbreviateNumber(balance?.totalNonCurrentAssets)}
Total Assets - {abbreviateNumber(balance?.totalAssets)}
Account Payables - {abbreviateNumber(balance?.accountPayables)}
Deferred Revenue - {abbreviateNumber(balance?.deferredRevenue)}
Short-Term Debt - {abbreviateNumber(balance?.shortTermDebt)}
Other Current Liabilities - {abbreviateNumber( - balance?.otherCurrentLiabilities, - )}
Total Current Liabilities - {abbreviateNumber( - balance?.totalCurrentLiabilities, - )}
Long-Term Debt - {abbreviateNumber(balance?.longTermDebt)}
Other Long-Term Liabilities - {abbreviateNumber( - balance?.otherNonCurrentLiabilities, - )}
Total Long-Term Liabilities - {abbreviateNumber( - balance?.totalNonCurrentLiabilities, - )}
Total Liabilities - {abbreviateNumber(balance?.totalLiabilities)}
Total Debt - {abbreviateNumber(balance?.totalDebt)}
Common Stock - {abbreviateNumber(balance?.commonStock)}
Retained Earnings - {abbreviateNumber(balance?.retainedEarnings)}
Comprehensive Income - {abbreviateNumber( - balance?.accumulatedOtherComprehensiveIncomeLoss, - )}
Shareholders' Equity - {abbreviateNumber( - balance?.totalStockholdersEquity, - )}
Total Investments - {abbreviateNumber(balance?.totalInvestments)}
-
+ {#each balanceSheet as cash} + {#if filterRule === "annual"} +
+ {"FY" + cash?.calendarYear?.slice(-2)} + + {"FY" + + cash?.calendarYear?.slice(-2) + + " " + + cash?.period} +
+
+ {/if} {/if} diff --git a/src/routes/stocks/[tickerID]/financials/cash-flow/+page.svelte b/src/routes/stocks/[tickerID]/financials/cash-flow/+page.svelte index 1b80dc3a..a93bdf09 100644 --- a/src/routes/stocks/[tickerID]/financials/cash-flow/+page.svelte +++ b/src/routes/stocks/[tickerID]/financials/cash-flow/+page.svelte @@ -15,6 +15,8 @@ import { LineChart, BarChart } from "echarts/charts"; import { GridComponent, TooltipComponent } from "echarts/components"; import { CanvasRenderer } from "echarts/renderers"; + import FinancialTable from "$lib/components/FinancialTable.svelte"; + use([LineChart, BarChart, GridComponent, TooltipComponent, CanvasRenderer]); export let data; @@ -168,6 +170,11 @@ }, ]; + const fields = statementConfig.map((item) => ({ + label: item.label, + key: item.propertyName, + })); + function toggleMode() { $coolMode = !$coolMode; } @@ -447,586 +454,347 @@ {statementConfig?.find( (item) => item?.propertyName === displayStatement, )?.text} - - {:else} + {:else if cashFlow?.length > 0} Get detailed ratio statement breakdowns, uncovering price to free cash flow ratio, price per earnings, and much more. + {:else} + No financial data available for {$displayCompanyName} {/if} - -
+ {#if cashFlow?.length > 0}
- {#each tabs as item, i} - - {/each} -
-
- -
- + class="bg-[#313131] w-full min-w-24 sm:w-fit relative flex flex-wrap items-center justify-center rounded-md p-1 mt-4" + > + {#each tabs as item, i} + + {/each} +
+
-
- - - - - - - Select time frame - - - - (timeFrame = "5Y")} - class="cursor-pointer hover:bg-[#27272A]" - > - 5 years - - (timeFrame = "10Y")} - class="cursor-pointer hover:bg-[#27272A]" - > - 10 years - - (timeFrame = "MAX")} - class="cursor-pointer hover:bg-[#27272A]" - > - Max - - - - -
- -
- + +
+ {#if $coolMode} + + Cool Mode + + {:else} + + Boring Mode + + {/if} + - {#if $coolMode} -
-
- +
-
- -
+ {#if $coolMode} +
+
+ +
+
-
- - - - - - - - - - - {#each tableList as item, index} - - - +
+ +
- + {:else} + + {/if} + {/each} + + + + + + +
{filterRule === "annual" - ? "Fiscal Year End" - : "Quarter Ends"}{statementConfig?.find( - (item) => item?.propertyName === displayStatement, - )?.label}ChangeGrowth
- {item?.date} - + + + + - {abbreviateNumber(item?.value)} - - - - - - {#if index + 1 - tableList?.length === 0} - - - {:else if item?.value === 0 && tableList[index + 1]?.value < 0} - -100.00% - {:else if item?.value === 0 && tableList[index + 1]?.value > 0} - 100.00% - {:else if item?.value - tableList[index + 1]?.value > 0} - - {( - ((item?.value - tableList[index + 1]?.value) / - Math.abs(item?.value)) * - 100 - )?.toFixed(2)}% - - {:else if item?.value - tableList[index + 1]?.value < 0} - - -{( - Math?.abs( - (tableList[index + 1]?.value - item?.value) / - Math.abs(item?.value), - ) * 100 - )?.toFixed(2)}% - - {:else} - - - {/if} - - {/each} - -
{filterRule === "annual" + ? "Fiscal Year End" + : "Quarter Ends"}{statementConfig?.find( + (item) => item?.propertyName === displayStatement, + )?.label} - {item?.value - tableList[index + 1]?.value !== 0 - ? abbreviateNumber( - ( - item?.value - tableList[index + 1]?.value - )?.toFixed(2), - ) - : "-"} - Change + Growth
- - {:else} -
- - - - - {#each cashFlow as cash} - {#if filterRule === "annual"} + + + {#each tableList as item, index} + + - {:else} + - {/if} + + + + + {/each} - - - - - - - {#each cashFlow as cash} - +
Year
- {"FY" + cash?.calendarYear?.slice(-2)} + {item?.date} - {"FY" + - cash?.calendarYear?.slice(-2) + - " " + - cash?.period} + {abbreviateNumber(item?.value)} + {item?.value - tableList[index + 1]?.value !== 0 + ? abbreviateNumber( + ( + item?.value - tableList[index + 1]?.value + )?.toFixed(2), + ) + : "-"} + + {#if index + 1 - tableList?.length === 0} + - + {:else if item?.value === 0 && tableList[index + 1]?.value < 0} + -100.00% + {:else if item?.value === 0 && tableList[index + 1]?.value > 0} + 100.00% + {:else if item?.value - tableList[index + 1]?.value > 0} + + {( + ((item?.value - tableList[index + 1]?.value) / + Math.abs(item?.value)) * + 100 + )?.toFixed(2)}% + + {:else if item?.value - tableList[index + 1]?.value < 0} + + -{( + Math?.abs( + (tableList[index + 1]?.value - + item?.value) / + Math.abs(item?.value), + ) * 100 + )?.toFixed(2)}% + + {:else} + - + {/if} +
Net Income - {abbreviateNumber(cash?.netIncome)}
+
+ {:else} +
+ + + + - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - - {#each cashFlow as cash} - - {/each} - - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - - - {#each cashFlow as cash} - - {/each} - - -
Year
Depreciation & Amortization - {abbreviateNumber( - cash?.depreciationAndAmortization, - )}
Stock-Based Compensation - {abbreviateNumber(cash?.stockBasedCompensation)}
Other Working Capital - {abbreviateNumber(cash?.otherWorkingCapital)}
Other Non-Cash Items - {abbreviateNumber(cash?.otherNonCashItems)}
Deferred Income Tax - {abbreviateNumber(cash?.deferredIncomeTax)}
Change in Working Capital - {abbreviateNumber(cash?.changeInWorkingCapital)}
Operating Cash Flow - {abbreviateNumber( - cash?.netCashProvidedByOperatingActivities, - )}
Capital Expenditures - {abbreviateNumber(cash?.capitalExpenditure)}
Acquisitions - {abbreviateNumber(cash?.acquisitionsNet)}
Purchase of Investments - {abbreviateNumber(cash?.purchasesOfInvestments)}
Sales Maturities Of Investments - {abbreviateNumber( - cash?.salesMaturitiesOfInvestments, - )}
Other Investing Acitivies - {abbreviateNumber(cash?.otherInvestingActivites)}
Investing Cash Flow - {abbreviateNumber( - cash?.netCashUsedForInvestingActivites, - )}
Debt Repayment - {abbreviateNumber(cash?.debtRepayment)}
Common Stock Repurchased - {abbreviateNumber(cash?.commonStockRepurchased)}
Dividend Paid - {abbreviateNumber(cash?.dividendsPaid)}
Other Financial Acitivies - {abbreviateNumber(cash?.otherFinancingActivites)}
Financial Cash Flow - {abbreviateNumber( - cash?.netCashUsedProvidedByFinancingActivities, - )}
Net Cash Flow - {abbreviateNumber(cash?.netChangeInCash)}
Free Cash Flow - {abbreviateNumber(cash?.freeCashFlow)}
-
+ {#each cashFlow as cash} + {#if filterRule === "annual"} +
+ {"FY" + cash?.calendarYear?.slice(-2)} + + {"FY" + + cash?.calendarYear?.slice(-2) + + " " + + cash?.period} +
+
+ {/if} {/if} diff --git a/src/routes/stocks/[tickerID]/financials/ratios/+page.svelte b/src/routes/stocks/[tickerID]/financials/ratios/+page.svelte index 0ef29f1c..466765d1 100644 --- a/src/routes/stocks/[tickerID]/financials/ratios/+page.svelte +++ b/src/routes/stocks/[tickerID]/financials/ratios/+page.svelte @@ -15,6 +15,8 @@ import { LineChart, BarChart } from "echarts/charts"; import { GridComponent, TooltipComponent } from "echarts/components"; import { CanvasRenderer } from "echarts/renderers"; + import FinancialTable from "$lib/components/FinancialTable.svelte"; + use([LineChart, BarChart, GridComponent, TooltipComponent, CanvasRenderer]); export let data; @@ -132,6 +134,11 @@ }, ]; + const fields = statementConfig.map((item) => ({ + label: item.label, + key: item.propertyName, + })); + function toggleMode() { $coolMode = !$coolMode; } @@ -411,555 +418,331 @@ {statementConfig?.find( (item) => item?.propertyName === displayStatement, )?.text} - - {:else} + {:else if ratios?.length > 0} Get detailed income statement breakdowns, uncovering revenue, expenses, and much more. + {:else} + No financial data available for {$displayCompanyName} {/if} - -
+ {#if ratios?.length > 0}
- {#each tabs as item, i} - - {/each} -
-
- -
- + class="bg-[#313131] w-full min-w-24 sm:w-fit relative flex flex-wrap items-center justify-center rounded-md p-1 mt-4" + > + {#each tabs as item, i} + + {/each} +
+
-
- - - - - - - Select time frame - - - - (timeFrame = "5Y")} - class="cursor-pointer hover:bg-[#27272A]" - > - 5 years - - (timeFrame = "10Y")} - class="cursor-pointer hover:bg-[#27272A]" - > - 10 years - - (timeFrame = "MAX")} - class="cursor-pointer hover:bg-[#27272A]" - > - Max - - - - -
- -
- + +
+ {#if $coolMode} + + Cool Mode + + {:else} + + Boring Mode + + {/if} + - {#if $coolMode} -
-
- +
-
- -
+ {#if $coolMode} +
+
+ +
+
-
- - - - - - - - - - - {#each tableList as item, index} - - - +
+ +
- +
{filterRule === "annual" - ? "Fiscal Year End" - : "Quarter Ends"}{statementConfig?.find( - (item) => item?.propertyName === displayStatement, - )?.label}ChangeGrowth
- {item?.date} - + + + + - {abbreviateNumber(item?.value)} - - - - - - {#if index + 1 - tableList?.length === 0} - - - {:else if item?.value === 0 && tableList[index + 1]?.value < 0} - -100.00% - {:else if item?.value === 0 && tableList[index + 1]?.value > 0} - 100.00% - {:else if item?.value - tableList[index + 1]?.value > 0} - - {( - ((item?.value - tableList[index + 1]?.value) / - Math.abs(item?.value)) * - 100 - )?.toFixed(2)}% - - {:else if item?.value - tableList[index + 1]?.value < 0} - - -{( - Math?.abs( - (tableList[index + 1]?.value - item?.value) / - Math.abs(item?.value), - ) * 100 - )?.toFixed(2)}% - - {:else} - - - {/if} - - {/each} - -
{filterRule === "annual" + ? "Fiscal Year End" + : "Quarter Ends"}{statementConfig?.find( + (item) => item?.propertyName === displayStatement, + )?.label} - {item?.value - tableList[index + 1]?.value !== 0 - ? abbreviateNumber( - ( - item?.value - tableList[index + 1]?.value - )?.toFixed(2), - ) - : "-"} - Change + Growth
- - {:else} -
- - - - - {#each ratios as item} - {#if filterRule === "annual"} + + + {#each tableList as item, index} + + - {:else} + - {/if} + + + + + {/each} - - - - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - - {#each ratios as item} - - {/each} - - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - - - {#each ratios as item} - - {/each} - - -
Year
- {"FY" + item?.calendarYear?.slice(-2)} + {item?.date} - {"FY" + - item?.calendarYear?.slice(-2) + - " " + - item?.period} + {abbreviateNumber(item?.value)} + {item?.value - tableList[index + 1]?.value !== 0 + ? abbreviateNumber( + ( + item?.value - tableList[index + 1]?.value + )?.toFixed(2), + ) + : "-"} + + {#if index + 1 - tableList?.length === 0} + - + {:else if item?.value === 0 && tableList[index + 1]?.value < 0} + -100.00% + {:else if item?.value === 0 && tableList[index + 1]?.value > 0} + 100.00% + {:else if item?.value - tableList[index + 1]?.value > 0} + + {( + ((item?.value - tableList[index + 1]?.value) / + Math.abs(item?.value)) * + 100 + )?.toFixed(2)}% + + {:else if item?.value - tableList[index + 1]?.value < 0} + + -{( + Math?.abs( + (tableList[index + 1]?.value - + item?.value) / + Math.abs(item?.value), + ) * 100 + )?.toFixed(2)}% + + {:else} + - + {/if} +
PE Ratio - {filterRule === "annual" - ? (item?.priceEarningsRatio / 4)?.toFixed(2) - : item?.priceEarningsRatio?.toFixed(2)} -
PS Ratio - {filterRule === "annual" - ? (item?.priceToSalesRatio / 4)?.toFixed(2) - : item?.priceToSalesRatio?.toFixed(2)} -
PB Ratio - {filterRule === "annual" - ? (item?.priceToBookRatio / 4)?.toFixed(2) - : item?.priceToBookRatio?.toFixed(2)} -
P/FCF Ratio - {filterRule === "annual" - ? (item?.priceToFreeCashFlowsRatio / 4)?.toFixed(2) - : item?.priceToFreeCashFlowsRatio?.toFixed(2)} -
P/OCF Ratio - {filterRule === "annual" - ? ( - item?.priceToOperatingCashFlowsRatio / 4 - )?.toFixed(2) - : item?.priceToOperatingCashFlowsRatio?.toFixed(2)} -
OCF/S Ratio - {filterRule === "annual" - ? (item?.operatingCashFlowSalesRatio / 4)?.toFixed( - 2, - ) - : item?.operatingCashFlowSalesRatio?.toFixed(2)} -
Debt / Equity Ratio - {filterRule === "annual" - ? (item?.debtEquityRatio / 4)?.toFixed(2) - : item?.debtEquityRatio?.toFixed(2)} -
Quick Ratio - {filterRule === "annual" - ? (item?.quickRatio / 4)?.toFixed(2) - : item?.quickRatio?.toFixed(2)} -
Current Ratio - {filterRule === "annual" - ? (item?.currentRatio / 4)?.toFixed(2) - : item?.currentRatio?.toFixed(2)} -
Asset Turnover - {item?.assetTurnover?.toFixed(2)} -
Interest Coverage - {filterRule === "annual" - ? (item?.interestCoverage / 4)?.toFixed(2) - : item?.interestCoverage?.toFixed(2)} -
Return on Equity (ROE) - {(item?.returnOnEquity * 100)?.toFixed(2)}% -
Return on Assets (ROA){(item?.returnOnAssets * 100)?.toFixed(2)}%
Return on Capital (ROIC) - {(item?.returnOnCapitalEmployed * 100)?.toFixed( - 2, - )}%
Dividend Yield - {(item?.dividendYield * 100)?.toFixed(2)}%
Payout Ratio - {filterRule === "annual" - ? ((item?.payoutRatio / 4) * 100)?.toFixed(2) - : (item?.payoutRatio * 100)?.toFixed(2)}% -
Gross Profit Margin - {filterRule === "annual" - ? ((item?.grossProfitMargin / 4) * 100)?.toFixed(2) - : (item?.grossProfitMargin * 100)?.toFixed(2)}% -
Net Profit Margin - {filterRule === "annual" - ? ((item?.netProfitMargin / 4) * 100)?.toFixed(2) - : (item?.netProfitMargin * 100)?.toFixed(2)}% -
-
+
+
+ {:else} +
+ + + + + {#each ratios as item} + {#if filterRule === "annual"} + + {:else} + + {/if} + {/each} + + + + + + +
Year + {"FY" + item?.calendarYear?.slice(-2)} + + {"FY" + + item?.calendarYear?.slice(-2) + + " " + + item?.period} +
+
+ {/if} {/if}