How to Pick Food (Fuel) For Ultramarathon Running

I’ve previously written about ultrarunning preparation and a little bit about how I approach fueling. But it occurred to me there might be others out there wondering exactly HOW to find fuel that works for them, because it’s an iterative process.

The way I approach fueling is based on a couple of variables.

First and foremost, everything has to be gluten free (because I have celiac). So that limits a lot of the common ultrarunning fuel options. Things like bars (some are GF, most are not), Uncrustables, PopTarts, and many other common recommendations in the ultra community just aren’t an option for me. Some, I can find or make alternatives to, but it’s worth noting that being gluten free for celiac (where cross-contamination is also an issue, not just the ingredients) or having a food allergy and being an ultrarunner can make things more challenging.

Then, I also have exocrine pancreatic insufficiency. This doesn’t limit what I eat, but it factors in to how I approach ideal fueling options, because I have to match the enzyme amounts to the amount of food I’m eating. So naturally, the pill size options I have of OTC enzymes (one is lipase only and covers ~6g of fat for me, the other is a multi-enzyme option that includes protease to cover protein, and only enough lipase to cover ~4g of fat for me; I also have one much larger that covers ~15g of fat but I don’t typically use this one while running) influence the portion sizes of what I choose.

That being said, I probably – despite EPI – still tend toward higher fat options than most people. This is in part because I have had type 1 diabetes for 20+ years. While I by no means consume a low c-a-r-b diet, I typically consume less than the people with insulin-producing pancreases in my life, and lean slightly toward higher fat options because a) my taste buds like them and b) they’ve historically had less impact on my glucose levels. Reason A is probably the main reason now, thanks to automated insulin delivery, but regardless of reason, 20+ years of a higher level than most people’s fat consumption means I’m also probably better fat-adapted for exercise than most people.

Plus, ultrarunning tends to be slower than shorter runs (like marathons and shorter for most people), so that’s also more amenable to fat and other nutrient digestion. So, ultrarunners in general tend to have more options in terms of not just needing “gu” and “gel” and “blocks” and calorie-sugar drinks as fuel options (although if that is what you prefer and works well for you, great!).

All of these reasons lead me toward generally preferring fuel portions that are:

  1. Gluten free with no cross-contamination risk
  2. ~20g of carbs
  3. ~10g of fat or less
  4. ~5-10g of protein or less

Overall, I shoot for consuming ~250 calories per hour. Some people like to measure hourly fuel consumption by calories. Others prefer carb consumption. But given that I have a higher tolerance for fat and protein consumption – thanks to the enzymes I need for EPI plus decades of practice – calories as a metric for hourly consumption makes sense for me. If I went for the level of carb intake many recommend for ultrarunners, I’d find it harder to consistently manage glucose levels while running for a zillion hours. I by no means think any of my above numbers are necessarily what’s best for anyone else, but that’s what I use based on my experiences to date as a rough outline of what to shoot for.

After I’ve thought through my requirements: gluten free, 250 calories per hour, and preferably no single serving portion size that is greater than 20ish grams of carbs or 10g of fat or 5-10g or protein, I can move on to making a list of foods I like and that I think would “work” for ultrarunning.

“Work” by my definition is not too messy to carry or eat (won’t melt easily, won’t require holding in my hands to eat and get them messy).

My initial list has included (everything here gluten free):

  • Oreos or similar sandwich type cookies
  • Yogurt/chocolate covered pretzels
  • PB or other filled pretzel nuggets
  • Chili cheese Fritos
  • Beef sticks
  • PB M&M’s
  • Reese’s Pieces
  • Snickers
  • Mini PayDays
  • Macaroons
  • Muffins
  • Fruit snacks
  • Fruit/date bars
  • GF (only specific flavors are GF which is why I’m noting this) of Honey Stinger Stroopwaffles

I wish I could include more chip/savory options on my lists, and that’s something I’ve been working on. Fritos are easy enough to eat from a snack size baggie without having to touch them with my hands or pull individual chips out to eat; I can just pour portions into my mouth. Most other chips, though, are too big and too ‘sharp’ feeling for my mouth to eat this way, so chili cheese Fritos are my primary savory option, other than beef sticks (that are surprisingly moist and easy to swallow on the run!).

Some of the foods I’ve tried from the above list and have eventually taken OFF my list include:

  • PB pretzel nuggets, because they get stale in baggies pretty fast and then they feel dry and obnoxious to chew and swallow.
  • Muffins – I tried both banana muffin halves and chocolate chip muffin halves. While they’re moist and delicious straight out of the oven, I found they are challenging to swallow while running (probably because they’re more dry).
  • Gluten free Oreos – actual Oreo brand GF Oreos, which I got burnt out on about the time I realized I had EPI, but also they too have a pretty dry mouthfeel. I’ve tried other brand chocolate sandwich cookies and also for some reason find them challenging to swallow. I did try a vanilla sandwich cookie (Glutino brand) recently and that is working better – the cookie is harder but doesn’t taste as dry – so that’s tentatively on my list as a replacement.

Other than “do I like this food” and “does it work for carrying on runs”, I then move on to “optimizing” my intake in terms of macronutrients.  Ideally, each portion size and item has SOME fat, protein, and carbs, but not TOO MUCH fat, protein and carbs.

Most of my snacks are some fat, a little more carb, and a tiny bit of protein. The outlier is my beef sticks, which are the highest protein option out of my shelf-stable running fuel options (7g of fat, 8g of protein). Most of the others are typically 1-3g of protein, 5-10g of fat (perfect, because that is 1-2 enzyme OTC pills), and 10-20g of carb (ideal, because it’s a manageable amount for glucose levels at any one time).

Sometimes, I add things to my list based on the above criteria (gluten free with no cross-contamination list; I like to eat it; not messy to carry) and work out a possible serving size. For example, the other day I was brainstorming more fuel options and it occurred to me that I like brownies and a piece of brownie in a baggie would probably be moist and nice tasting and would be fine in a baggie. I planned to make a batch of brownies and calculated how I would cut them to get consistent portion sizes (so I would know the macronutrients for enzymes).

However, once I made my brownies, and started to cut them, I immediately went “nope” and scratched them off my list for using on runs. Mainly because, I hate cutting them and they crumbled. The idea of having to perfect how to cook them to be able to cut them without them crumbling just seems like too much work. So I scratched them off my list, and am just enjoying eating the brownies as brownies at home, not during runs!

