| 02-11 | 1 | | Norwegian National Championships CX U19 (CN) | |
| 03-10 | DNF | | UEC Road European Championships U19 (CC) | 103.0km |
| | | Keizer der Juniores (2.1) |
| 21-09 | 32 | 115 | Stage 2Wulpen - Wulpen (6.0km) | 6.0km |
| 21-09 | 100 | 98 | Stage 3Koksijde - Koksijde (99.0km) | 99.0km |
| 20-09 | 116 | 116 | Stage 1Pittem - Pittem (111.0km) | 111.0km |
| | | Grand Prix Rüebliland (2.1) |
| 26 | | Klassement |
| 27 | | Punten |
| 20 | | Berg |
| 11 | | Jongeren |
| 07-09 | 31 | 26 | Stage 3Altishofen - Altishofen (110.0km) | 110.0km |
| 06-09 | 14 | 22 | Stage 2Kaisten - Kaisten (88.0km) | 88.0km |
| 05-09 | 27 | 27 | Stage 1Sulz - Sulz (102.0km) | 102.0km |
| | | Aubel-Thimister-Stavelot (2.1) |
| 09-08 | 7 | 21 | Stage 2aThimister - Thimister (9.0km) | 9.0km |
| 08-08 | 5 | 5 | Stage 1Aubel - Aubel (98.0km) | 98.0km |
| | | Ain Bugey Valromey Tour (2.1) |
| 76 | | Klassement |
| 34 | | Punten |
| 22 | | Jongeren |
| 14-07 | 122 | 76 | Stage 5Artemare - Yenne (98.0km) | 98.0km |
| 13-07 | 68 | 61 | Stage 4Ceyzérieu - Belley (107.0km) | 107.0km |
| 12-07 | 109 | 71 | Stage 3Hauteville - Col de la Biche (99.0km) | 99.0km |
| 11-07 | 10 | 33 | Stage 2Morestel - Serrières-de-Briord (96.0km) | 96.0km |
| 10-07 | 55 | 55 | Stage 1Torcieu - Morestel (96.0km) | 96.0km |
| 28-06 | 2 | | National Road Championships - Norway U19 (CN) | 140.0km |
| 26-06 | 2 | | National Road Championships - Norway TT U19 (CN) | |
| | | LVM Saarland Trofeo (2.NCUP) |
| 21 | | Klassement |
| 18 | | Punten |
| 3 | | Berg |
| 8 | | Jongeren |
| 22-06 | 20 | 21 | Stage 4Peppenkum - Peppenkum (122.0km) | 122.0km |
| 21-06 | 25 | 25 | Stage 3bBallweiler - Ballweiler (106.0km) | 106.0km |
| 21-06 | 38 | 28 | Stage 3aAltheim - Altheim (12.0km) | 12.0km |
| 20-06 | 37 | 37 | Stage 2Sarreguemines - Rohrbach-lès-Bitche (119.0km) | 119.0km |
| 19-06 | 49 | 49 | Stage 1Elversberg - Elversberg (127.0km) | 127.0km |
| | | G.P. F.W.R. BARON - Pieve del Grappa - Possagno (2.NCUP) |
| 31 | | Klassement |
| 8 | | Jongeren |
| 08-06 | 31 | 31 | Stage 2Fonte - San Liberale (103.0km) | 103.0km |
| 07-06 | 44 | 44 | Stage 1aLovadina - Lovadina (2.0km) | 2.0km |
| 07-06 | 56 | 41 | Stage 1bSan Zenone Degli Ezzelini - San Zenone Degli Ezzelini (117.0km) | 117.0km |
| | | Course de la Paix Juniors (2.NCUP) |
| 51 | | Klassement |
| 14 | | Jongeren |
| 11-05 | 36 | 51 | Stage 4Terezín - Terezín (102.0km) | 102.0km |
| 10-05 | 58 | 52 | Stage 3Teplice - Olbernhau (112.0km) | 112.0km |
| 09-05 | 15 | 18 | Stage 2aTrebivlice - Trebivlice (8.0km) | 8.0km |
| 09-05 | 135 | 18 | Stage 2bRoudnice - Terezín (58.0km) | 58.0km |
| 08-05 | 64 | 67 | Stage 1Litomerice - Úštěk (109.0km) | 109.0km |
| 26-04 | 11 | | Polestar Soon Bikedays U19 (1) | |
| 13-04 | 93 | | Paris-Roubaix Juniors (1.NCUP) | 110.0km |
| | | Tour du Bocage et de l'Ernée 53 (2.1) |
| 30-03 | 4 | 4 | Stage 2aAmbrières-les-Vallées - Ambrières-les-Vallées (13.0km) | 13.0km |
| 30-03 | 8 | 5 | Stage 2bAmbrières-les-Vallées - Ambrières-les-Vallées (105.0km) | 105.0km |
| 29-03 | 16 | 16 | Stage 1Montenay - Montenay (118.0km) | 118.0km |
| | | Guido Reybrouck Classic (2.1) |
| 13 | | Klassement |
| 2 | | Jongeren |
| 23-03 | 50 | 13 | Stage 2Damme - Damme (121.0km) | 121.0km |
| 22-03 | 13 | 13 | Stage 1Damme - Damme (11.0km) | 11.0km |
| 15-03 | DNF | | Danilith Nokere Koerse MJ (1.1) | 134.0km |