Progress isn’t linear

There’s light at the end of the tunnel

Marco Altini
24 min readNov 5, 2022


This post is a case study about my personal data. I wasn’t blessed with much athletic talent, but I am really passionate about running and data science, which has motivated me to build HRV4Training, a platform to measure and interpret physiological data. Over the years, I did make a bit of progress, and I hope this write-up of my learnings will be useful to some of you. Thank you for reading.

For questions or feedback, please reach me on Twitter @altini_marco

After more than 5 years since the previous one, a long-awaited half-marathon PR

Since my last training-related blog back in 2016 (link here), a few things have changed. I got injured many times. I spent months without running each time. I carried some of the injuries with me for years. I also got about 6 years older.

Not the ideal ingredients for new personal bests.

Sometimes during the pandemic, I started accepting my new normal, being able to run but not to train hard. As humans, we are really good at making the most of our current situation, whatever that is, and for me, it was totally fine to just run (well, it still is). Given that I could run, and only intensity would break me or bring more niggles, I started building towards longer distances, running 50 or 60 km by myself in training, and targeting a 100 km race.

Eventually, I had a rough race in the heat and ended up in a hospital with massive cramps in May 2022. This forced break triggered some self-reflection and renewed interest in trying to get back into a different type of training and shape.

Below is a write-up of how I trained, managed intensity and load, and how I tracked progress over the following 6 months, which led to my fastest half marathon (raced in 1 hour 21 minutes and 42 seconds — for context, it took me 2 hours and 8 minutes at my first try, 12 years before) and marathon (finished in 3 hours and 2 minutes, a 15 minutes PR almost 6 years later).

Time for a slightly different approach

I’ve been running for about 13 years, but only 5–6 years training properly, and only the last 3 without injuries. Preparing the 100 km del Passatore I had pushed quite a bit my training volume, neglecting intensity due to many persistent niggles. Between January and May, I was running about 135 km / week (~85 miles / week), over 6 days.

In the first week of June, as I started running again after ending up at the hospital during the 100 km del Passatore, I implemented a few changes that I was aiming at keeping up for the next several months, in an attempt to try to change my running trajectory and get back where I was 5 years earlier:

  • more focus on diet: during the last few years I had gained some weight. Not much, but still, I wasn’t at what I’d consider my racing weight. The ultramarathon made things worse as I let my diet slip a bit with the added volume. This is not an easy topic, but given that the goal was still the long distance, and that I am a very inefficient runner, I wanted to lose some weight to give myself a better chance. I had done this before, so I was in familiar territory.
  • more frequent high-intensity training (i.e. anything above VT1, depending on the goal). From my training history, I know I can get a lot quicker at any distance with the right mix of intensity and volume, but I had not been able to keep the intensity up in a while. I was committed to giving it another shot, with some possible adjustments.
  • maintaining volume, but not at the expense of quality. During the preparation for Passatore, I was obsessed with volume. Probably a naive mistake of first-timers at such a long distance. I now still wanted to keep up a decent volume, as I know I benefit from it, but without sacrificing the intensity. It was clear at this point that just running more easy miles wasn’t working for me, and that more isn’t always better (a hard concept to get behind at times). Fitness before volume.
  • more frequent short racing: I wanted to add a good high-intensity stimulus, as well as to get more adjusted to racing (at least mentally), without this becoming a disruption. Hence, I started adding a race to my calendar every month, typically a short one. I ended up racing a few Parkruns in Amsterdam (5k), where I volunteer, a 10 km in Barcelona, and a few other small events in Italy and The Netherlands.

Please note that here I’m just documenting my personal experience, and not recommending to anyone to do the same. Most of what follows is something I had already done before (both in terms of aggressively dieting, and in terms of training hard), hence I was navigating a somewhat know path, possibly pushing it a bit further.

What I didn’t change

A few words also about what I did not change during this training block.

Prioritize training: there’s always a lot of extra to do for each one of us. It makes little sense to postpone training because I have to e.g. work, or do another endless task. Training is time-constrained. Once I have done it, there are typically another 20–23 hours in the day. Hence, training has a very high priority in my day.

Training frequency: I kept running only 6 days per week no matter how great I felt. I think this is really what has kept me injury-free more than anything. Given the muscular issues I have (see later), combined with a tendency to overdo things, forcing myself not to run one day per week is probably the best thing I’ve ever done for my long-term training health. So much for technology.

