top of page

Primavera Ultra - Performance Analysis

If you recall our post about negative splits in ultra-marathons, you know that based on historical performances in other distances we had a feeling that there is a strong correlation between performance and elevated, yet sustainable steady pace in ultra-marathons. In our view this implies 3 things:

  1. when the pace is too high and is not sustainable, the performance drop is also high and leads to a less than optimal performance,

  2. when the pace is too conservative, there could be performance gain during the race, yet still performance is left on the table,

  3. when the pace is not close to steady, it oscillates between points 1 and 2 and also results in less than optimal performance.

Such statements are really hard to demonstrate as the pace during the race is changing based on a number of factors besides race strategy and competition tactics, like the slope of the track, technicality of it, nutritional and hydration status, environmental factors and possibly even more.

However we did not give up and we said we either demonstrate it or we learn from it.

This is the first analysis of this kind. Please see limitations, conclusions and future work we plan.


When we measure performance, we need to define what performance is. While it is easy to define performance for the race winner, for the rest of the runners is not that straightforward, so we decided to define performance of a runner by comparing its own performance with the mean performance of its peer group. We took as the peer group the ITRA category based on the runner's pre-race ITRA score. This has several implications like the ITRA score may not be fresh or even could be outdated or the runner has trained a lot lately but not raced, so this training is not reflected in updated ITRA scores. For now let's park this topic as it may have less effect when analyzing a larger group especially mid-season.

In order to analyze performance, we could not rely only on runners using Spectro.Life, we needed to incorporate the whole population, so we decided to use our Manual Plan algorithm to reverse engineer the way runners travel the track having only the timing information at known distances and assuming people run with minimal effort variation in-between timing points.

We'll go into more details on this Manual Plan in a different post as it is a very exciting topic on its own, it is the very first of its kind where we used Artificial Intelligence methods to achieve the results.

We decided to run this algorithm and perform the analysis on the Romanian National Ultramarathon Championship 2024 race at Primavera Trail Race Ultra where we've been present on the ground, know most of the competitors and the track as well.

The race tracks is 68.6 Km with 3500 m position elevation gain where 4 sections are particularly technical, 2 sections both climb, downhill and traverse, while the other 2 on the climb only.

The starting list consisted of 6 female runners and 40 male runners. All 6 female runners finished the race while only 27 male runners accomplished the same, leaving 13 male runners DNF.

We've downloaded the results from My-Run, run our reverse-engineering algorithm and despite the low number of observations, we can see a nice normal distribution of the performance drop which is measured in % and represent the finishing pace in GAP (Grade Adjusted Pace) compared to the starting pace also in GAP.

Distribution of performance drop values among the 34 finisheshers of Primavera Trail Race Ultra 2024
Distribution of performance drop values among the 34 finisheshers of Primavera Trail Race Ultra 2024

Initial observations

  1. The mean performance drop is 6.74% and standard deviation is 6.47% (not a typo). This means the average runner had around 7% drop in performance on a track with around 70 Km and 3500 m positive elevation gain. The female winner had a drop of 3.3% and finished in 7:10:48, while the male winner had a drop of 3.6% and finished in 6:09:44.

  2. We can observe that some of the runners managed to do negative-split, there are 5 positive values on the performance drop axis, so the answer whether negative split is possible is a clear yes, but we need to see whether that is optimal as well.

  3. We tried to run the same algorithm for the marathon race as well and received mostly positive performance drop values which is obviously incorrect. We realized there is a big difference between the Ultra and the Marathon race, despite the fact they use mostly the same track and this difference comes from the fact that the Ultra has 2 loops on the first and very technical section of the track which cancels out the effect of this section on the performance drop, while it has a big effect on the Marathon and Cross races as well as those DNF runners' races in the Ultra distance who did not do the 2nd loop. Having a much slower section at the beginning tilts up the overall performance curve even if the next sections have a performance drop but are significantly faster than the first section.

  4. Although the race is quite short and intensive for ultramarathons, 28.2% DNF-ed which is not far from the overall 36% DNF of longer distance ultras described in this video.

  5. For the performance analysis we are not interested in the gender category ranking, but only in the open ranking as our initial analysis is based on ITRA score and ITRA group which is not gender specific. Here are the scratch top 10 results:

Scratch top 10 results - Primavera Trail Race Ultra 2024
Scratch top 10 results - Primavera Trail Race Ultra 2024


  1. Downloaded the male and female results separately with lap times, then calculated the mean speed for each runner on the distance, created the scratch results and combined this with each runner's ITRA score and ITRA category.

  2. Run the Spectro.Life Manual Plan algorithm to reverse engineer the running times each 100 m having only the lap times and timing point distances to determine the performance drop of each runner for the whole race, not just each timing segment.

  3. Calculated the mean speed for each ITRA group and removed the outliers both in terms of individual runners and groups as well. The outliers represent those runners whose result is far from their group result either they had a very bad race or they trained so much that they clearly don't belong to that group anymore. The group outliers are those cases when the group mean speed is lower than the mean speed of the previous group.

  4. Calculated the difference in speed of each individual runner compared to their group mean speed and calculated the time gained or lost compared to the group on the total distance of the track.

  5. Analyzed the time gain or loss versus the performance drop or gain of the runner, fitting a linear regression and a polynomial curve on the relation.

Results and observations

After reverse engineering the timings, we obtained the performance drop for the participants who finished the race.

Performance drop at finish - Primavera Trail Race Ultra 2024
Performance drop at finish - Primavera Trail Race Ultra 2024

Then we calculated the mean speeds and mean finish time of each ITRA group. As you can see, group 725 is an outlier having only 2 participants that did not have their best results. Based on the linear regression, this group should have had 2.5 m/s speed and should have finished in 07:37:31 and even the best result in the group was 17 minutes off while the worst almost 90 minutes off, so we needed to remove this group from results.