I first started taking these snacks on runs and testing each one, making sure that they tasted good and also worked well for me (digestion-wise) during exercise, not just when I was sitting around. All of them, other than the ones listed above for ‘dry’ reasons or things like brownies (crossed off because of the hassle to prepare), have stayed on the list.

I also started looking at the total amount of calories I was consuming during training runs, to see how close I was to my goal of ~250 calories per hour. It’s not an exact number and a hard and fast “must have”, but given that I’m a slower runner (who run/walks, so I have lower calorie burn than most ultrarunners), I typically burn in the ballpark of ~300-400 calories per hour. I generally assume ~350 calories for a reasonable average. (Note, again, this is much lower than most people’s burn, but it’s roughly my burn rate and I’m trying to show the process itself of how I make decisions about fuel).

Aiming for ~250 calories per hour means that I only have a deficit of 100 calories per hour. Over the course of a ~100 mile race that might take 30 hours, this means I’ll “only” have an estimated deficit of 3,000 calories. Which is a lot less than most people’s estimated deficit, both because I have a lower burn rate (I’m slower) and because, as described above and below, I am trying to be very strategic about fueling for a number of reasons, including not ending up under fueling for energy purposes. For shorter runs, like a 6 hour run, that means I only end up ~600 calories in deficit – which is relatively easy to make up with consumption before and after the run, to make sure that I’m staying on top of my energy needs.

It turns out, some of my preferred snacks are a lot lower and higher calories than each other! And this can add up.

For example, fruit snacks – super easy to chew (or swallow without much chewing). 20g of carb, 0g of fat or protein, and only 80 calories. Another easy to quickly chew and swallow option: a mini date (fruit) bar. 13g carb, 5g fat, 2 protein. And…90 calories. My beef stick? 7g of fat, 8g of protein, and only 100 calories!

My approach that works for me has been to eat every 30 minutes, which means twice per hour. Those are three of my favorite (because they’re easy to consume) fuel options. If I eat two of those in the same hour, say fruit snacks and the date bar, that’s only 170 calories. Well below the goal of 250 for the hour! Combining either with my beef stick (so 180 or 190 calories, depending), is still well below goal.

This is why I have my macronutrient fuel library with carbs, fat, protein, *and* calories (and sodium, more on that below) filled out, so I can keep an eye on patterns of what I tend to prefer by default – which is often more of these smaller, fewer calorie options as I get tired at the end of the runs, when it’s even more important to make sure I’m at (or near) my calorie goals.

Tracking this for each training run has been really helpful, so I can see my default tendency to choose “smaller” and “easier to swallow” – but that also means likely fewer calories – options. This is also teaching me that I need to pair larger calorie options with them or follow on with a larger calorie option. For example, I have certain items on my list like Snickers. I get the “share size” bars that are actually 2 individual bars, and open them up and put one in each baggie. ½ of the share size package (aka 1 bar) is 220 calories! That’s a lot (relative to other options), so if I eat a <100 calorie option like fruit snacks or a date bar, I try to make it in the same hour as the above average option, like the ½ snickers. 220+80 is 300 calories, which means it’s above goal for the hour.

And that works well for me. Sometimes I do have hours where I am slightly below goal – say 240 calories. That’s fine! It’s not precise. But 250 calories per hour as a goal seems to work well as a general baseline, and I know that if I have several hours of at or greater than 250 calories, one smaller hour (200-250) is not a big deal. But this tracking and reviewing my data during the run via my tracking spreadsheet helps make sure I don’t get on a slippery slope to not consuming enough fuel to match the demands I’m putting on my body.

And the same goes for sodium. I have read a lot of literature on sodium consumption and/or supplementation in ultrarunning. Most of the science suggests it may not matter in terms of sodium concentration in the blood and/or muscle cramps, which is why a lot of people choose sodium supplementation. But for me, I have a very clear, distinct feeling when I get not enough sodium. It is almost like a chemical feeling in my chest, and is a cousin (but distinct) feeling to feeling ketones. I’ve had it happen before on long hikes where I drank tons to stay hydrated and kept my glucose levels in range but didn’t eat snacks with sodium nor supplement my water. I’ve also had it happen on runs. So for me, I do typically need sodium supplementation because that chemical-like feeling builds up and starts to make me feel like I’m wheezing in my chest (although my lungs are fine and have no issues during this). And what I found works for me is targeting around 500mg/hour of sodium consumption, through a combination of electrolyte pills and food.

(Side note, most ultrarunning blogs I’ve read suggest you’ll be just fine based on food you graze at the aid station. Well, I do most of my ultras as solo endeavors – no grazing, everything is pre-planned – and even if I did do an organized race, because of celiac I can’t eat 95% of the food (due to ingredients, lack of labeling, and/or cross contamination)…so that just doesn’t work for me to rely on aid station food to supplement me sodium-wise. But maybe it would work for other people, it just doesn’t for me given the celiac situation.)

I used to just target 500mg/hour of sodium through electrolyte pills. However, as I switched to actually fueling my runs and tracking carbs, fat, protein, and calories (as described above), I realized it’d be just as easy to track sodium intake in the food, and maybe that would enable me to have a different strategy on electrolyte pill consumption – and it did!

I went back to my spreadsheet and re-added information for sodium to all of my food items in my fuel library, and added it to the template that I duplicate for every run. Some of my food items, just like they can be outliers on calories or protein or fat or carbs, are also outliers on sodium. Biggest example? My beef stick, the protein outlier, is also a sodium outlier: 370mg of sodium! Yay! Same for my chili cheese Fritos – 210mg of sodium – which is actually the same amount of sodium that’s in the type of electrolyte pills I’m currently using.

