Thirty-four minutes on the Kickr after lunch, 92 outside and feels like 101. Effort 61, the easiest ride of the rebuild. Recorded on the watch again, so no power, no distance, no Zwift. The coach has a note about that. The rider has a fan and a closed door.
Ship's Log
Every outing since Waco, as recorded by the instruments
A complete record of the captain's training, pulled from Strava and annotated by the coach. Each entry notes the weather it happened in. Locations are given by county or town only — the streets he runs are his own business.
September 2026 17
Five miles at 10:48 on a mostly clear Monday, 88 degrees and feels like 98, no wind to speak of. Fifty-six minutes at 11:05, effort 195. Week three of the rebuild opens with the long run, done first thing, mile splits climbing a little each mile the way they do when the air is 98. The fastest mile was the first. It usually is.
Forty-five minutes of evening strength work, 88 degrees and overcast outside. Effort 28. The first gym session of the rebuild, and a long one. Four hours after the run. A double, on a Friday, with the children presumably in bed.
Three point three miles at 2:26 on a clear 94-degree Friday, feels like 100. Thirty-six minutes at 11:01, effort 82. The lowest-effort run of the month by a distance, in the highest heat. Somebody finally ran easy. It was on the hottest afternoon. Of course it was.
875 meters in the neighborhood pool on a 94-degree Thursday afternoon, thirty minutes elapsed, twenty-five swimming. About 2:53 per hundred. The first swim of the rebuild and the first since May: a 250 to start, then short pieces off the wall, then 450 meters continuous to finish. The continuous piece is the one that matters. Four hundred fifty is a start.
Four miles the morning after the 10K, clear and 89, feels like 96. Forty-four minutes at 10:55, effort 138. Back-to-back mornings, ten miles between them. The legs, remarkably, showed up.
Six point three miles on an overcast 88-degree Monday morning, feels like 95. Eighty-one minutes, effort 314. A Nike Run Club "ten mile run" that stopped at ten kilometers, which is a different unit. The first three miles held near eleven-minute pace; mile five was walked nearly whole. A 10K personal record on Strava regardless, and the longest run since June. The plan called for forty easy minutes. This was neither.
A twenty-minute evening walk covering two-thirds of a mile, 92 degrees and overcast. Thirty-minute miles. The pace of a man walking with someone whose legs are much shorter than his.
Three point two miles at 10:18 on a mostly clear morning, 83 degrees and 81-percent humidity. Thirty-five minutes at 10:51, effort 155. The late-morning slot the plan asked for, and the effort the plan asked to avoid. Mile one went out fast. The rest paid for it.
A one-mile walk at ten on a humid Friday morning, 83 degrees. Seventeen minutes. A warmup that got its own line.
One mile straight off the bike, 90 degrees and feels like 99. Eleven minutes. The rebuild's first brick, if a brick can be one mile long. It can.
Thirty-eight minutes on the Kickr at lunch, the first ride of the rebuild and the first indoor ride in a year. Recorded on the watch, not in Zwift, so the trainer kept its watts to itself. Effort 101 for a ride that was meant to be conversational. The engine room is back in service; the instruments are not yet talking to each other.
Chapter two. Three point three miles at lunch on a clear 92-degree Tuesday, feels like 101. Thirty-six minutes at 11:01. Day two of the rebuild, and the first entry written under the plan. The orders said Kickr. The legs said run. The log records what happened.
Three point two miles at 12:30 on a clear Saturday, 94 degrees, feels like 101. Thirty-five minutes at 10:54, cadence 77. Effort 135. The last run before the plan. The coach pulled this one up the next day and said: that is a threshold effort, not an easy run, and it is why the runs are moving out of the afternoon. Chapter one ends here.
A point-nine-mile walk immediately after the run, 89 degrees, overcast. Eighteen minutes. The lunch hour, used entirely.
Three point two miles at lunch on an overcast 89-degree Friday, feels like 98. Thirty-four minutes at 10:35, effort 99. The overcast helped. Not much.
Three point five miles at 10:34 on a clear morning, 88 degrees, feels like 95, 62-percent humidity. Thirty-seven minutes at 10:42, effort 130. One achievement. The late-morning slot, four days before the rebuild.
August 2026 12
A fifteen-minute evening walk straight after the five-miler, 87 degrees at 8:49 pm. Point eight miles. The cooldown, which in August is a figure of speech.
Five point one miles at 7:52 on a Sunday evening, 89 degrees, feels like 92. Fifty-four minutes at 10:40, effort 161. A five-miler at dusk with a PR in it. The longest run since June, and the one that, a week later, the coach would point to as evidence.
Three point one miles at 2:13 pm, 94 degrees and feels like 103, no wind at all. Thirty-five minutes at 10:59, effort 91. The last of the afternoon runs before the plan was written to move them.
Three miles at 10:14 on a mostly clear morning, 90 degrees and feels like 97. Thirty-three minutes at 10:44, effort 117. Late morning, tested again. Still hot. Slightly less so.
A two-mile walk at 9:30 on a drizzly, 81-degree morning. Thirty-six minutes. A warmup for the run forty minutes later.
Three point two miles at 2 pm on a clear 99-degree afternoon, feels like 105. Thirty-seven minutes at 11:24, effort 150. The heart rate on these afternoon runs is a threshold effort disguised as a jog.
Three point one miles at lunch, 93 and feels like 98. Thirty-four minutes at 10:47, effort 104. Monday. The week begins where the last one ended, on a hot sidewalk.
Two point seven miles at 6:25 on a Saturday evening, 101 degrees, feels like 100, 23-percent humidity. Thirty-two minutes at 11:52. Cadence 72. Effort 63. The hottest air temperature in the log, and the slowest August run. Correlated.
Three point one miles at 2 pm, 99 degrees, feels like 106. Thirty-four minutes at eleven-minute pace, effort 140. The hottest run in the log by heat index. There is no coaching note that improves on the number 106.
Three miles on a clear 98-degree afternoon, feels like 103. Thirty-three minutes at 10:58, effort 144. The hottest run in the log to this point. It would not hold the title for long.
Three miles at lunch on a clear 91-degree day, feels like 100. Thirty-four minutes at 11:15, effort 143. Eight days after the last one. The habit is back.
Three miles at lunch, 92 degrees and feels like 101, mostly clear. Thirty-three minutes at 10:50, effort 136. Home. August. The noon patrol resumes.
July 2026 3
Cedar Rapids. Twenty point five miles on an overcast 82-degree lunch, ninety-two minutes at 13.3 mph, effort 334. Thirty-two PRs, most of them on segments he had never ridden before. The longest ride since RAGBRAI. Iowa, once a year, is where the bike remembers itself.
A three-mile walk in Cedar Rapids, overcast and 87. Fifty-one minutes. Effort 32 for a walk, so possibly a stroller and a hill.
Robins, Iowa. Eighteen point four miles on a clear 82-degree lunch hour, seventy-six minutes at 14.5 mph. Effort 189. The summer trip to Iowa again, and the bike comes out. The second-fastest ride in the log.
June 2026 4
Five point one miles at 1:45 pm on a clear 94-degree afternoon, feels like 98. Sixty-eight minutes at 13:18 pace, effort 215. A Nike Run Club five-miler, merged. Cadence 69, the lowest on any run in the log. The pace and the cadence say the same thing: this one was survived, not run.
Two point seven miles on a clear, windy 93-degree afternoon, feels like 97. Thirty-one minutes, effort 124. Late June. The heat index has entered the chat.
Four point three miles at lunch the next day, partly cloudy, 81 and feels like 85. Forty-nine minutes at 11:25, effort 193. Two runs in two days after a quiet May.
Three miles at lunch in drizzle, 83 degrees and feels like 93. Thirty-four minutes at 11:12, effort 143. June, beginning as it means to go on.
May 2026 3
Two point three miles at lunch, overcast and 73. Thirty-two minutes moving, fifty-one elapsed, at a 13:48 pace. A run interrupted by something. The log does not say what.
A 550-meter pool session at 8:08 on a humid, partly cloudy morning. Twelve minutes moving, thirty elapsed, meaning a great deal of holding the wall. About 2:07 per hundred when actually swimming. The first swim in seventeen months, and the only one until the rebuild. A single, important data point.
Two point six miles on a clear, dry, windy 86-degree afternoon. Twenty-eight minutes at 11:06, effort 103. Mid-May. A run to keep the habit warm.
April 2026 6
Two point three miles straight after the weights, overcast and 68. Twenty-five minutes at 10:58. A short one in the best weather April offered.
Twenty-five minutes of strength work on a cool, humid, overcast afternoon. Effort 21. The first gym session since February.
Four point three miles the next afternoon, 85 and feels like 91, 74-percent humidity. Fifty-two minutes at 12:09, effort 190. Two days, two runs, both of them slow and both of them earned.
Four miles on a humid, overcast 86-degree afternoon, feels like 92. Forty-six minutes at 11:24, effort 185. The first run in four weeks. Late April, and the furnace is already warming up.
A 1.8-mile afternoon walk, overcast, dry, 74 degrees. Thirty-three minutes. The second walk of the week, unhurried.
A 1.7-mile walk in warm drizzle, 80 degrees. Thirty-one minutes. April, on foot.
March 2026 4
Four point one miles on a mostly clear, windy 84-degree afternoon. Forty-five minutes at 11:06, effort 201. A Nike Run Club session with Shalane Flanagan in the ear, merged. She was encouraging. The heat was not.
Eleven point four miles outdoors on the Trek, in Hays County, 83 degrees and partly cloudy. Forty-six minutes at 14.9 mph, 158 meters of climbing, effort 181. The first outdoor ride at home in the entire log, and the fastest average speed of any ride in it. The Domane sees daylight.
Three miles at 95 degrees on the fifteenth of March, feels like 85 in ten-percent humidity and a 14-mph wind. Thirty-five minutes. A freak hot day, run in.
Three point one miles on a clear, dry, 63-degree afternoon. Thirty-four minutes at 11:05, effort 136. The first run in three weeks. The log has a March-shaped hole in it and this is the patch.
February 2026 5
Five point one miles on a clear 81-degree afternoon. Fifty-seven minutes at 11:12, effort 241. Cadence 78. A hard five for the conditions, with one PR to show for it.
Twenty-seven minutes of late-afternoon weights, clear and 81, windy. Effort 5. The last entry of the winter strength block. It ended the way blocks end: not with a decision, just a gap.
Three point six miles on a clear 80-degree afternoon. Thirty-nine minutes at 10:46, effort 169. February pretending to be May.
Three miles at lunch on a clear, dry, 69-degree Friday, 23-percent humidity. Thirty-two minutes at 10:25, effort 143. A crisp one.
A 2.5-mile lunch walk on an overcast, breezy 67-degree day. Forty-one minutes. February, quietly.
January 2026 6
Forty-nine minutes of morning weights at 40 degrees, feels like 31. Effort 12. The end of the strength block's most consistent month: five sessions in January, none of them missed for weather.
Five point one miles at 8:36 in drizzle and 47-degree fog, feels like 42. Fifty-six minutes at 11:02, effort 181. Cadence at 80. The wettest, coldest five-miler in the book, and a steady one.
Forty-six minutes of morning weights at 41 degrees, feels like 35. Effort 9. Cold garage, warm barbell.
Forty-two minutes of morning weights at 7:41, overcast, windy, humid. Effort 19. The garage block continues at a lawful hour.
Four miles at 10:09 pace on a clear, dry 81-degree afternoon in January, which is a sentence that only makes sense in Texas. Forty-one minutes, effort 177, one PR.
4:50 in the morning, the first Monday of 2026. Fifty-three minutes of weights in the garage, 50 and foggy outside. The last pre-dawn session in the log. The rule came later, and it came for exactly this.
December 2025 9
New Year's Eve, 4:35 in the morning, 38 degrees outside. Forty-three minutes of weights in a cold garage. An hour that violates the 6:30 rule and a date that excuses it: the year was ending, and the plan was to end it with a barbell.
Two point six miles at 9:28 pace on a clear, dry, 57-degree afternoon. Twenty-five minutes. The last run of 2025, brisk.
Thirty-seven minutes of weights the very next morning, overcast and humid. Effort 7. Back-to-back gym days. A block is forming.
Fifty-four minutes of weight training at 7:53 on a drizzly, foggy morning. Effort 12. The morning gym slot, established: after the children are up, before the day begins.
Five point one miles at lunch, overcast, 64 degrees, 94-percent humidity. Fifty minutes at 9:55, effort 189. A five-miler under ten-minute pace, mid-December. The winter is where the speed lives.
A 1.9-mile afternoon walk, clear, dry, 68 degrees. Thirty-three minutes. Two walks in two days. Recovery, or the school run.
A 3.8-mile morning walk, clear and 66. Eighty minutes at a 21-minute pace, effort 18. A long walk, unhurried. There may have been a stroller.
Four point three miles on a clear, 59-degree afternoon. Forty-six minutes at 10:40, effort 131. A run in a light jacket, possibly. December in central Texas is the best month for this.
Three point three miles on a grey, 47-degree December afternoon. Thirty-three minutes at 9:54. A Nike Run Club speed session, merged. The cold made the intervals feel free.
November 2025 8
Three miles the day after Thanksgiving, 60 degrees and partly cloudy. Thirty-four minutes at 11:20, effort 65. Easy, digestive.
Forty-four minutes of Sunday-afternoon weight training, overcast and 65. Effort 22. The beginning of what became the winter strength block: two sessions a week, Dec into Feb, the most consistent gym stretch in the log.
Three point one miles at 8:53 pace, the fastest average pace in the log for a run this long. Overcast, 82 degrees. Twenty-eight minutes, effort 127. Two PRs. A good Tuesday.
Three miles at 9:32 pace on a mostly clear, breezy 69-degree morning. Twenty-nine minutes, effort 112. Autumn running, at last. The pace comes easier when the air isn't fighting back.
Twenty-one minutes of HIIT on a clear, dry, 59-degree afternoon. Effort 7. Brief, bouncy, over.
Three point six miles on a clear 88-degree afternoon in November, which should not be possible and was. Thirty-seven minutes, effort 139.
Three point eight miles on a clear 76-degree afternoon. Thirty-eight minutes at ten-minute pace, effort 135. Even, unfussy, done.
Three point three miles on a clear, still, 71-degree Sunday afternoon. Thirty-three minutes at 9:48. The first run in twelve days, and the first genuinely pleasant weather since spring. November, finally.
October 2025 7
Twenty-nine minutes of weights on a clear 85-degree afternoon. Effort 4. Light. The day after a run, the day before nothing in particular.
Three miles at 9:38 pace on a clear, windy 88-degree afternoon. Twenty-nine minutes. Effort 109. The three-mile lunch run: reliable as a tide table.
Four point five miles on a clear, dry 88-degree afternoon. Fifty minutes at 11:08, effort 154. Cadence dipped to 72. The legs were somewhere else.
Forty-three minutes of strength work on a clear, 89-degree Friday afternoon. Effort 17. The barbell, mid-October.
Cincinnati, Ohio. Two point two miles at 8:56 pace on a humid, partly cloudy evening, 70 degrees. Twenty minutes. A travel run, the fastest average pace in the entire log, on hills that were not his.
Five point one miles on a clear 91-degree afternoon. Fifty-one minutes at 10:02, effort 194. The five-miler, one year and four days after Waco.
Three point one miles at 8:31 pm on the first of October, 80 and clear. Twenty-nine minutes at 9:19 pace. The fastest 5K-distance in the log, run after bedtime. The house asleep, the sidewalks empty.
September 2025 14
Three point one miles at 6:52 on a clear Sunday evening, 80 degrees. Twenty-nine minutes at 9:26. The evening slot, fast.
Six point three miles at 1:10 pm on a clear, dry 86-degree Friday. Sixty-four minutes at 10:09, effort 268. Nike Run Club's 10K Head Starts, per the duplicate entry the log has quietly merged. A 10K at lunch. The desk was informed.
Three point four miles in a real rainstorm, 7.4 millimeters of it, 78 degrees. Thirty-six minutes. A Nike Run Club speed session run in the rain, the guided voice competing with the weather.
Four point five miles at lunch, 88 degrees and feels like 96, clear. Forty-six minutes at 10:03, effort 171. The September heat is a rerun of August with shorter days.
Thirty-eight minutes on the Kickr on a warm, mostly clear afternoon. Effort 42. The last indoor ride in the log for almost a year. The bike, from here, hangs on its hook and waits.
Thirty minutes of HIIT on a clear, 88-degree afternoon. Effort 23. High intensity, intervals, training. The initials are doing a lot of work.
Four point one miles at 9:21 pace on an overcast Sunday morning, 82 degrees. Thirty-eight minutes, effort 137. The fastest run over four miles in the log. Mid-September, and the fitness is peaking without anyone having planned a peak.
Fifty-five minutes of strength work on a clear, 92-degree Friday afternoon. Effort 51. A serious gym session. Something was being built for.
Two point five miles at 6:56 in the morning, 67 degrees and still, clear. Twenty-eight minutes at 11:07. The coolest run since spring, and an easy one, on purpose.
Two point eight miles at 9:42 pace on a clear 85-degree afternoon. Twenty-seven minutes. Quick and quiet. Effort 94.
Three miles at 9:10 pace on a clear 83-degree afternoon. Twenty-eight minutes. The fastest three-miler in the log, on a Monday. Effort 111.
Six miles at 11 am, 89 degrees, feels like 94, partly cloudy. Sixty-five minutes at 10:51, effort 190. The long lunch run, first Friday of September.
Five point one miles at 6:56 the next morning, 74 and clear. Fifty-five minutes at 10:44, effort 168. The early slot, proven twice. It works when the children allow it.
Two point seven miles at 6:54 am, 72 degrees and 95-percent humidity, clear. Twenty-nine minutes. The first run in the log at the exact hour the rules would later allow. Cool, by the standards of the month. Damp, by any standard.
August 2025 14
Four point four miles in actual rain, 89 degrees, feels like 97. Forty-two minutes at 9:39 pace, effort 160. The rain was warm. Everything was warm.
Three point seven miles at lunch, 92 degrees and feels like 100. Forty-seven minutes at 12:34 pace, the slowest in weeks. Effort 91. The heat won this one on points.
Seventy-four minutes of morning strength work, effort 48, on a muggy, overcast day. The longest gym session in the log. The barbell had a good week.
Three miles at 9:44 pace on a drizzly, 87-degree lunch hour, feels like 95. Twenty-nine minutes. Two days after the eight-miler, and faster. Effort 124.
Eight point one miles at 6:46 on a Sunday evening, 89 degrees and clear. Ninety-one minutes at 11:16 pace, effort 322. The long run of the summer, done at dusk because dawn was spoken for. The sun set somewhere around mile six.
Three miles at 10:30 in the morning, 85 degrees and feels like 92, mostly clear. Thirty-one minutes. The late-morning slot, tested. It was hot then too.
Twenty-eight minutes on the Kickr on a 92-degree afternoon. Effort 60. The first trainer ride since June and, as it turned out, one of the last. The bike would go quiet for a year.
Three miles on a Sunday afternoon at 94, feels like 102. Thirty minutes at 9:47. Effort 123. There is no version of this that was comfortable.
Four point three miles at lunch in drizzle, 89 degrees and feels like 98. Forty-six minutes, effort 162. A little longer, a little wetter, the same furnace.
Three point one miles on a mostly clear 91-degree afternoon, feels like 100. Thirty-two minutes. The fourth three-miler in six days. The noon patrol has a rhythm, and the rhythm is heat.
Three miles at 9:24 pace on a 90-degree afternoon, feels like 99. Twenty-eight minutes. Fast, hot, short. Effort 109.
Three miles at lunch on a Sunday, 90 degrees and feels like 100. Thirty-one minutes at 10:09 pace, effort 131. The heart rate on these is not what a three-miler should cost. It is what August costs.
Three miles on a clear August afternoon, 94 degrees, feels like 103. Thirty-two minutes. The Texas summer resumes its argument, and the captain resumes ignoring it.
Home. Three point four miles at lunch on a drizzly, 80-degree day. His caption: a lunch run with a chilly cool down. The cold plunge, back in service. Twelve days after RAGBRAI and the first run in nearly three weeks.
July 2025 11
RAGBRAI, Day Four. Forest City. Seventy-five point eight miles at 12.4 mph, six hours seven moving, eight and a half elapsed. Effort 399. Overcast and 79. Three hundred miles in four days, and the legs, according to the pace, were finally tired. He rode it anyway.
RAGBRAI, Day Three. Estherville to somewhere far. One hundred one point eight miles at 14.2 mph, seven hours eleven moving, ten hours elapsed. Effort 770, the highest in the log by a distance no other entry approaches. Overcast, 78 degrees, 84-percent humidity. A century, on a Tuesday, after two days of riding. The single most convincing piece of evidence in this entire archive that the full distance is possible.
RAGBRAI, Day Two. Dickinson County. Forty-five point six miles at 13.7 mph in humid drizzle, three hours twenty moving, nearly six elapsed. Effort 204. The short day, which on RAGBRAI means a long lunch.
RAGBRAI, Day One. Orange City, Iowa. Seventy-seven point six miles at 13.3 mph, five hours fifty moving, nine hours twenty elapsed. Effort 519. A mostly clear 69-degree morning that became something else by afternoon. The longest ride of his life, by forty miles, and there were three more to go.
Five point seven miles in Cedar Rapids, drizzle and a 15-mph wind, 81 degrees. Fifty-six minutes at 9:47 pace, effort 201. The fastest run over five miles in the log. The Midwest agrees with him.
Three point four miles at 9:49 pace on a clear, 84-degree Cedar Rapids afternoon. Thirty-four minutes. A quick one between the long rides.
Thirty-seven point two miles on a clear Sunday morning in Cedar Rapids, 76 degrees. Three hours eleven minutes moving, four and a half elapsed. The longest ride in the log, and the shakedown cruise for what came the following week. Effort 201. Stops were made. Pie was possibly involved.
A 2.2-mile walk at 7 am in Cedar Rapids, clear and 68. Forty-two minutes. The cool Midwestern morning that Texas does not offer in July.
Fifteen point eight miles outdoors on a real bicycle on real roads, Cedar Rapids, mostly clear and 85. Eighty-two minutes at 11.5 mph, elapsed time nearly two hours, meaning stops. The first outdoor ride in the entire log. The Belafonte leaves the harbor.
A 1.1-mile walk in Cedar Rapids on a muggy, drizzly July third. Twenty minutes. Holiday logistics on foot.
Five point six miles the next afternoon in Cedar Rapids, mostly clear and 82. Sixty-one minutes at 10:51, effort 225. The heart rate ran higher than the pace explains, which is what a new place does.
June 2025 22
Cedar Rapids, Iowa. Five point six miles on a drizzly, 79-degree afternoon, sixty-one minutes. The summer expedition to the Midwest begins with a run through the in-laws' town, or someone's. Different sidewalks, same pace.
A 1.1-mile lunch walk in 85-degree drizzle. Seventeen minutes. Packing, presumably, was the real workout.
Thirty-seven minutes on the Kickr on a drizzly Monday morning. Effort 48. The last indoor ride before Iowa.
Five miles at 7 pm on a clear, 87-degree Sunday. Fifty-six minutes. The evening run, a slot that will become important once the sun stops being reasonable.
Eight point six miles at 7:03 on a Saturday morning, 76 degrees and 90-percent humidity, light drizzle. Ninety-four minutes at 10:53 pace, effort 254. The longest run of the summer. Started early, by permission of the calendar, and finished before the heat could object.
Forty-one minutes of strength work in the late afternoon, 91 degrees outside. Effort 15. A double day, the second half of it under a roof.
Five point two miles at 7:57 on a drizzly, 96-percent-humidity morning. Fifty-five minutes at 10:35 pace. Effort 149. The air was mostly water.
Fifty-three minutes on the trainer at 7:54 on a clear, humid morning. Effort 83. A steady ride in the last window before the day gets loud.
Forty minutes on the Kickr at lunch, 88 outside and feels like 96. Effort 29, an easy spin. The room with the fan.
Six point two miles on a drizzly, 85-percent-humidity Sunday morning, 81 degrees. Seventy-six minutes at 12:19 pace, effort 217. The long run, done slowly, in weather with the consistency of soup.
Thirty-one minutes of strength work directly after the fast 5K. Effort 60, unusually high for the gym. A brick of a different kind.
Three point two miles at 9:10 pace on a warm, partly cloudy lunch hour. Thirty minutes. The fastest average pace in the log to date, followed immediately by the weights.
Five point five miles at lunch in drizzle, 78 and humid. Fifty-five minutes at 9:56 pace. The first sub-ten-minute average on a run over five miles. Effort 170. A genuine marker.
Forty-eight minutes on the trainer on a humid, drizzly 82-degree afternoon. Effort 92. A real ride, indoors, in June.
Five point one miles at 1:23 pm, 87 degrees and feels like 94, overcast. Fifty-seven minutes, effort 212. The lunch run, taken later and paid for accordingly.
Five point one miles at 7:52 on a clear, humid Monday morning. Fifty-two minutes at 10:21 pace, effort 142. A fast one, by this log's standard, and an early one, by the rules.
Forty-seven minutes on the Kickr on a 97-degree Sunday afternoon. Effort 26. Inside, with the door shut and the fan on. The trainer earns its keep in June.
Four point three miles on a Saturday afternoon at 96 degrees, feels like 101. Forty-five minutes at 10:25 pace, effort 175. A run at the hottest hour of the hottest day so far, at a faster pace than the cool ones. The captain does not always take advice.
Five point one miles on the fourth consecutive morning, overcast and 80. Sixty-five minutes at 12:42 pace, effort 194, the slowest of the four, which is what four in a row costs.
Five point three miles in drizzle and 78-percent humidity, 80 degrees. Sixty-one minutes. Three five-mile runs in three days. The June block opens hard.
Five point one miles at 8:36 the next morning, overcast, 78 and humid. Fifty-seven minutes. The second five-miler in seventeen hours. Cooler by fifteen degrees and it showed.
Five point two miles at 4 pm on the first of June, 93 degrees and feels like 98. Fifty-nine minutes, effort 188. The afternoon run, an act of stubbornness formalized.
May 2025 10
Sixty-six minutes of strength work on a muggy Saturday morning. Effort 40. The longest gym session in the log, on the last day of May.
Five point two miles at lunch, 89 degrees, feels like 98. Fifty-seven minutes, effort 206. Late May, and the noon patrol continues in conditions that a reasonable person would call a reason not to.
Eight point two miles at 7:39 in the morning, 80 degrees and 88-percent humidity, feels like 88. One hundred and one minutes, effort 356. A run that took nearly everything the morning had. The longest since April.
Five miles at 84 degrees, feels like 87, overcast and windy. Fifty-five minutes, effort 194. The long runs are now being done in weather that argues against them.
Twenty-five minutes of strength work with the outside reading 93, feels like 100. Mid-May. The furnace is lit.
Six point five miles at 7:32 the next morning, humid and overcast. Sixty-nine minutes at 10:32 pace. Thirteen miles in twenty-four hours. Someone is racing a calendar.
Six point six miles on a clear, dry, 74-degree Monday morning. Seventy-three minutes, effort 282. A long run on a weekday, which is what happens when the weekends belong to three children.
A 2.2-mile lunch run, twenty-three minutes, 79 and breezy. Effort 80. Short, but the streak of lunch runs is now the spine of the week.
Fifty-nine minutes of strength work on a clear Sunday morning at 66 degrees. Effort 15. The long gym session, back to back with yesterday's.
Twenty-nine minutes of Saturday-evening weights. Effort 11. Clear and 75. The garage door open, probably.
April 2025 19
A 1.4-mile lunch walk on a warm, overcast, windy day. Twenty-six minutes. The end of April, on foot.
Four point four miles in Austin proper on a clear 85-degree afternoon. 10:17 pace, effort 180. A run away from the home routes, city sidewalks instead of neighborhood ones.
4:46 in the morning, thirty-nine minutes on the Kickr, humidity at 99. The last pre-dawn session on record, by the grace of the 6:30 rule.
Eleven miles on an overcast, windy 69-degree morning, the longest run in the log. One hour fifty-eight moving, two forty-two elapsed, meaning something in the middle involved standing still. Effort 404. The peak of the spring. He did not know it was the peak.
Thirty-three minutes of weight training on a warm, overcast late afternoon. Effort 5. Light, deliberate, unglamorous.
Five point two miles on a clear 83-degree Monday lunch, 10:48 pace, effort 165. The lunchtime long run, an institution in the making.
Two miles at 9:45 pace straight off the bike, 85 degrees, windy. Twenty minutes. A small brick, deliberately built.
A twenty-six-minute Sunday spin on the trainer, hot and windy outside. A warmup for the run that followed.
Five point one miles at lunch on a clear 81-degree Friday. Fifty-eight minutes, effort 211. Two runs over four miles in two days. The April volume is real.
Four point six miles at lunch, 81 degrees and clear, fifty-three minutes. His caption on Strava: finally warm enough to enjoy the cold plunge afterward. A man with a cold plunge and a plan.
Three point one miles at 9:32 pace, forty minutes after the weights. A clear, 72-degree afternoon. The fastest 5K-distance run in the log so far. Something is working.
Thirty-two minutes of lunch strength work on a clear, cool, dry day. Effort 7. Squats, hinges, whatever the app said.
Nike Run Club: Two Hard, One Easy. A 2.5-mile interval session on a clear, dry, 66-degree afternoon. Twenty-six minutes. Speedwork, formally introduced.
Sunday evening, a treadmill, 2.5 miles at ten-minute pace. The first Nike Run Club guided run, per the caption. A coach's voice in the earbuds and a belt under the feet.
Ten point one miles on a humid, drizzly Friday morning, 78 degrees. Two hours and three minutes at 12:15 pace, effort 421, the highest single-session effort in the log. The first ten-miler since Waco. He walked some of it. He finished all of it.
Fourteen minutes of strength work on a damp morning. Effort 3. The session that was mostly a warmup for a session that did not happen.
A 2.5-mile lunch walk in 92-percent humidity and light drizzle. Forty-six minutes. The day after a six-mile run: legs kept moving, expectations lowered.
Six miles at lunch on a humid, drizzly 74-degree day. Seventy-three minutes, effort 276. A big lunch. The captain returns to the desk somewhat altered.
A 2.5-mile walk on the first morning of April, overcast and mild. Forty-six minutes. A warmup, in the broadest sense, for the six miles to follow.
March 2025 20
Sixty-one minutes on the Kickr at lunch, effort 146, cadence 85. One of the few trainer rides that recorded cadence, which suggests the watch was paying attention for once.
A 1.9-mile morning walk under overcast skies. Thirty-four minutes. The last day of March, taken at a walking pace.
Forty-two minutes of evening weights on a warm, humid Sunday. Effort 9. The garage, the barbell, the end of a weekend.
Three point two miles at 83 degrees, feels like 87, on a clear Saturday afternoon. Thirty-six minutes. The heat has arrived, and it has arrived early.
Seventy-one minutes indoors on a drizzly, humid Friday lunch, effort 109. The same duration as Tuesday, half the suffering. Even the engine room has moods.
Seventy-one minutes on the trainer at lunch, effort 210. A clear, 82-degree day outside. The hardest ride in the entire log to this point, and it ends the March block with a flourish.
A fourteen-minute walk an hour and a half after the eight-miler. Point eight miles. A cooldown that got its own line, which is fair.
Eight point one miles at 7:49 on a clear, 63-degree morning. Eighty-nine minutes at 10:57 pace, effort 316. The longest run since the race, and the first that looks like half-marathon training. It was.
Seventeen minutes of weights on a hot Sunday afternoon, 87 and feels like 90, bracketed by two five-minute jogs the log declined to count. The abbreviated session.
Fifty-six minutes of strength work at lunch on a clear, dry, 61-degree day. Effort 29. The longest gym session so far. Somebody found a program.
Forty-seven minutes on the trainer with the outside air at 87 degrees and 12-percent humidity, dry as paper. Effort 108. The Kickr does not care about the dew point.
A 3.1-mile morning walk on a mild, mostly clear day. Fifty-six minutes. The morning after a seven-mile run, this is exactly what the legs asked for.
Seven point one miles at lunch on a dry, clear, breezy 73-degree Tuesday. Seventy-nine minutes. The longest run since Waco, by a wide margin, and effort 255 to prove it.
4:33 in the morning, again. Forty-six minutes on the Kickr at 41 degrees outside. The final 4 a.m. ride in the log. May it stay that way.
Thirty-eight minutes of strength work on a windy, partly cloudy Sunday afternoon. Effort 7. The captain does his squats and does not enjoy being asked about them.
4:21 in the morning. Forty-six minutes on the trainer in fog and 100-percent humidity. One of the last pre-dawn entries before the 6:30 rule. Recorded as a warning.
A four-mile run on a mostly clear 80-degree afternoon, 10:57 pace, effort 186. The first warm run of the year. The season is turning, and the season here turns toward heat.
Thirty-six minutes on the Kickr at lunch, clear outside with a 23-mph wind and 14-percent humidity. A dry, blowing day, spent in a room with neither.
Five point one miles in drizzle and 99-percent humidity, 66 degrees, fifty-six minutes. Effort 226, a big number for the distance. The air was thick enough to chew.
A twenty-five-minute Sunday-morning spin. Clear and 64. A recovery ride, or a ride that ran out of time. Either way, it was logged.
February 2025 11
Sixty-four minutes on the trainer at lunch, effort 153. The hardest ride since December. Something in the plan called for it.
Three point one miles, three days later, at 68 degrees and clear. 10:08 pace. Same route, thirty-six degrees warmer. Texas in February is two seasons a week.
Three miles at 32 degrees, feels like 23, on an overcast morning. The coldest run in the book. 10:46 pace. Gloves, presumably.
A 2.7-mile walk on a mild, overcast lunch hour. Forty-four minutes. Effort 27, which for a walk suggests a hill or a conversation.
Thirty-six minutes on the trainer at 37 degrees, feels like 25, wind at 15. The coldest ride in the log, and it happened indoors, as the coldest rides should.
Forty-eight minutes on the Kickr at lunch, drizzle outside, 98 percent humidity. Effort 85. February in central Texas is a damp towel.
A two-mile lunch walk, grey and 54 degrees. Thirty-three minutes. A walk, honestly logged.
Forty-six minutes on the trainer on a clear, 79-degree Friday afternoon in February. The weather outside is a rumor the engine room has heard about.
A 3.6-mile lunch run on a humid, overcast 72-degree Thursday. Forty-two minutes. Effort 132. The run was harder than the pace suggests, which will become a theme.
Forty-two minutes on the Kickr, effort 117, on a warm, overcast, windy afternoon. Two hard rides in three days.
Forty-six minutes at lunch, effort 113. February begins with a hard ride under a low grey sky.
January 2025 12
Forty-six minutes on the trainer with the humidity at 100 percent outside and fog on everything. The spare room, as ever, unbothered.
Forty-five minutes indoors on a drizzly 46-degree Monday morning, effort 80. The last week of January. The consistent rides are the ones nobody talks about.
Twenty-five minutes on the Kickr the next afternoon, effort 55. Two short rides back to back. The block is thinning but not gone.
A twenty-seven-minute ride on a cold, clear, windy afternoon. Late January. Whatever else the day contained, this got in.
Thirty-one minutes on the trainer on a drizzly Friday afternoon. Short, sharp, effort 56. A ride squeezed between things.
Five point two miles two days after the last five. Sixty minutes, overcast, 49 degrees. Effort 156. Two long-ish runs in three days is a pattern, and patterns are the point.
Eighty-one minutes on the Kickr on a cold, overcast morning. The trainer rides keep stretching. Effort 80: long and steady, not hard.
Five miles on a 41-degree morning, feels like 33. Fifty-six minutes. The first five-miler of the year, run into a partly cloudy wind. The captain is going long again, slowly.
Forty-eight minutes on the trainer on a raw, windy afternoon, 45 and feeling like 34. Effort 110. Hard, and sheltered.
A 3.7-mile run at 39 degrees, feels like 30, under a grey sky. Ten-thirty pace. Cold enough that the run, for once, wasn't about the heat.
Three miles on a humid, mild Sunday morning, 10:24 pace. Effort 104. The January runs begin, one at a time.
New Year's Day. A 2.5-mile run at 9:25 pace on a cold, clear afternoon, the fastest mile split in the log to date. A resolution, executed in twenty-four minutes.
December 2024 12
Christmas night, 8:06 pm, thirty minutes of weight training in the garage. Three children asleep, one adult lifting things. A quiet holiday entry.
A 2.6-mile run at 7:14 on a clear, 48-degree morning five days before Christmas. Thirty minutes, easy. The first run in six weeks. It went fine, and asked nothing.
Ninety-four minutes on the Kickr, the longest ride of the winter, on a muggy, drizzly December morning. Effort 158. Nobody rode ninety-four minutes to nowhere by accident.
Sixty-four minutes indoors on a foggy, 94-percent-humidity Friday morning. Fifth ride in six days. The block is holding.
Seventy-one minutes on the trainer at 7:34 in the morning, 35 degrees outside, feels like 28. Effort 93. A frost on the window and the spare room warming up one watt at a time.
An hour at lunch on the Kickr, clear and 59 outside. The engine room is the most reliable place on the vessel.
Sixty-five minutes on the trainer on a cool, humid, overcast Tuesday morning. Effort 44. The ride you do on a Tuesday because it's Tuesday.
Sixty-two minutes indoors on a mild, grey Sunday. Effort 41, a genuine easy ride. Two rides and a swim in one weekend.
Forty-seven minutes on the Kickr on a cold, drizzly Saturday afternoon, a few hours after the swim. A double. In December. Somebody is taking this seriously.
A morning pool session in the rain, 43 degrees and pouring outside: 1,097 meters in thirty-two minutes, about 2:56 per hundred. Two months after Waco, the captain returns to the water on purpose. A good sign. The last swim for five months. A less good sign.
A twenty-four-minute indoor walk on a drizzly, raw December noon. Treadmill, probably. Twenty-eight-minute miles. Whatever this was, it counted.
An hour on the trainer at lunch, and a hard one: effort 124. The December block begins with a statement of intent.
November 2024 19
Thanksgiving morning, fifty-five minutes on the Kickr at a gentle effort. Grey and windy outside. The ride was cleared with the family and, presumably, with the turkey.
Sixty-six minutes on the trainer at lunch, a mild overcast day outside. The day before Thanksgiving. Provisions were laid in.
A 2.8-mile lunch run on a clear 75-degree Monday. Eleven-forty pace, effort 111. A run with a heart rate that suggests it was not, strictly, easy.
Fifteen minutes of evening yoga, indoors, effort score of one. The lowest number in the entire log. The captain has heard of stretching.
A one-mile evening walk before dinner. Twenty-two minutes. The rare entry with no training purpose whatsoever, which is its own kind of purpose.
An hour indoors on a dry, still, 54-degree Thursday morning. Steady state. The Belafonte at cruising speed.
Eighty-six minutes on the Kickr on a cold, clear morning, 50 degrees at the window. Relative effort 131, the biggest ride of the block so far. The captain is building something. He has not said what.
Rain outside, 2.6 millimeters of it, and sixty-five minutes on the trainer inside. For once the room with no view has the better weather.
Thirty-seven minutes on the Kickr at lunch. Short, warm, unremarkable. The log is faithful even to the days that don't earn it.
A lunch ride, sixty-one minutes, on the trainer. Outside it is 77 and clear, which is exactly the kind of day one does not ride indoors, and yet.
A 2.2-mile morning walk under clear skies at 60 degrees. Recovery, or an errand, or both.
Seventy-one minutes indoors on a grey Monday morning. Relative effort 105. The winter block is officially underway, whether or not anyone announced it.
A Sunday afternoon on the trainer, sixty-one minutes, 81 degrees and clear outside. Sunday rides in November are a pleasant lie about the weather.
Four point two miles on a clear, cold-for-here Saturday morning, 59 degrees. Fifty-four minutes. The first run past four miles since Waco. Nothing to report, which is the report.
An hour on the Kickr on a warm November afternoon, and a hard one: relative effort 119, the highest since the race. Somebody put an interval in the plan.
A two-and-a-half-mile walk on a humid, partly cloudy morning at home. Seventeen-minute miles. The dog, if there is a dog, is not credited.
A twenty-seven-minute walk in Fairfax County, Virginia, on a mild November lunch hour. Business travel. The expedition has field offices.
Forty-six easy minutes on the trainer immediately after the treadmill, still before six. A double session at an hour that would later be outlawed. Recorded here for the historical record.
5:11 in the morning, a treadmill, twenty-four minutes at a fourteen-minute pace. An experiment in pre-dawn training that was, by later decree, never to be repeated. The captain does not shove off before 6:30.
October 2024 13
An overcast, windy 87-degree afternoon at the end of October, spent riding sixty-two minutes on a bicycle bolted to the floor. The rides are getting longer. The view is not.
The second attempt, twenty minutes later, held for forty-five minutes. Whatever went wrong the first time was fixed by starting over, which is most things.
A sixteen-minute ride, abandoned. Humidity at 97 percent, fog outside, and some mechanical or spiritual difficulty inside. The log records it without comment.
Eighty-eight minutes, indoors, on a mild and hazy October morning. A ride long enough to require a second bottle and a certain acceptance of the ceiling.
Sixty-six minutes on the trainer, a mostly clear morning at 62. The longest indoor ride since the race. The plan for the winter is beginning to reveal itself: it lives in a spare room and it does not go anywhere.
A thirteen-minute jog immediately after the ride. One point one miles. Less a run than a brief inspection of whether running still works. Findings: yes, approximately.
An hour and two minutes in the engine room, 58 degrees and clear beyond the window. The kind of ride whose only purpose is to have been done.
Forty-six minutes on the Kickr on a cool, bright morning, 63 outside and windy. The first honest ride since Waco. The trainer does not record distance, which is how it prefers things.
Nine days after the race, a thirty-three-minute ride to nowhere on the trainer. The body reports for duty. The body is not yet asked to do anything about it.
IRONMAN 70.3 Waco, Leg Three. Thirteen miles of Texas afternoon at 92 degrees, three hours' worth. The effort climbed all the way to the line and stayed there. He crossed it inside the 8:30 cutoff, which he later described as just inside. The expedition, technically, was a success.
IRONMAN 70.3 Waco, Leg One. His first time ever in open water. The heart rate went, in his words, off the charts, and for twenty-odd minutes he essentially could not swim. Then it settled. He came out of the water in 1:01:45, still in the race, which is the only statistic that mattered that morning.
A short shakeout under a cloudless 86-degree sky, four days out. Two and a half miles, eleven-minute pace, the legs held in reserve like a good bottle. The plan, such as it is, is to arrive rested.
Five days before Waco. The captain rides the stationary trainer in a spare room while, outside, the first of October reads 92 degrees. Fifty-one minutes. Nobody says the word taper out loud.
The log opens October 1, 2024, five days before IRONMAN 70.3 Waco. Everything before that is prehistory.