Mean speeds and finish time for different ITRA groups during Primavera Trail Race Ultra 2024
Mean speeds and finish time for different ITRA groups during Primavera Trail Race Ultra 2024

We then compared the individual speed of runners to the group mean and removed the outliers from their group. Interestingly only 1 runner fell into the category, he was part of ITRA group 500 and he was running much faster then their group average. No runner had so bad race to consider it an outlier from its own peer group. Possibly the low number of outliers is also due to the reduced population we are analyzing.

With this calculated speed difference we calculated the time gain or loss compared to peer group, and here we saw some very interesting aspects:

  • The higher the performance, the closer is their result to the linear regression (see larger dots with higher opacity)

  • The lower the performance the further their results from the linear regression (see smaller dots with higher transparency) and as we bring in lower performance groups the slope of the regression line is also decreasing

  • This shows the higher performance groups are more reliable in their race results and reliability of results starts to decrease with decrease of the ITRA performance groups

Higher performance groups - The lower the performance drop, the better the result
Higher performance groups - The lower the performance drop, the better the result

When we add the groups below 650 points, we see another very interesting aspect which apparently blows away our theory, but we believe there is much more to this than it may seem from the first look

  • In the 600 points group we observe 4 dots in the upper left corner, which means runners achieved worse results than their peer group even when having small performance drop or even performance gains (negative split). This leads us to believe that below a certain threshold some runners race so conservatively that they leave a lot of performance on the table, possibly not knowing themselves enough or not willing to push themselves to the limit

  • In the same group we see also dots on the bottom center which means runners with even higher than average performance drop they managed to significantly outperform their peer group. This possibly masks the fact that these runners are much better trained and possibly they are not part of this group based on their training, but did not manage to get the results they trained for, due to their high performance drop and they did not show up as outliers in their peer group

  • As we continue to add lower performance groups, interestingly the results are more and more centered, meaning average  but still spread out results, limiting any possible conclusion

Lower performance groups - Apparently no correlation between performance drop and result
Lower performance groups - Apparently no correlation between performance drop and result

Background of results

  • We've been very interested on the background of results and reached out to some runners for comments.

  • Despite pacing themselves very well, the 2 winners did not use any power meters, the male winner however was assisted with lactate measurements and his effort level was slightly adjusted especially at the beginning.

  • We saw some negative splits and two of them were quite relevant, while others as you could read above did not contribute to performance, but rather were a sign of leaving performance on the table. The 2 negative and even splits we are talking about are coming from Silviu-Marian Curuciuc and Corneliu Buliga. None of them used power meters either, yet 1st had 1% performance gain and the 2nd 0.3% performance gain, Silviu managed to get close to Andrei Preda even with 100 ITRA points less which we believe is due to his very good pacing, and due to the big battle in front.

  • Speaking about the big battle in the front, a number of runners tried to follow Valentin Toma in the first part of the race. From the results it seems that this favored Valentin who had a quite comfortable, yet high pace, but this can not be said for the others who lost ground in the 2nd half depending how stretched they were and can be seen by the performance drop numbers.

  • When asking Silviu-Marian Curuciuc what were the key ingredients for racing so well and doing a negative split, he answered:

Knowledge is power and patience is key. I managed to make my way from the 10th place 1st hour to the 4th position at the end
Know your body, know the trail, know your limits, your body needs and expenditures, your strengths, weaknesses and your rivals. 
Before the start I knew pretty well all of the above and then I just had to play the patience card in the first half of the race which usually is very hectic in terms of pacing for most people. For the first 3h I ran a sustain pace that I know would not cost me too much, I took care of my nutrition, hydration and "cooling system". After the 3h mark I started to pay more attention to the completion that was around me and started racing them. Being relatively "fresh", I managed to increase the pace and have a relatively strong finish, although the last downhill was slow because my shoes gave me a few blisters. I will know better next time :)


  • Due to the small number of participants our observations may be wrong and we will continue to repeat this analysis on races with larger number of participants.

  • We can't quantify yet the effect of the first technical section on the result, but we believed it should be minimal due to covering it 2 times and spread out during the race. If this proves wrong, we will need to re-assess these results.

  • The ITRA groups are not the golden standard for measuring performance as the runners' scores may not be fresh. As of now we find this the best reference point though.


We tried to create a method to analyze ultra-running race results, understand and contextualize performance and understand the mechanism to achieve optimal performance that is applicable to both elite and amateur runners.

As a first analysis of its kind, we needed a controlled environment where we also have a quite strong competition, and we were willing to trade on the accuracy of our conclusions due to low number of participants as long as we understand well all the other aspects.

We started with a theory that performance depends on elevated, yet sustainable steady effort and based on this small sample this theory holds for the ITRA groups higher than 650 points.

For ITRA groups lower than 650 points we will need to analyze larger races and even create experiments with control groups to eliminate the aspects we mentioned regarding conservative pacing and mis-matching peer groups.

Future work

  • Our first priority is to try to remove the slowing down effect of certain segments due to technical terrain or environmental aspects or a combination of both to be able to analyze any track and results of those who have completed only part of the track. We call this `Speed Index` and represents how much a particular segment reduces speed for whatever reasons.

  • We will repeat this analysis for races with larger population.

  • We will repeat this analysis mid-season as well when ITRA scores are more stabilized and for races where previous or current year results is mandatory.

  • Will perform analysis on races with different lengths to understand similarities, differences and trends.

  • We will incorporate all this learning into Spectro.Life to help you race better and achieve close to optimal results more consistently.

638 views0 comments

Recent Posts

See All


bottom of page