I originally had a timer set and every 45 minutes, I’d take an electrolyte pill. However, in the last year I gradually realized that sometimes that made me over by quite a bit on certain hours and in some cases, I ended up WAY under my 500mg sodium goal. I actually noticed this in the latter portion of my 82 mile run – I started to feel the low-sodium chest feeling that I get, glanced at my sheet (that I hadn’t been paying close attention to because of So. Much. Rain) and realized – oops – that I had an hour of 323mg of sodium followed by a 495mg hour. I took another electrolyte pill to catch up and chose some higher sodium snacks for my next few fuels. There were a couple hours earlier in the run (hours 4 and 7) where I had happened to – based on some of my fresh fuel options like mashed potatoes – to end up with over 1000mg of sodium. I probably didn’t need that much, and so in subsequent hours I learned I could skip the electrolyte pill when I had had mashed potatoes in the last hour. Eventually, after my 82-mile run when I started training long runs again, I realized that keeping an eye on my rolling sodium tallies and tracking it like I tracked calories, taking an electrolyte pill when my hourly average dropped <500mg and not based on a pre-set time when it was >500mg, began to work well for me.

And that’s what I’ve been experimenting with for my last half dozen runs, which has worked – all of those runs have ended up with a total average slightly above 500mg of sodium and slightly above 250 calories for all hours of the run!

An example chart that automatically updates (as a pivot table) summarizing each hour's intake of sodium and calories during a run. At the bottom, an average is calculated, showing this 6 hour run example achieved 569 mg/hr of sodium and 262 calories per hour, reaching both goals.

Now, you may be wondering – she tracks calories and sodium, what about fat and protein and carbs?

I don’t actually care about or use these in real-time for an hourly average; I use these solely as real-time decision in points as 1) for carbs, to know how much insulin I might need dependent on my glucose levels at the time (because I have Type 1 diabetes); and 2) the fat and protein is to make sure I take the right amount of enzymes so I can actually digest the fuel (because I have exocrine pancreatic insufficiency and can’t digest fuel without enzyme pills). I do occasionally look back at these numbers cumulatively, but for the most part, they’re solely there for real-time decision making at the moment I decide what to eat. Which is 95% of the time based on my taste buds after I’ve decided whether I need to factor in a higher calorie or sodium option!

For me, my higher sodium options are chili cheese Fritos, beef stick, yogurt covered pretzels.

For me, my higher calorie options are the ½ share size Snickers; chili cheese Fritos; Reese’s pieces; yogurt covered pretzels; GF honey stinger stroopwaffle; and 2 mini PayDay bars.

Those are all shelf-stable options that I keep in snack size baggies and ready to throw into my running vest.

Most of my ‘fresh’ food options, that I’d have my husband bring out to the ‘aid station’/turnaround point of my runs for refueling, tend to be higher calorie options. This includes ¼ of a GF PB&J sandwich (which I keep frozen so it lasts longer in my vest without getting squishy); ¼ of a GF ham and cheese quesadilla; a mashed potato cup prepared in the microwave and stuck in another baggie (a jillion, I mean, 690mg of sodium if you consume the whole thing but it’s occasionally hard to eat allll those mashed potatoes out of a baggie in one go when you’re not actually very hungry); sweet potato tots; etc.

So again, my recommendation is to find foods you like in general and then figure out your guiding principles. For example:

  • Do you have any dietary restrictions, food allergies or intolerances, or have already learned foods that your body Does Not Like while running?
  • Are you aiming to do carbs/hr, calories/hr, or something else? What amounts are those?
  • Do you need to track your fuel consumption to help you figure out how you’re not hitting your fuel goals? If so, how? Is it by wrappers? Do you want to start with a list of fuel and cross it off or tear it off as you go? Or like me, use a note on your phone or a drop down list in your spreadsheet to log it (my blog post here has a template if you’d like to use it)?

My guiding principles are:

  • Gluten free with no cross contamination risk (because celiac)
  • ~250 calories per hour, eating twice per hour to achieve this
  • Each fuel (every 30 min) should be less than ~20g of carb, ~10g of fat, and ~5-10g of protein
  • I also want ~500mg of sodium each hour through the 2x fuel and when needed, electrolyte pills that have 210mg of sodium each
  • Dry food is harder to swallow; mouthfeel (ability to chew and swallow it) is something to factor in.
  • I prefer to eat my food on the go while I’m run/walking, so it should be all foods that can go in a snack or sandwich size baggie in my vest. Other options (like chicken broth, soup, and messy food items) can be on my backup list to be consumed at the aid station but unless I have a craving for them, they are secondary options.
  • Not a hassle to make/prepare/measure out into individual serving sizes.

Find foods that you like, figure out your guiding principles, and keep revising your list as you find what options work well for you in different situations and based on your running needs!

Food (fuel) for ultramarathon running by Dana Lewis at DIYPS.org

New Research on Glycemic Variability Assessment In Exocrine Pancreatic Insufficiency (EPI) and Type 1 Diabetes

I am very excited to share that a new article I wrote was just published, looking at glycemic variability in data from before and after pancreatic enzyme replacement therapy (PERT) was started in someone with type 1 diabetes with newly discovered exocrine pancreatic insufficiency (EPI or PEI).

If you’re not aware of exocrine pancreatic insufficiency, it occurs when the pancreas no longer produces the amount of enzymes necessary to fully digest food. If that occurs, people need supplementary enzymes, known as pancreatic enzyme replacement therapy (PERT), to help them digest their food. (You can read more about EPI here, and I have also written other posts about EPI that you can find at DIYPS.org/EPI.)

But, like MANY medications, when someone with type 1 diabetes or other types of insulin-requiring diabetes starts taking them, there is little to no guidance about whether these medications will change their insulin sensitivity or otherwise impact their blood glucose levels. No guidance, because there are no studies! In part, this may be because of the limited tools available at the time these medications were tested and approved for their current usage. Also this is likely in part because people with diabetes make up a small fraction of the study participants that most of these medications are tested on. If there are any specific studies on the medications in people with diabetes, these studies likely were done before CGM, so little data is available that is actionable.

As a result, the opportunity came up to review someone’s data who happened to have blood glucose data from a continuous glucose monitor (CGM) as well as a log of what was eaten (carbohydrate entries) prior to commencing pancreatic enzyme replacement therapy. The tracking continued after commencing PERT and was expanded to also include fat and protein entries. As a result, there was a useful dataset to compare the impacts of pancreatic enzyme replacement therapy on blood glucose outcomes and specifically, looking at glycemic variability changes!

