diff --git a/zenno/src/lib/all.ts b/zenno/src/lib/all.ts
index 772088a..0e2c415 100644
--- a/zenno/src/lib/all.ts
+++ b/zenno/src/lib/all.ts
@@ -44,6 +44,11 @@ export const PAGES = {
name: 'Gate Calculator',
description: 'Calculate the importance of acceleration effects at the starting gate.',
},
+ {
+ route: resolve('/race/carryover'),
+ name: 'Carryover Calculator',
+ description: 'Calculate the importance of acceleration and speed carryover at the start of late race.',
+ },
] satisfies Page[],
career: [
{
diff --git a/zenno/src/routes/race/carryover/+page.svelte b/zenno/src/routes/race/carryover/+page.svelte
new file mode 100644
index 0000000..8748ddc
--- /dev/null
+++ b/zenno/src/routes/race/carryover/+page.svelte
@@ -0,0 +1,343 @@
+
+
+
Carryover Calculator
+
+
+{#snippet info(name: string, unit: string, val: number, val2?: number)}
+
+ {#if val2 == null}
+ {val.toFixed(3)} {unit}
+ {:else}
+ {val.toFixed(3)} – {val2.toFixed(3)} {unit}
+ {/if}
+
+{/snippet}
+
+
+ {@render info('Mid-Race Speed', 'm/s', midSpeed[0], midSpeed[1])}
+ {@render info('Base Acceleration', 'm/s²', lateAccel)}
+ {@render info('Spurt Speed', 'm/s', spurtSpeed)}
+
+
+ {@render info('Accel Distance', 'm', distance[1] - phases[race.Phase.MidRace], distance[0] - phases[race.Phase.MidRace])}
+ {@render info('Accel Time', 's', time[1], time[0])}
+ {@render info('Finish Time', 's', finishTime[1], finishTime[0])}
+
+
+ {@render info('Carryover Gain', 'L', carryoverGain[1], carryoverGain[0])}
+ {@render info('Carryover + Accel Gain', 'L', skillGain[1], skillGain[0])}
+
+
+
the chart seems to have didn't
+