Training execution: it took me forever to understand that training is not racing and that digging really deep each workout is a recipe for disaster. I go hard in my workouts, but always finish feeling like there is something left. I think in the past I pushed myself in a way that resulted in being less consistent and also possibly injured (due to running form breaking down when training that way). I pay more attention to this now.

Other forms of training: I maintained some level of strength training and plyometrics. In general, I think that as long as they don’t compromise training, there might be more to gain than to lose by doing these. I do plyometrics the same day I do hard workouts, so that I do not have to sacrifice other days (it takes me up to 2 days to recover from a couple of jumps and split squats, apparently). Whenever possible, I try tun trails and hills at least 2–3 times per week, I find that this makes me stronger, breaking the monotony of the impact on flat asphalt, which often leads to overuse injuries for me. The day of the week I do not run, I tried to go for rides if the weather was decent enough (I do not think this has any impact on my performance, but it keeps me mentally healthier).

The (training) plan

I often like to say that using heart rate variability (HRV) to guide training is pointless unless you have a plan. Hence I gave quite some thought to my training plan before embarking on this journey. Eventually, my training plan was quite simple and derived from a combination of what science and coaches out there have thought us, individualized based on what are my physical limitations.

In particular, as I am quite limited from a muscular standpoint (routinely experiencing anything from week-long soreness after a single hard session to massive cramps at every long run that is not below VT1), I know that I need to focus on one thing at the time (or in other words, I am often not able to run more than one or two hard sessions per week or ten-day cicle). Hence, I prefer block periodization (i.e. you focus on one aspect to improve, e.g. VO2max, then move to the next, e.g. lactate threshold, instead of targeting multiple aspects at the same time).

I added a twist to my block periodization, due to another limitation I have: I consume a lot of energy, or in other words, I am extremely inefficient (not only while running, but also at rest), which might also explain some of the muscular issues I experience. This means my VO2max is quite high for my athletic abilities, and I can train and race anything up to 20–25 km performing as expected, but when I enter marathon territory, there is an enormous gap between race pace and e.g. half marathon pace. Running a bit faster will feel easy for about 25–28 km, and then very quickly result in massive cramps and the end of my race. What are the implications? This means that when I run at marathon pace (what I call steady-state), I run pretty slow even for my standards. In training, I think this does not translate into a particularly useful training stimulus, apart from possibly improving my efficiency at that pace (which is indeed the reason why I do train at that intensity during my long runs). Hence, to keep my fitness up or to avoid getting slower and slower in a long block of steady-state training only (done that), I combined threshold and steady-state in the second block of my periodization, to try to increase my odds of being able to run an okay marathon, while keeping fitness up with hard, long threshold intervals (e.g. 2–4 times 2–5000m between 10 km and half-marathon pace).

That’s all. Two blocks, one to get fast, and one to extend my ability to maintain that speed for longer:

  • VO2max block: June-August
  • Threshold and steady-state: September-October

This is quite a standard periodization, that gets more specific as you get closer to the race.

VO2max block: June-August

Later I will go into more detail about my training intensity distributions for external load (speed) and internal load (heart rate), as well as show tools that I use to track progress. Here, I just want to briefly mention the main sessions that would constitute a VO2max block for me.

The goal is to get back into running faster, and to get there, I normally do sessions of short intervals, and tend to do similar sessions over several weeks, for example, 3 minutes hard, 2 minutes easy (6–8 times), or 90 seconds hard, 90 seconds easy (8–12 times). If I have access to a track, I would do a set of 400m (e.g. 8–12 with 400m recovery), or 800m (6–8 with 400m recovery).

Since I was coming from a period of very high volume training, I also kept running long, but very slow, quite frequently, to maintain that ability. Below you can see an example month, in which in blue you see the hard sessions (short intervals). In this phase, my training is quite polarized in the traditional sense, with limited or no moderate intensity, something that will change in the next training block. You can also see a few long runs, often the day after hard intervals, since I am doing these runs at a very easy pace, often on trails. This will also change when long runs start including intensity and requiring easy days before and after.

I was able to do about 12 sessions of hard intervals and a few short races over 2 months and a half , which is a decent density for me (much better than the previous months, in which I had almost neglected entirely high intensity).

Below you can see how my pace improves quite dramatically between June and August for one of the most frequent sessions (3 minutes hard, 2 minutes easy):