(You can read an author copy here of the full paper and also see the supplementary material here, and the DOI for the paper is https://doi.org/10.1177/19322968221108414 . Otherwise, below is my summary of what we did and the results!)

In addition to the above background, it’s worth noting that Type 1 diabetes is known to be associated with EPI. In upwards of 40% of people with Type 1 diabetes, elastase levels are lowered, which in other cases is correlated with EPI. However, in T1D, there is some confusion as to whether this is always the case or not. Based on recent discussions with endocrinologists who treat patients with T1D and EPI (and have patients with lowered elastase that they think don’t have EPI), I don’t think there have been enough studies looking at the right things to assess whether people with T1D and lowered elastase levels would benefit from PERT and thus have EPI. More on this in the future!

Because we now have technology such as AID (automated insulin delivery) and CGM, it’s possible to evaluate things beyond simple metrics of “average blood sugar” or “A1c” in response to taking new medications. In this paper, we looked at some basic metrics like average blood sugar and percent time in range (TIR), but we also did quite a few calculations of variables that tell us more about the level of variability in glucose levels, especially in the time frames after meals.

Methods

This person had tracked carb entries through an open source AID system, and so carb entries and BG data were available from before they started PERT. We call this “pre-PERT”, and selected 4 weeks worth of data to exclude major holidays (as diet is known to vary quite a bit during those times). We then compared this to “post-PERT”, the first 4 weeks after the person started PERT. The post-PERT data not only included BGs and carb entries, but also had fat and protein entries as well as PERT data. Each time frame included 13,975 BG data points.

We used a series of open source tools to get the data (Nightscout -> Nightscout Data Transfer Tool -> Open Humans) and process the data (my favorite Unzip-Zip-CSVify-OpenHumans-data.sh script).

All of our code for this paper is open source, too! Check it out here. We analyzed time in range, TIR 70-180, time out of range, TOR >180, time below range, TBR <70 and <54, the number of hyperglycemic excursions >180. We also calculated total daily dose of insulin, average carbohydrate intake, and average carbohydrate entries per day. Then we calculated a series of variability related metrics such as Low Blood Glucose Index (LBGI), High Blood Glucose Index (HBGI), Coefficient of Variation (CV), Standard Deviation (SD), and J_index (which stresses both the importance of the mean level and variability of glycemic levels).

Results

This person already had an above-goal TIR. Standard of care goal for TIR is >70%; before PERT they had 92.12% TIR and after PERT it was 93.70%. Remember, this person is using an open source AID! TBR <54 did not change significantly, TBR <70 decreased slightly, and TOR >180 also decreased slightly.

More noticeably, the total number of unique excursions above 180 dropped from 40 (in the 4 weeks without PERT) to 26 (in 4 weeks when using PERT).

The paper itself has a few more details about average fat, protein, and carb intake and any changes. Total daily insulin was relatively similar, carb intake decreased slightly post-PERT but was trending back upward by the end of the 4 weeks. This is likely an artifact of being careful to adjust to PERT and dose effectively for PERT. The number of meals decreased but the average carb entry per meal increased, too.

What I find really interesting is the assessment we did on variability, overall and looking at specific meal times. The breakfast meal was identical during both time periods, and this is where you can really SEE visible changes pre- and post-PERT. Figure 2 (displayed below), shows the difference in the rate of change frequency. There’s less of the higher rate of changes (red) post-PERT than there is from pre-PERT (blue).

Figure 2 from GV analysis on EPI, showing lower frequency of high rate of change post-PERT

Similarly, figure 3 from the paper shows all glucose data pre- and post-PERT, and you can see the fewer excursions >180 (blue dotted line) in the post-PERT glucose data.

Figure 3 from GV analysis paper on EPI showing lower number of excursions above 180 mg/dL

Table 1 in the paper has all the raw data, and Figure 1 plots the most relevant graphs side by side so you can see pre- and post-PERT before and after after all meals on the left, versus pre and post-PERT before and after breakfast only. Look at TOR >180 and the reduction in post-breakfast levels after PERT! Similarly, HBGI post-PERT after-breakfast is noticeably different than HBGI pre-PERT after-breakfast.

Here’s a look at the HBGI for breakfast only, I’ve highlighted in purple the comparison after breakfast for pre- and post-PERT:

High Blood Glucose Index (HBGI) pre- and post-PERT for breakfast only, showing reduction in post-PERT after breakfast

Discussion

This is a paper looking at n=1 data, but it’s not really about the n=1 here. (See the awesome limitation section for more detail, where I point out it’s n=1, it’s not a clinical study, the person has ‘moderate’ EPI, there wasn’t fat/protein data from pre-PERT, it may not be representative of all people with diabetes with EPI or EPI in general.)

What this paper is about is illustrating the types of analyses that are possible, if only we would capture and analyze the data. There are gaping holes in the scientific knowledge base: unanswered and even unasked questions about what happens to blood glucose with various medications, and this data can help answer them! This data shows minimal changes to TIR but visible and significant changes to post-meal glycemic variability (especially after breakfast!). Someone who had a lower TIR or wasn’t using an open source AID may have more obvious changes in TIR following PERT commencement.

This paper shows several ways we can more easily detect efficacy of new-onset medications, whether it is enzymes for PERT or other commonly used medications for people with diabetes.

For example, we could do a similar study with metformin, looking at early changes in glycemic variability in people newly prescribed metformin. Wouldn’t it be great, as a person with diabetes, to be able to more quickly resolve the uncertainty of “is this even working?!” and not have to suffer through potential side effects for 3-6 months or longer waiting for an A1c lab test to verify whether the metformin is having the intended effects?

Specifically with regards to EPI, it can be hard for some people to tell if PERT “is working”, because they’re asymptomatic, they are relying on lab data for changes in fat soluble vitamin levels (which may take time to change following PERT commencement), etc. It can also be hard to get the dosing “right”, and there is little guidance around titrating in general, and no studies have looked at titration based on macronutrient intake, which is something else that I’m working on. So, having a method such as these types of GV analysis even for a person without diabetes who has newly discovered EPI might be beneficial: GV changes could be an earlier indicator of PERT efficacy and serve as encouragement for individuals with EPI to continue PERT titration and arrive at optimal dosing.

Conclusion

As I wrote in the paper:

It is possible to use glycemic variability to assess changes in glycemic outcomes in response to new-onset medications, such as pancreatic enzyme replacement therapy (PERT) in people with exocrine pancreatic insufficiency (EPI) and insulin-requiring diabetes. More studies should use AID and CGM data to assess changes in glycemic outcomes and variability to add to the knowledge base of how medications affect glucose levels for people with diabetes. Specifically, this n=1 data analysis demonstrates that glycemic variability can be useful for assessing post-PERT response in someone with suspected or newly diagnosed EPI and provide additional data points regarding the efficacy of PERT titration over time.

I’m super excited to continue this work and use all available datasets to help answer more questions about PERT titration and efficacy, changes to glycemic variability, and anything else we can learn. For this study, I collaborated with the phenomenal Arsalan Shahid, who serves as technology solutions lead at CeADAR (Ireland’s Centre for Applied AI at University College Dublin), who helped make this study and paper possible. We’re looking for additional collaborators, though, so feel free to reach out if you are interested in working on similar efforts or any other research studies related to EPI!

A DIY Fuel Enzyme Macronutrient Tracker for Running Ultras (Ultramarathons)

It takes a lot of energy to run ultramarathons (ultras).

To ensure they have enough fuel to complete the run, people usually want to eat X-Y calories per hour, or A-B carbs per hour, while running ultramarathons. It can be hard to know if you’re staying on top of fueling, especially as the hours drag on and your brain gets tired; plus, you can be throwing away your trash as you go so you may not have a pile of wrappers to tell you what you ate.

During training, it may be useful to have a written record of what you did for each run, so you can establish a baseline and work on improving your fueling if that’s something you want to focus on.

For me specifically, I also find it helpful to record what enzyme dosing I am taking, as I have EPI (exocrine pancreatic insufficiency, which you can read more about here) and if I have symptoms it can help me identify where my dosing might have been off from the previous day. It’s not only the amount of enzymes but also the timing that matters, alongside the timing of carbs and insulin, because I have type 1 diabetes, celiac, and EPI to juggle during runs.

Previously, I’ve relied on carb entries to Nightscout (an open source CGM remote monitoring platform which I use for visualizing diabetes data including OpenAPS data) as a record of what I ate, because I know 15g of carbs tracks to a single serving of chili cheese Fritos that are 10g of fat and 2g of protein, and I take one lipase-only and one pancrelipase (multi-enzyme) pill for that; and 21g of carbs is a Honey Stinger Gluten Free Stroopwaffle that is 6g of fat and 1g of protein, and I typically take one lipase-only. You can see from my most recent ultra (a 50k) where I manually took those carb entries and mapped them on to my blood sugar (CGM) graph to visualize what happened in terms of fuel and blood sugar over the course of my ultra.

However, that was “just” a 50k and I’m working toward bigger runs: a 50 mile, maybe a 100k (62 miles), and/or a 100 mile, which means instead of running for 7-8 hours I’ll be running for 12-14 and 24-30(ish) hours! That’s a lot of fuel to need to eat, and to keep track of, and I know from experience my brain starts to get tired of thinking about and eating food around 7 hours. So, I’ll need something better to help me keep track of fuel, enzymes, and electrolytes over the course of longer runs.

I also am planning on being well supported by my “crew” – my husband Scott, who will e-bike around the course of my ultra or my DIY ultra loops and refill my pack with water and fuel. In some cases, with a DIY ultra, he’ll be bringing food from home that I pre-made and he warms up in the microwave.

One of the strategies I want to test is for him to actually hand me the enzymes for the food he’s bringing me. For example, hand me a baggie of mashed potatoes and also hand me the one multi-enzyme (pancrelipase, OTC) pill I need to go with it. That reduces mental effort for me to look up or remember what enzyme amount I take for mashed potatoes; saves me from digging out my baggie of enzymes and having to get the pill out and swallow it, put the baggie away without dropping it, all while juggling the snack in my hands.

He doesn’t necessarily know the counts of enzymes for each fuel (although he could reproduce it, it’s better if I pre-make a spreadsheet library of my fuel options and that helps me both just pick it off a drop down and have an easy reference for him to glance at. He won’t be running 50-100 miles, but he will be waking up every 2-3 hours overnight and that does a number on his brain, too, so it’s easier all around if he can just reference the math I’ve already done!

So, for my purposes: 1) easy tracking of fuel counts for real-time “am I eating according to plan” and 2) retrospective “how did I do overall and should I do something next time” and 3) for EPI and BG analysis (“what should I do differently if I didn’t get the ideal outcome?”), it’s ideal to have a tracking spreadsheet to log my fuel intake.

