The "aggregate" option provides flexibility in how data is aggregated within the graph, allowing users to modify the visualization to display trends more effectively.
The graph is display with an automatic binning, aggregating depending on zooming level.
When zooming in is possible to see each day with the actual number of new stars on that day:
The trend is generated using Prophet in a separate repo
The data is aggregated by year regardless of the zooming. The value is the daily average per year.
The data is aggregated by month regardless of the zooming. The value is the daily average per month.
The data is aggregated by week regardless of the zooming. The value is the daily average per week.
Some repo like twbs/bootstrap shows a spike at the beginning that is making the rest of the days look flat. It's always possible to manually zoom in, but in that case the normalize option can help.
Normalize options calculates the 98 percentile of all non zero values and replaces all the values above that with it.
Calcualted LOESS regression using https://github.com/HarryStevens/d3-regression?tab=readme-ov-file#regressionLoess
Running average on a fixed 120 day window
Not sure this is really used or just something I tried but this is the running median on a fixed 120 day window
The first-order derivative of a measure represents the rate of change or the slope of the measure's curve at any given point. In other words, it indicates how quickly the new stars are increasing or decreasing atthat point. Since the daily stars are quite noisy the first derivative amplifies that noise, might worth trying to calculate it after smoothing the timeseries.
Second order discrete derivative. Should indicate the acceleration of the new stars, porsitve values mean it is accelerating.