Later I’ll provide more details on the intervals analysis tool, which is part of HRV4Training Pro and makes it easy to keep track of progress for this type of training.

Threshold and steady-state: September-October

In the threshold and steady-state block, I started increasing the duration of the intervals. In this phase, sessions are a bit less frequent as they become harder to recover from, and typically I do not repeat the same session but I keep increasing the stimulus, e.g. making them longer. For example, I started with 4 x 2000m, then 4 x 3000m, then a 10 km race, then 3 x 5000m, then the half marathon race.

Next to these sessions, I would add (whenever I felt ready) a long tempo run, for example, 10 km just slower than my aerobic threshold, then 25 km tempo (what I call steady-state, or marathon pace). These are hard sessions but not as hard as they sound because of the running efficiency issue mentioned above: my tempo is quite a bit slower than it is for another runner of similar abilities over shorter distances.

Below is an example month of my threshold and steady-state block, where you can see the longer, hard sessions (in blue) and long runs with moderate intensity (in yellow).

With this block, I aimed at extending my ability to run faster for longer, as well as tried to get used to running at marathon pace. I’ve also practiced fueling for the marathon, and increasing the number of gels and sodium I take, in an attempt to delay my typical issues over the distance.

Eventually, it worked.

Training log

My training log should be almost entirely available here: (minus a few warmups and cooldowns).

Managing the plan

Needless to say, I try to pay attention to my body.

My approach to training has evolved a lot with the work I’ve been doing with HRV4Training as well as the injuries I have experienced, becoming more and more flexible over time. During these entire 6 months, I did have a plan, but the plan was very generic and very flexible. The way I plan is the following: looking at the next several weeks or months, I think about a few sessions that I’d like to do based on the adaptations I’m seeking. Then, as the days go by, I let my body decide when I can do those specific sessions, and fill the remaining days with as much easy running as I can sustain, without compromising the key sessions. Note that when I say easy, I mean easy (55–65% of maximal heart rate).


What does it mean that I let my body decide? I mostly use feel and data to decide, with feel typically coming first.

Some words about heart rate variability (HRV) as this is the work I’ve been doing for about a decade. For me, HRV over the years had three roles:

  1. fine-tune feel: we can get better at understanding our body and using subjective feel for guidance, by using data. Our awareness will improve as we start paying more attention and use e.g. HRV as an objective marker of physiological stress. The same applies to using heart rate during exercise, something I discussed more extensively here.
  2. backup feel: when feel and HRV agree, you have fewer doubts about the action plan. If I don’t feel good and the data shows a suppression in HRV, I know it’s not a good day for a hard session. Similarly, if they both show positive trends, I gain confidence that I am responding well to my training plan. When they do not agree, it is an even more useful exercise in self-awareness and self-reflection. My recommendation in these cases is not to overthink an acute suppression if you feel good, but to pay attention when the suppression in HRV is lasting more than one day: in that case, your body is trying to tell you something.
  3. manage non-training related stress: we all experience non-training related stressors (work, travel, sickness, etc.). All of these stressors have great implications in terms of what we can do in training and can be better managed with some objective feedback.

Using HRV should not be about blind guidance, or trusting the data over ourselves, but it should be helping us fine-tune our self-awareness, or understand when something is off, sometimes accepting that we might need to change plans, even for longer than we’d like, to avoid chronic negative responses (e.g. burnout, overtraining, etc.).

When using HRV, we need to start with a plan, a plan that includes adequate recovery post-hard sessions, depending on the recovery abilities of the athlete. We can then use HRV to determine when it is a good time to load again as well as to gain additional insights into our positive and negative responses to training stress. Finally, HRV data can be valuable to manage non-training related stress (anything from sickness to traveling, psychological stressors, etc.), something we all experience and that has great implications in terms of our ability to train and perform.

If you are new to HRV, you can learn more in my guide here.