Here’s what I did to build my ultimate fuel self-tracking self-populating spreadsheet:

First, I created a tab in my spreadsheet as a “Fuel Library”, where I listed out all of my fuel. This ranges from snacks (chili cheese Fritos; Honey Stinger Gluten Free Stroopwaffle; yogurt-covered pretzels, etc.); to fast-acting carbs (e.g. Airhead Minis, Circus Peanuts) that I take for fixing blood sugars; to other snack/treats like chocolate candy bars or cookies; as well as small meals and warm food, such as tomato soup or part of a ham and cheese quesadilla. (All gluten free, since I have celiac. Everything I ever write about is always gluten free!)

After I input the list of snacks, I made columns to input the sodium, calories, fat, protein, and carb counts. I don’t usually care about calories but a lot of recommendations for ultras are calories/hr and carbs/hr. I tend to be lower on the carb side in my regular daily consumption and higher on fat than most people without T1D, so I’m using the calories for ultrarunning comparison to see overall where I’m landing nutrient-wise without fixating on carbs, since I have T1D and what I personally prefer for BG management is likely different than those without T1D.

I also input the goal amount of enzymes. I have three different types of pills: a prescription pancrelipase (I call PERT, which stands for pancreatic enzyme replacement therapy, and when I say PERT I’m referring to the expensive, prescription pancrelipase that’s been tested and studied for safety and efficacy in EPI); an over-the-counter (OTC) lipase-only pill; and an OTC multi-enzyme pancrelipase pill that contains much smaller amounts of all three enzymes (lipase, protease, amylase) than my PERT but hasn’t been tested for safety and efficacy for EPI. So, I have three enzyme columns: Lipase, OTC Pancrelipase, and PERT. For each fuel I calculate which I need (usually one lipase, or a lipase plus a OTC pancrelipase, because these single servings are usually fairly low fat and protein; but for bigger meal-type foods with more protein I may ‘round up’ and choose to take a full PERT, especially if I eat more of it), and input the number in the appropriate column.

