This commit is contained in:
Andras Schmelczer 2026-02-18 21:22:15 +00:00
parent 524580eb25
commit ffe080adef
82 changed files with 2652 additions and 2956 deletions

View file

@ -49,15 +49,30 @@ export default function PriceHistoryChart({ points }: PriceHistoryChartProps) {
if (arr) arr.push(p.price);
else byYear.set(yr, [p.price]);
}
const meds = Array.from(byYear.entries())
const yearlyMedians = Array.from(byYear.entries())
.map(([yr, prices]) => {
prices.sort((a, b) => a - b);
const mid = Math.floor(prices.length / 2);
const median = prices.length % 2 ? prices[mid] : (prices[mid - 1] + prices[mid]) / 2;
return { year: yr + 0.5, price: median };
return { year: yr, price: median };
})
.sort((a, b) => a.year - b.year);
// 3-year rolling average
const meds = yearlyMedians.map((pt, i) => {
let sum = pt.price;
let count = 1;
for (let j = i - 1; j >= 0 && pt.year - yearlyMedians[j].year <= 1; j--) {
sum += yearlyMedians[j].price;
count++;
}
for (let j = i + 1; j < yearlyMedians.length && yearlyMedians[j].year - pt.year <= 1; j++) {
sum += yearlyMedians[j].price;
count++;
}
return { year: pt.year + 0.5, price: sum / count };
});
const ticks = niceTicksForRange(pMin, pMax, 4);
return {