Below is my HRV data over the 3 months prior to the marathon PR, and the two days after. The data is characterized by good stability, with a few major events:

  • food poisoning ↓↓↓ : a large, acute suppression due to sickness.
  • heat response ↓↓ : a few days of suppressed data at the beginning of September, right after the day of sickness. This suppression is due to moving to a warmer climate, and dealing with the heat. Environmental factors such as temperature, humidity and altitude have a great impact on our physiology and ability to perform. HRV becomes a useful tool in this context too, as we can capture the individual response (or adaptation) as we spend time in this new environment.
  • positive response to high load, cooler weather ↑↑ : contrary to common belief, HRV is not supposed to reduce with increased load. When responding positively to the stimulus, we expect a stable or increasing HRV.
  • taper ↓ : tapering, also contrary to common belief, does not typically result in increased HRV, for a number of reasons that I discuss in more detail here.
  • post-race sickness ↓↓ : a sustained suppression as I caught a cold.
  • life stress (travel, talks) ↓↓: a series of trips to give talks for different organizations, combined with the last few hard sessions of this training block, caused various suppressions (and a feeling of exhaustion), just a few days before the marathon, when I finally rested for 2–3 days.

The events are all annotated on the image above, which is a screenshot of HRV4Training Pro, including also my training load data over the same period. While I have mostly annotated suppressions, overall the data looks really good, better than in most of my previous years. I believe this is mostly due to prioritizing my amplifiers: spending time in places where I feel in my element and spending time with loved ones. Taking care of the basics (food, sleep, nature, movement, sunshine, and time off work). This process has not been easy but I’m slowly finding my way and my balance.

All the HRV data shown above was collected first thing in the morning using HRV4Training, camera measurement, for 60 seconds while sitting (after a visit to the bathroom when necessary).

You do not need anything else to track how your body is responding to whatever stressors you are facing.

Tracking progress

Over the years, mostly because of frustration with what was available out there, I’ve built different tools to help runners track progress with their training. In particular, it should be clear by now that we are unable to track progress effectively using training load analysis tools (e.g. chronic training load based on TRIMP or TSS, or any other metric), and that we need to look at progress from different angles, and with different tools.

Here are three tools that I’ve built and that I find useful in different ways, which I will explain below:

  • Interval analysis: I use this to compare different sessions, especially in the VO2max block, when I often do the same short sessions. While we don’t expect progress each session, over a few weeks or months, thing should trend in a clear direction.
  • lactate threshold estimation (LT2, or critical pace/speed): I keep track of this estimate throughout my training, as it is also indicative of what I can race in shorter distances, or what I should aim at in terms of intervals speed. This is a prediction model we built to estimate running performance based on workouts data on the previous 4–6 weeks.
  • aerobic efficiency: I use this in the very long term (3–6 months) to see if there are any meaningful changes in internal load with respect to external load, removing confounders (i.e. answering the question: is it getting easier to run faster?)

Intervals analysis

HRV4Training’s Intervals Analysis tool makes it very easy to compare sessions. To use this tool, you need HRV4Training Pro + Strava, so that your laps will be logged automatically, and you just need to select the duration of the hard and recovery phases. More info here.

Here we can see progress for a session I’ve done a few times, 90" hard followed by 90" easy. Previously I had shown a similar one for another session I did plenty of time during the VO2max block, 3' hard, 2' easy. These are also sessions that I try to keep doing once in a while throughout the year, as maintenance.

As mentioned above, while we don’t expect progress each session, over a few weeks or months, thing should trend in a clear direction, which is indeed the case. Training is working.

Lactate threshold estimation (or critical pace)

Another tool I built to track progress is what we call lactate threshold estimation in HRV4Training (here I refer to the second threshold, or the intensity you should be able to hold for 10–15 km).

This is in fact a running performance estimation model, that you could think of in terms of critical speed or pace. Check this blog for more details on how we built this model.

In practical terms, the model uses your workouts data, hard sessions, and short races, to estimate your 10 km running time, and convert it to a pace. We can see in the graph below that the threshold estimate keeps improving (pace gets lower, which means higher speed) in the months between September and October. This way I can get an estimate of our performance and use it as a guide for intervals or racing, without having to do any specific test.

Aerobic efficiency

Aerobic efficiency relates to your ability to sustain a given workload. Good endurance athletes tend to have high aerobic efficiency, meaning that they can sustain a relatively high workload (for example pace or power), at a relatively low effort (typically measured in terms of heart rate).

To determine your aerobic efficiency you can compute the relation between output (pace or power) and input (heart rate). Intuitively, a lower heart rate for the same output (pace or power), when consistently shown over periods of weeks, translates into better aerobic endurance.

Similarly, a higher power or faster pace at the same heart rate is linked to improved aerobic efficiency. By analyzing the relationship between input and output for running or cycling activities, you can easily track aerobic efficiency changes over time, as you progress with your training. This analysis is meaningful only over a long timeframe, as fitness changes are slow, and acute changes (e.g. an abrupt reduction in exercise heart rate), typically signal fatigue, more than fitness.