Then, I opened another tab on my spreadsheet. I created a row of headers for what I ate (the fuel); time; and then all the macronutrients again. I moved this down to row 3, because I also want to include at the top of the spreadsheet a total of everything for the day.

Example-DIY-Fuel-Enzyme-Tracker-ByDanaMLewis

In Column A, I selected the first cell (A4) for me, then went to Data > Data Validation and clicked on it. It opens this screen, which I input the following – A4 is the cell I’m in for “cell range”, the criteria is “list from a range”, and then I popped over to the tab with my ‘fuel library’ and highlighted the relevant data that I wanted to be in the menu: Food. So that was C2-C52 for my list of food. Make sure “show dropdown list in cell” is marked, because that’s what creates the dropdown in the cell. Click save.

Use the data validation section to choose to show a dropbox in each cell

You’ll want to drag that down to apply the drop-down to all the cells you want. Mine now looked like this, and you can see clicking the dropdown shows the menu to tap on.

Clicking a dropbox in the cell brings up the "menu" of food options from my Fuel Library tab

After I selected from my menu, I wanted column B to automatically put in the time. This gets obnoxious: google sheets has NOW() to put in the current time, but DO NOT USE THIS as the formula updates with the latest time any time you touch the spreadsheet.

I ended up having to use a google script (go to “Extensions” > Apps Script, here’s a tutorial with more detail) to create a function called onEdit() that I could reference in my spreadsheet. I use the old style legacy script editor in my screenshot below.

Older style app script editor for adding scripts to spreadsheet, showing the onEdit() function (see text below in post for what the script is)

Code I used, if you need to copy/paste:

function onEdit(e) {

var rr = e.range;

var ss = e.range.getSheet();

var headerRows = 2;  // # header rows to ignore

if (rr.getRow() <= headerRows) return;

var row = e.range.getRow();

var col = e.range.getColumn();

if(col == 1){

e.source.getActiveSheet().getRange(row,2).setValue(new Date());

}

}

After saving that script (File > Save), I went back to my spreadsheet and put this formula into the B column cells: =IFERROR(onEdit(),””). It fills in the current date/time (because onEdit tells it to if the A cell has been updated), and otherwise sits with a blank until it’s been changed.

Note: if you test your sheet, you’ll have to go back and paste in the formula to overwrite the date/time that gets updated by the script. I keep the formula without the “=” in a cell in the top right of my spreadsheet so I can copy/paste it when I’m testing and updating my sheet. You can also find it in a cell below and copy/paste from there as well.

Next, I wanted to populate my macronutrients on the tracker spreadsheet. For each cell in row 4, I used a VLOOKUP with the fuel name from A4 to look at the sheet with my library, and then use the column number from the fuel library sheet to reference which data element I want. I actually have things in a different order in my fuel library and my tracking sheet; so if you use my template later on or are recreating your own, pay attention to matching the headers from your tracker sheet and what’s in your library. The formula for this cell ended up being “=IFERROR(VLOOKUP(A4,’Fuel Library’!C:K,4, FALSE),””)”, again designed to leave the column blank if column A didn’t have a value, but if it does have a value, to prefill the number from Column 4 matching the fuel entry into this cell. Columns C-J on my tracker spreadsheet all use that formula, with the updated values to pull from the correctly matching column, to pre-populate my counts in the tracker spreadsheet.

Finally, the last thing I wanted was to track easily when I last ate. I could look at column B, but with a tired brain I want something more obvious that tracks how long it’s been. This also is again to maybe help Scott, who will be tasked with helping me stay on top of things, be able to check if I’m eating regularly and encourage me gently or less gently to be eating more as the hours wear on in my ultras.

I ended up creating a cell in the header that would track the last entry from column B. To do this, the formula I found is “INDEX(B4:B,MATCH(143^143,B4:B))”, which checks for the last number in column B starting in B4 and onward. It correctly pulls in the latest timestamp on the list.

Then, in another cell, I created “=NOW()-B2”, which is a good use for the NOW() formula I warned about, because it’s constantly updating every time the sheet gets touched, so that any time I go to update it’ll tell me how long it’s been since between now and the last time I ate.

But, that only updates every time I update the sheet, so if I want to glance at the sheet, it will be only from the last time I updated it… which is not what I want. To fix it, I need to change the autorefresh calculation settings. Go to File > Settings. Click “Calculations” tab, and the first drop down you want to change to be “On change and every minute”.

Under File > Settings there is a "Calculate" tab with a dropdown menu to choose to update on change plus every minute

Now it does what I want, updating that cell that uses the NOW() formula every minute, so this calculation is up to date even when the sheet hasn’t been changed!

