From 9da74ed0a1b4a5b1bc59def78a5ac847088fcfef Mon Sep 17 00:00:00 2001 From: MuslemRahimi Date: Fri, 3 Jan 2025 13:42:29 +0100 Subject: [PATCH] update business metrics --- .../stocks/[tickerID]/metrics/+page.svelte | 93 ++++++++++++++++++- 1 file changed, 91 insertions(+), 2 deletions(-) diff --git a/src/routes/stocks/[tickerID]/metrics/+page.svelte b/src/routes/stocks/[tickerID]/metrics/+page.svelte index 271fa76a..7092cc15 100644 --- a/src/routes/stocks/[tickerID]/metrics/+page.svelte +++ b/src/routes/stocks/[tickerID]/metrics/+page.svelte @@ -25,15 +25,20 @@ }), ); const dataset = data?.getBusinessMetrics?.revenue?.history || []; - const geographicDataset = data?.getBusinessMetrics?.geographic?.history || []; + const operatingExpensesDataset = + data?.getBusinessMetrics?.operatingExpenses?.history || []; const revenueNames = data?.getBusinessMetrics?.revenue?.names || []; - const geographicNames = data?.getBusinessMetrics?.geographic?.names || []; + const operatingExpensesNames = + data?.getBusinessMetrics?.operatingExpenses?.names || []; const xData = dataset?.map((item) => item?.date); const geographicXData = geographicDataset?.map((item) => item?.date); + const operatingExpensesXData = operatingExpensesDataset?.map( + (item) => item?.date, + ); const categoryValues = revenueNames?.map((_, index) => dataset?.map((item) => item.value[index]), @@ -41,6 +46,9 @@ const geographiCategoryValues = geographicNames?.map((_, index) => geographicDataset?.map((item) => item.value[index]), ); + const operatingExpensesCategoryValues = operatingExpensesNames?.map( + (_, index) => operatingExpensesDataset?.map((item) => item.value[index]), + ); const growthValues = revenueNames?.map((_, index) => dataset?.map((item) => item.valueGrowth[index]), @@ -48,6 +56,10 @@ const geographicGrowthValues = geographicNames?.map((_, index) => geographicDataset?.map((item) => item.valueGrowth[index]), ); + const operatingExpensesGrowthValues = operatingExpensesNames?.map( + (_, index) => + operatingExpensesDataset?.map((item) => item.valueGrowth[index]), + ); function getHref(title) { const key = title?.toLowerCase().replace(/ & /g, "-").replace(/ /g, "-"); @@ -248,6 +260,83 @@ {/if} + + {#if operatingExpensesNames?.length !== 0} +

+ Operating Expense Breakdown +

+ +
+ + + + + {#each operatingExpensesXData as item} + + {/each} + + + + {#each operatingExpensesNames as name, index} + + + {#each operatingExpensesCategoryValues[index] as value} + + {/each} + + + + {#each operatingExpensesGrowthValues[index] as growthValue} + + {/each} + + {/each} + +
Quarter{new Date(item ?? null)?.toLocaleString("en-US", { + month: "short", + day: "numeric", + year: "numeric", + })}
{name} Revenue + {@html value !== null && + value !== 0 && + value !== undefined + ? abbreviateNumber(value, false, true) + : "n/a"} +
+ {name} Revenue Growth + + {growthValue > 0 ? "+" : ""}{growthValue !== null && + growthValue !== 0 && + growthValue !== undefined + ? growthValue?.toFixed(2) + "%" + : "n/a"} +
+
+ {/if} {:else}