From 961c0d62a6a642f06901557bdf2e4d48e5615471 Mon Sep 17 00:00:00 2001 From: MuslemRahimi Date: Wed, 30 Oct 2024 18:45:20 +0100 Subject: [PATCH] update statistics page --- src/lib/components/ScrollToTop.svelte | 54 +++-- .../stocks/[tickerID]/statistics/+page.svelte | 226 +++++++++++++++++- 2 files changed, 259 insertions(+), 21 deletions(-) diff --git a/src/lib/components/ScrollToTop.svelte b/src/lib/components/ScrollToTop.svelte index 7836b5c3..0e9fd09d 100644 --- a/src/lib/components/ScrollToTop.svelte +++ b/src/lib/components/ScrollToTop.svelte @@ -1,32 +1,48 @@ - -
- +
+
diff --git a/src/routes/stocks/[tickerID]/statistics/+page.svelte b/src/routes/stocks/[tickerID]/statistics/+page.svelte index ad96901b..ef7d7335 100644 --- a/src/routes/stocks/[tickerID]/statistics/+page.svelte +++ b/src/routes/stocks/[tickerID]/statistics/+page.svelte @@ -2,10 +2,10 @@ import { numberOfUnreadNotification, displayCompanyName, - screenWidth, stockTicker, } from "$lib/store"; import { abbreviateNumber } from "$lib/utils"; + import ScrollToTop from "$lib/components/ScrollToTop.svelte"; export let data; let rawData = data?.getStatistics ?? {}; @@ -59,7 +59,7 @@
{#if Object?.keys(rawData)?.length !== 0}
+ +
+
+

+ Dividends & Yields +

+

+ {$stockTicker} does not appear to pay any dividends at this time. +

+ + + + + + + + + + + + + + +
Dividend Per Share + {rawData?.annualDividend !== null + ? "$" + rawData?.annualDividend?.toFixed(2) + : "n/a"}
Dividend Yield + {rawData?.dividendYield !== null + ? rawData?.dividendYield + : "n/a"}
Dividend Growth (YoY) + {rawData?.dividendGrowth !== null + ? rawData?.dividendGrowth + "%" + : "n/a"}
Payout Ratio + {rawData?.payoutRatio !== null + ? rawData?.payoutRatio + "%" + : "n/a"}
Earnings Yield + {rawData?.earningsYield !== null + ? rawData?.earningsYield + "%" + : "n/a"}
FCF Yield + {rawData?.freeCashFlowYield !== null + ? rawData?.freeCashFlowYield + "%" + : "n/a"}
+ + Dividend Details + +
+
+

+ Analyst Forecast +

+

+ {#if rawData?.priceTarget && rawData?.upside && rawData?.analystRating} + The average price target for {$stockTicker} is ${rawData?.priceTarget}, + which is {rawData?.upside}% higher than the current price. The + consensus rating is "{rawData?.analystRating}". + {:else} + Currently there are no analyst rating for {$stockTicker}. + {/if} +

+ + + + + + + + + + +
Price Target + {rawData?.priceTarget !== null + ? "$" + rawData?.priceTarget + : "n/a"}
Price Target Difference + {rawData?.upside !== null + ? rawData?.upside + "%" + : "n/a"}
Analyst Consensus + {rawData?.analystRating ?? "n/a"}
Analyst Count + {rawData?.analystCounter ?? "n/a"}
+ + Stock Forecasts + +
+ {#if rawData?.lastStockSplit && rawData?.splitType && rawData?.splitRatio} +
+

+ Stock Splits +

+

+ The last stock split was on {rawData?.lastStockSplit} It was a + {rawData?.splitType} + split with a ratio of {rawData?.splitRatio}. +

+ + + + + + + + +
Last Split Date + {rawData?.lastStockSplit}
Split Type + {rawData?.splitType}
Split Ratio + {rawData?.splitRatio}
+
+ {/if} +
+

Scores

+ + + + + + +
Altman Z-Score + {rawData?.altmanZScore}
Piotroski F-Score + {rawData?.piotroskiScore}
+
+
{:else}

{/if}

+ +