Grade trends

{#if showSubjectTrends} Overall and per-subject averages · {getTimeRangeLabel(timeRange)} {:else} Average grades over time · {getTimeRangeLabel(timeRange)} {/if}

{#if showPrediction}
{/if}
{#if historicalData.length > 0} {#key `${showPrediction}-${predictionMonths}`} v.toLocaleDateString("en-US", { month: "short", day: timeRange === "7d" ? "numeric" : undefined, }), }, yAxis: { format: (v: number) => `${v.toFixed(0)}%`, }, }} > {#snippet marks({ series, getAreaProps })} {#each series as s, i (s.key)} {@const meta = chartSeries.find((c) => c.key === s.key)} {@const isOverall = meta?.isOverall ?? s.key === "average"} {@const isForecast = s.key === "forecast"} {#if !isForecast} {/if} {/each} {/snippet} {#snippet aboveMarks()} {#if showPrediction && forecastLineData.length > 1} {/if} {/snippet} {#snippet tooltip()} v.toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric", })} indicator="line" /> {/snippet} {/key} {#if showPrediction && !canForecast}

At least 3 graded periods are needed to generate a forecast.

{/if} {:else}
No grade data for this range Complete assessments with released marks to see trends.
{/if}