Below is an example of my own data. You can see how aerobic efficiency improves as I progress with training for a few months. This analysis shows me that not only hard sessions, but also my regular, easy running, is getting better.

More info about aerobic efficiency, here.

Combining these three analyses, it is quite clear that my performance is improving from different points of view: running faster over shorter intervals, running faster at threshold, and improving my aerobic efficiency during easy running.

Note that when looking at training load, none of this is visible. Training load is fairly constant, and even a lot lower than it was when training for the ultra (and being slower). Training load analysis can be helpful to manage load, but does not track progress in any way unless you run more, which might not be what you need to get faster.

Training intensity distribution

The basic principles of training are quite simple: train hard at a frequency that you can manage, and train easy the remaining of the time, at a volume that you can manage. This is what I call polarized, as opposed to the typical “always moderate intensity” of recreational runners. I’m aware this is a topic people like to over-analyze, but it is really that simple for me. The hard training can be any intensity, just above LT1/VT1, or very hard, depending on what I am trying to achieve.

Below you can see the training intensity distribution for the two training blocks in my periodization. As you can see, they are quite different:

  • during the VO2max block (top), there is more low-intensity training, and the high-intensity training is harder (heart rate reaches higher values). The goal here is to get faster.
  • during the lactate threshold and steady-state block (bottom), there is a similar amount of low-intensity training, sometimes even lower, likely because the hard training is now larger in volume. You can see the heart rate distribution is not reaching as high values, but is higher in terms of the peak, meaning I spend more time in non-easy training zones. The goal here is to extend the amount of time I can run faster and also possibly get more efficient at marathon pace.

We can look at the same data but for pace, instead of heart rate. Both internal and external load matter, and will behave very differently under certain conditions (e.g. during a long run in the heat, my pace might be lowering, while my heart rate might be increasing).

Here we can see that during the VO2max block my training is more polarized (in the traditional sense of “avoiding” moderate intensity), while in the second phase, the steady state work is all in that moderate intensity, and there is plenty of it, since I am doing most of my long runs at this pace. You can also see that threshold work is much closer to VO2max than it is to steady state for me, due to my very low running efficiency.

I think it can be valuable to look at training intensity distribution by training phase, as things change quite a bit between these two blocks.

Marathon intensity

The marathon probably deserves a separate section when it comes to managing intensity. In my experience, probably biased by my issues (i.e. terrible cramps already after 26–28 km), I found it necessary to rely on heart rate for this distance. While I run my workouts and shorter races only relying on perceived exertion (and then “holding the pace” in the latter part), I do find heart rate data quite essential to manage my pace (and cramps) in a marathon.

As such, I started looking at my data to determine what could be a sustainable intensity, separating successful long runs and marathons, and not-so-successful ones (the “imploded” category below includes races where I cramped really bad already before 30 km, resulting in quite a miserable day).

Looking at the data above with respect to the “outcome” shows a clear picture, internal load (heart rate) doesn’t lie and clearly separates outcomes. This means that a slightly higher heart rate always resulted in poor outcomes, and therefore, heart rate becomes a key parameter to manage for me.

From the graph above, we can derive that aiming for 85% of my maximal heart rate or ~159 bpm for the first half of the race seems a safe strategy. However, given the bimodal distribution (clear two peaks, separated by a gap), I thought there was some room for a slightly higher (but well-controlled) effort, and therefore decided to flirt with implosion and run at 86% of my maximal heart rate. Below you can see the actual marathon in light blue, placed perfectly between the two groups of prior efforts:

Heart rate here matters more than any other signal because this is the hardest my body can work for this distance (in different environments and for different fitness levels, with some caveats). External load (speed or ‘power’) cannot capture any of this.

Eventually, I did cramp at about 38 km, which is as good as it gets for me (when not careful in managing heart rate, I would get them at 26–28 km), and I was really happy with a 3h 02', and fifteen minutes PR.

In this specific case, given the workout I had run the prior week, I knew I was very close to 3h pace, and therefore I thought it was worth the risk.

it does hurt, but it’s worth it.


One more reminder that this blog is just about my experience, and is in no way advice or something you should be following, especially this part.