However, I also decided I want to log electrolytes in my same spreadsheet, but not include it in my top “when did I last eat” calculator. So, I created column K and inserted the formula IF(A4=”Electrolytes”,””,B4), which checks to see if the Dropdown menu selection was Electrolytes. If so, it doesn’t do anything. If it’s not electrolytes, it repeats the B4 value, which is my formula to put the date and time. Then, I changed B2 to index and match on column K instead of B. My B2 formula now is INDEX(K4:K,MATCH(143^143,K4:K)), because K now has the food-only list of date and time stamps that I want to be tracking in my “when did I last eat” tracker. (If you don’t log electrolytes or don’t have anything else to exclude, you can keep B2 as indexing and matching on column B. But if you want to exclude anything, you can follow my example of using an additional column (my K) to check for things you do want to include and exclude the ones you don’t want. Also, you can hide columns if you don’t want to see them, so column K (or your ‘check for exclusions’ column wherever it ends up) could be hidden from view so it doesn’t distract your brain.

I also added conditional formatting to my tracker. Anytime A2, the time since eaten cell, is between 0-30 minutes, it’s green: indicating I’m on top of my fueling. 30-45 minutes it turns yellow as a warning that it’s time to eat. After 45 minutes, it’ll turn light red as a strong reminder that I’m off schedule.

I kept adding features, such as totaling my sodium consumption per hour, too, so I could track electrolytes+fuel sodium totals. Column L gets the formula =IF(((ABS((NOW()-B4))*1440)<60),F4,””) to check for the difference between the current time and the fuel entry, multiplying it by 1440 to convert to minutes and checking to see that it’s less than 60 minutes. If it is, then it prints the sodium value, and otherwise leaves it blank. (You could skip the ABS part as I was testing current, past, and future values and wanted it to stop throwing errors for future times that were calculated as negatives in the first argument). I then in C2 calculate the sum of those values for the total sodium for that hour, using =SUM(L4:L)

(I thought about tracking the past sodium per hour values to average and see how I did throughout the run on an hourly basis…but so far on my 3 long runs where I’ve used the spreadsheet, the very fact that I am using the tracker and glancing at the hourly total has kept me well on top of sodium and so I haven’t need that yet. However, if I eventually start to have long enough runs where this is an issue, I’ll probably go back and have it calculate the absolute hour sodium totals for retrospective analysis.)

This works great in the Google Sheets app on my phone, which is how I’ll be updating it during my ultras, although Scott can have it open on a browser tab when he’s at home working at his laptop. Every time I go for a long training run, I duplicate the template tab and label it with the date of the run and use it for logging my fueling.

(PS – if you didn’t know, you can rearrange the order of tabs in your sheet, so you can drag the one you want to be actively using to the left. This is useful in case the app closes on your phone and you’re re-opening the sheet fresh, so you don’t have to scroll to re-find the correct tab you want to be using for that run. In a browser, you can either drag and drop the tabs, or click the arrow next to the tab name and select “move left” or “move right”.)

Clicking the arrow to the right of a tab name in google sheets brings up a menu that includes the option to move the tab left or right

Click here to make a copy of my spreadsheet.

If you click to make a copy of a google spreadsheet, it pops up a link confirming you want to make a copy, and also might bring the app script functionality with it. If so, you can click the button to view the script (earlier in the blog post). If it doesn't include the warning about the script, remember to add the script yourself after you make a copy.

Take a look at my spreadsheet after you make a copy (click here to generate a copy if you didn’t use the previous mentioned link), and you’ll note in the README tab a few reminders to modify the fuel library and make sure you follow the steps to ensure that the script is associated with the sheet and validation is updated.

Obviously, you may not need lipase/pancrelipase/PERT and enzyme counts; if you do, your counts of enzymes needed and types of enzyme and quantity of enzymes will need updating; you may not need or want all of these macronutrients; and you’ll definitely be eating different fuel than I am, so you can update it however you like with what you’re eating and what you want to track.

This spreadsheet and the methods for building it can also be used for other purposes, such as tracking wait times or how long it took you to do something, etc.

(If you do find this blog post and use this spreadsheet concept, let me know – I’d love to hear if this is useful for you!)

Reflecting on 4 months with Exocrine Pancreatic Insufficiency (EPI) and Experiences with Pancreatic Enzyme Replacement Therapy (PERT)

Exocrine Pancreatic Insufficiency (EPI or PEI) is an invisible disease – you don’t see or hear much of it and there’s not a lot of information for patients online, nor information written by people with EPI. (That’s in part why I’ve been documenting my experiences with EPI – more at DIYPS.org/EPI if you want to see the other EPI-related posts that I’ve written, including about PERT Pilot, the first iOS app for Exocrine Pancreatic Insufficiency! It’s an iOS app that allows you to record as many meals as you want, the PERT dosing and outcomes, to help you visualize and review more of your PERT dosing data!).

I’ve now spent more than 4 months with (known) EPI and taking pancreatic enzyme replacement therapy (PERT), and I’m sharing what I’ve found so far that’s worked for me. I also wanted to share an update on my experiences and what I wish I had known at the start that I know now.

Mainly, it gets better. It gets easier.

4 months on PERT for EPI

“It” being how I felt and now feel, and the process of figuring out how much enzymes to take, and the process of working more math into the choices of what, when, and how I was eating. It’s a lot of work, but it has gotten easier. And I feel a lot better. I now have multi-week streaks where I have perfect dosing for everything that I eat and dose for, and it’s rare to not get it right.

The early weeks were not this great: I definitely felt better than before, but not “back to normal”.

Now, I feel “back to normal” like I think I did 2-3 years ago before symptoms became noticeable. When I don’t manage to dose perfectly, the symptoms are way more minimal than previously, in part due to the fact that I’ve had so many days of feeling great and in part due to the fact that the margin of error is a lot smaller since I’ve figured out a good ratio of lipase:fat and protease:protein that works well and reliably for me.

This has confirmed for me that titrating doses of enzyme does matter. I documented everything I was eating (including listing out the amount of fat and protein) and the amount/level of enzymes I was taking. Over time, I was able to see a general threshold above/below which dosing usually worked or didn’t work, and then test slightly smaller amounts of fat and/or protein to get to an amount that reliably “worked” with that size of enzyme dose. From there, it was simple math to divide the thousand units of lipase in that size of enzyme dose by the grams of fat or protein to identify the ratio of fat:lipase or protein:protease that I needed. This has helped me get the right dose of enzymes for every meal. It has also enabled me to then choose between the more expensive and higher-dose prescription enzyme pills I have, or choose a combination of prescription and smaller-dose single or multi-enzyme over the counter pills. This ends up giving me more flexibility in the cost of enzymes it takes to cover the food I want to eat (or snack, or treat, or whatever) as well as more precision with dosing the right level of enzyme instead of 1x, 2x, 3x (etc.) a single dose size prescription pill.

In addition to feeling a lot better simply by having better GI-related outcomes and massive reduction in symptoms 95% of the time, my energy levels are way up. I’m also training to run an ultramarathon again this year, and the way I feel during training this year (with enzymes) compared to last year is startling. Even though I have another year’s worth of experience running that I didn’t have last year, the way I feel during and after runs is likely more attributable to the fact that I’m now digesting what I’m eating.

Additionally, the diversity of food that I’m choosing to eat is increasing constantly. I started conservatively, in part due to trying to figure out if I still had any FODMAP-related sensitivity, and also to make it easier to get the math “right” to figure out my optimal dose. As I got confident with my ratios and dosing PERT, I began eating a wider selection of foods, and finally have eaten my way back to eating actual onions (!) in the form of gluten free onion rings. They were delicious, and gave me zero problems. So I’m now confident the FODMAP-perceived sensitivities was really the increasing sensitivity to fat and protein as my elastase levels were dropping. It’s wonderful to not be as restricted in my food options. (I still have celiac disease and eat 100% gluten free and can’t have any cross-contamination, but after almost a year of not eating onion or garlic in any form including “natural flavors” of foods… “just” eating gluten free feels amazingly plentiful in options now.)

And because I’ve eaten more and a greater selection of foods, the thought of eating food doesn’t scare me anymore. I don’t cringe at the thought of actually eating, like I used to. I know it’s a matter of estimating or counting the fat and protein and dosing for it. If in doubt, I try to round up the number of pills I’m taking to provide a buffer. Unlike insulin, taking a little too much enzyme doesn’t hurt (other than the cost). But also like insulin (after almost 20 years), I am no longer counting the cost of every dose in my head with every meal. That definitely took over 3 months, because before then I was swallowing a PERT pill and knowing each and every one costs $9. Ugh. So that’s an improvement, even though I’m still aware of the cost, it’s not quite as bothersome to me on an every-instance basis.

Things aren’t perfect, though, despite it being a lot better. I still get overwhelmed sometimes by the amount of work to decide what I want to eat and how I’m going to estimate what is in it to try to figure out how much PERT to dose.

Some of the strategies I’ve identified that help reduce being overwhelmed include:

  • Asking for help when I can. I ask Scott (my husband) when he’s standing in the kitchen to glance at a label of a food and tell me the counts (grams of fat and protein per serving), so I can decide if I want to build a meal with that item in it. I also sometimes ask him to help me portion out individual servings of foods, such as taking a larger bag of chips and telling him the serving size that I want and asking him to weigh them out.
  • Separate the work of preparing (and counting) food from the process of deciding what to eat. (I hate using a scale and weighing things out, but it’s been really helpful to pre-portion snacks and other items). Having the pre-portioned and pre-counted amounts helps me then more easily incorporate them on the fly, because I’ve already done the counting work of figuring out what’s in them. (I either make a note on my phone in a spreadsheet or write with a marker on the baggie what the counts are.) Separating the work in advance from the decision of what to eat when it’s time to eat helps me cut down on the decision fatigue that occurs a lot for me.
  • Buying individual portions and “snack size” items of things I regularly eat. When I can find them, and thankfully I can afford to, I try to buy individual sizes of things that are pre-packaged and have the nutrition label for that serving size. It’s less work to portion it out and figure out the counts for it, so while it’s sometimes more expensive it saves me time and makes me more likely to incorporate it into my food choices.
  • Asking for help estimating what’s in mystery food (e.g. unlabeled/uncounted food items). I’ve got almost 20 years experience of estimating carb counts, but only a few months attempts of trying to estimate fat and protein counts. Sometimes I ask Scott to pitch in an estimate. Sometimes we try to look up an equivalent item (e.g., if assessing a local gluten free hamburger we got as takeout food, we’ll look up online what a few other chain restaurant hamburgers would be, and use that to triangulate). Sometimes he’ll weigh it on the scale and we’ll eyeball proportions of fat and protein in the meat versus the vegetables or rice. I’m already getting better at guesstimating, so like carb counting I imagine this will continue to get easier over time.

Managing decision fatigue is now the biggest hassle for me. I have developed a nice routine for taking counts and converting that to the right PERT doses, but I still get frustrated with having to think about what I’m eating and how I’m going to dose for it sometimes. This may be somewhat influenced by the fact that I’m running a lot and trying to eat a slightly higher level of protein than I would naturally be picking out in my diet. So having to pay attention to everything to count it for dosing and overall trying to achieve a general higher baseline of protein sometimes gets annoying (although obviously the increased need for protein is a choice, whereas EPI and dosing in general is not!).

In general, I’ve not found it hard to remember to take my enzymes. I’ve developed habits around figuring out my counts, converting that to what number and type of pills I’m taking, and I get those out to take with my first bite and/or throughout my meal, depending on the number. One thing that has helped with this is getting smaller pill cases (like these – they’re purple! They also come in white or multicolor) that I visually don’t hate and can put both the prescription and over the counter pills in. I have 2-3 of these filled and ready to go at any given time, which makes it easy to grab one when I head out for the day, or to have sitting in different spots on my kitchen island/counter so I have the visual reminder in addition to my traditional “prescription” bottle.

The other aspect aside from decision fatigue is the stress of uncertainty around food. I took a trip recently and it was very stressful being out of my routine at home for the first time since we realized I had EPI. I had to take a lot of enzymes with me, take extras in case something happened to them, pack snacks, figure out food in advance but also be ready to figure out food on the fly. This included guessing what was in airplane (gluten free) food. On the first flight, I gave Scott my dry airplane chicken because it didn’t look good or even worth the PERT, and ate snacks from my bag instead. On the flight home, the chicken had a sauce (woohoo) and came with cheesy potatoes, so I rounded up my dose guess and things were fine. In between on the trip, I also erred on the side of caution and rounded up my doses.That meant I took a little more than usual, but I had already factored that into the amount of enzymes I had packed for the trip. So that went fine. But the uncertainty in what I’d be eating for several days was stressful and hard. To help work around that, I had picked a hotel near a gluten free bakery and near a gluten free restaurant that I knew from a previous trip, so that at least I could reduce the uncertainty of “is there anything celiac-safe (gluten free) that I can eat” (which used to be my sole concern when traveling) and limit myself only to the uncertainty of “what do I dose for this?” every time I ate. That helped. So I’ll probably continue to use the pre-planning skills I learned from living with celiac because the uncertainty at every meal for EPI is a lot, especially when jet-lagged, and so everything I can do to pre-estimate or pre-plan and make sure I have access to food pays off.

(As I mentioned at the start of this post, you can find my previous posts about EPI at DIYPS.org/EPI. And I’m working on a number of research initiatives related to EPI and improving methods for helping people titrate doses of PERT. If you’re interested in collaborating on research related to EPI, please reach out any time!

You also may want to check out PERT Pilot, the first iOS app for Exocrine Pancreatic Insufficiency! It’s an iOS app that allows you to record as many meals as you want, the PERT dosing and outcomes, to help you visualize and review more of your PERT dosing data!)