diff --git a/docs/superpowers/plans/2026-08-06-trails.md b/docs/superpowers/plans/2026-08-06-trails.md
index df28480..dbb3f08 100644
--- a/docs/superpowers/plans/2026-08-06-trails.md
+++ b/docs/superpowers/plans/2026-08-06-trails.md
@@ -559,15 +559,32 @@ describe('parseGpx', () => {
expect(r.ascent_m).toBe(65)
})
- it('ignoriert Höhenschwankungen unter 3 m', () => {
- const noisy = `
+ it('erfasst einen gleichmäßigen Anstieg auch in feinen Schritten', () => {
+ // 300 -> 303 in 1-m-Schritten ist kein Rauschen, sondern ein echter
+ // Anstieg von 3 m — nur fein aufgezeichnet. Der Bezugspunkt bleibt
+ // stehen, bis die Schwelle erreicht ist, deshalb wird er erfasst.
+ const fine = `
300
301
302
303
`
- // Lauter 1-m-Schritte: reines GPS-Rauschen, kein echter Anstieg
+ expect(parseGpx(fine).ascent_m).toBe(3)
+ })
+
+ it('ignoriert Rauschen, das um denselben Wert schwankt', () => {
+ // Auf und ab um höchstens 2 m ohne echten Höhengewinn — genau das,
+ // wogegen die Schwelle schützt.
+ const noisy = `
+
+ 300
+ 302
+ 300
+ 301
+ 299
+ 300
+`
expect(parseGpx(noisy).ascent_m).toBe(0)
})