Back in 2016, when I stepped up my training and performance, I had also dieted aggressively beforehand, losing about 10 kg (22 pound). Over the years, and then while preparing for the 100 km del Passatore, I had gained some of that weight back, and I figured I needed to lose it again if I wanted to give myself a better chance to run a faster marathon, especially considering my low running efficiency.

I mostly eat a Mediterranean diet, as I was fortunate to be born where this is the norm. To lose weight, I stopped snacking entirely and started eating only three times per day, breakfast at 6-7am, lunch at noon (after training), then dinner at 7pm. For lunch, I have mostly salads with stuff (beans, fish, avocados, eggs, nuts, cheese, potatoes, etc.). For dinner, normally I eat more vegetables, and then meat, fish or legumes. I normally have pasta once per week, same for pizza. Otherwise, very little or no ultra-processed foods outside of breakfast. I do have a large breakfast as I am often hungry from the caloric deficit of the previous day. I try not to eat any crap, unless I’m on a long run (or it’s breakfast!).

Following this process, I lost again about 10.5 kg or 23 pound, eventually going quite a bit lower than I was when I thought I was in my best shape (which was 67–68 kg).

Given the caloric deficit that lasted for a few months, and the simultaneous hard training, I tried to fuel my training more. If I was hungry or just a bit down, I would eat more during training, and eat the same during the day. In my experience, training makes it easier to understand quickly if I am undereating, as I’d notice right away when not feeling good during a run, and then I could correct the course (i.e. eat more). This worked for me as I was able to perform consistently better, and lose weight. My guess is that my high metabolism, something I pay the price for during a marathon, helps me a lot in weight management: it is very easy for me to lose weight quickly. I’d probably rather choose to be able to run a decent marathon, but we play the cards we are dealt.

Above is a before / after pic, on the left side, just before the 100 km del Passatore, I was 75 kg (165 pounds), for a BMI of 23.7. On the right end side, just before the Vila-Seca Half Marathon, I was 64.5 kg (142 pounds), for a BMI of 20.4.

In the last months, I have been more or less stable, and went a bit lower at times, but felt like I was getting sluggish and not performing well. I believe that my optimal is probably around 65 kg, with lower weight bringing more downsides than upsides.

Dieting is a complex topic, please seek the advice of a professional if you’d like to make changes in your diet, weight, or training. Do not copy random people online.


In the tracking progress section, we’ve seen how interval sessions got faster and faster over time, or how my predicted lactate threshold (or critical pace) improved over time, similarly to my aerobic efficiency.

In terms of resting physiology, heart rate dropped quite a bit, and HRV increased, possibly due also to the large change in body weight, and the additional intensity added to an already decent aerobic base.

These are all good indications, but racing will eventually make it cristal clear how far I got in these 6 months. Between June and October I was able to extend what was 5 km race pace, to half marathon race pace (~3'54"/km), eventually running my half-marathon and marathon PRs.

Despite feeling strong in the months leading to the race, running 1h 21' for the half and holding 3h pace for the marathon for almost the entire race, was beyond my expectations, especially considering that I hadn’t been able to even run less than 1h 30' for the half in over 5 years.

For me, this is good enough.


It took a while to learn what works for me in terms of training, rest, and diet, as well as at becoming better at managing other stressors that have an impact on my ability to positively absorb training stress, and perform.

I certainly did not expect a 5-year break from racing PRs (nor I expected at this point to be able to break any PR anymore!).

Yet, progress isn’t linear.

Endurance exercise remains one of those activities where latecomers like most of us recreational athletes can improve after many years due to slow adaptations, as well as a better understanding of the training process, and of our own individual needs.

Keep enjoying your training, with or without PRs.

I hope you have found this blog useful, take it easy.

Marco holds a PhD cum laude in applied machine learning, a M.Sc. cum laude in computer science engineering, and a M.Sc. cum laude in human movement sciences and high-performance coaching.

He has published more than 50 papers and patents at the intersection between physiology, health, technology, and human performance.

Marco is the founder of HRV4Training, a data science advisor at Oura, an Editor at IEEE Pervasive Computing (Wearables), and a guest lecturer at VU Amsterdam.

He loves running.

Twitter: @altini_marco

New to HRV4Training?



Marco Altini

Founder, Data Science @ouraring Lecturer @VUamsterdam. PhD in Machine Learning, 2x MSc: Sport Science, Computer Science Engineering. Runner