BLUF (Bottom Line Up Front)
In 2016 I researched pattern of life analysis and machine learning for a space operations program, worked out how to apply that science to classified satellite operations, and wrote the requirements to get it built. The concept was solid. The software and the analytic logic underneath it never reached the capability I was after. Ten years later I have a brain injury, six months of wearables data, and the same problem I had then: patterns I can’t see by looking at a dashboard. So I built the tool myself and pointed it at me. The engine flagged an anticipatory stress response eight days before my dog died.

In 2016 I spent a long stretch inside pattern of life analysis for a space operations program. The requirements were the deliverable, but they were the last part of the work, not the first. What came before was the science: how pattern of life analysis actually functions as a method, what machine learning could and couldn’t do with telemetry that arrives sparse and irregular and often not at all, and how to take an approach built for tracking people on the ground and turn it into something that held up against classified satellite operations. Then the part that decides whether any of it ships, which was positioning the requirements and the operational concept so the capability had a path to actually getting built.

The job underneath all of it was to help space operators take a satellite that had been flagged as a potential threat and figure out what it actually did. Not where it was at any given moment, but what patterns its behavior followed across days and weeks and months. The idea was that if you could build a good enough baseline of how a satellite normally operated, you could catch the moment it started doing something it shouldn’t. A maneuver that didn’t fit the pattern. A loiter where there should have been a pass. A signal where there should have been quiet. Intel people call the broader method activity-based intelligence, and the technique we were building for has a name of its own: pattern of life analysis — the same approach the military pioneered during drone operations in Iraq to track targets who thought they were unobservable.

The concept held up. The execution didn’t. Most of the vendors in the space could draw a beautiful dashboard and call it intelligence. The actual pattern recognition, the part where a pile of telemetry becomes a story about what an adversary is about to do, was beyond what any of them could reliably deliver. And it wasn’t only the software. The logic underneath it, the analytic model of what a pattern even is and what makes a deviation meaningful, never got built out far enough to enable the capability I was pushing for. We knew what we wanted. The thing that could do it didn’t exist yet.

Ten years later I have a brain injury, six months of daily Oura and Garmin data, a training journal full of Neuro-RPE logs from every session I’ve run, and exactly the same problem. There are patterns in this data that I cannot see by looking at a dashboard. Garmin will tell me my body battery is at 32. Oura will tell me my readiness is yellow. Neither of them will tell me why my readiness is consistently lower on Mondays, or that the day I lost my dog showed up in my heart rate variability eight days before she actually passed, or that there is a measurable correlation between the training I do on a Tuesday and the symptom day that follows on Wednesday.

So I built the tool myself.

Two Wolves

In the Eddas, Sköll and Hati are wolves that run the sky in permanent pursuit. Sköll is after Sól, the sun. Hati, named in Grímnismál as the son of Hróðvitnir (one of Fenrir’s names) and often identified with Mánagarmr, the moon-hound, is after Máni, the moon. Snorri puts their brood in the Ironwood, east of Midgard. They have been running since the sun and moon were first set moving, and the chase ends exactly one way: at Ragnarök they finally close the distance and swallow what they have been chasing.

That is an odd thing to name a health tool after until you look at what the two wolves are actually chasing. The sun makes its own light. It broadcasts constantly, whether or not anyone is watching it. The moon makes none of its own and is visible only because something else is lighting it. Two quarries, two completely different kinds of signal, and no way to track them with the same method.

My data splits along exactly that line, which is why the name stuck. Sköll runs down the sun: the loud signals the wearables put out on their own, heart rate variability, resting heart rate, sleep staging, every metric Oura and Garmin will hand over without being asked for it. That half is TECHINT. Hati runs down the moon: mood, pain, cognitive load, the days that felt wrong for reasons no sensor registered. None of that emits anything on its own. It exists in the system only because I report it by hand, which makes it HUMINT, and makes it the half that goes dark the moment I stop feeding it.

The rest of the myth maps just as cleanly. The wolves never stop, because a baseline is not a snapshot and there is no version of this where I collect enough data and then quit. They are patient in a way that turns out to be most of the discipline: it took twenty-five weeks of logging before my Monday problem showed up as anything more than a vague feeling about Mondays. And the pursuit is the point. Neither wolf is expected to catch anything tomorrow. They are expected to keep running, close enough to see what their quarry does next.

The Daily Briefing

// Field Intelligence Briefing Live
Priority Finding Sentinel protocol shows superior recovery response with +11.2 readiness delta versus Prowl’s flat 0.0 delta. Neurological load averages 4.3 vs 5.7, indicating Sentinel provides better stimulus-to-stress ratio for current TBI recovery phase.
Grief Impact Correlation March 6th readiness crash (−16.0 points, p=0.0394) aligns precisely with Cookie’s decline period, followed by March 24th recovery surge (+8.0) ten days post-loss. Operator’s system demonstrated expected bereavement stress response with subsequent adaptation.
Weekend Recovery Advantage Saturday emerges as optimal recovery day across sleep metrics (p=0.0057). Monday remains weakest sleep recovery day, creating weekly vulnerability window.
// Auto-generated daily by Claude on top of the PoL engine

Right now it’s barely a tool. The base capability is there. Daily ingestion from the Oura API, Garmin over its own connection, training logs pulled from the pages on this site, a short daily self-report I send in by text message, and an automatic barometric pressure feed. All of it lands in a local database I can query against. A statistical engine on top runs correlations, anomaly detection, and change point analysis — the same family of methods the MIT AeroAstro labs use to identify regime shifts in satellite behavior, turned inward on a human operator instead of a spacecraft. Claude sits on top of the whole thing and generates a daily field briefing that tells me in plain English what the numbers actually mean. No custom machine learning yet — that piece comes later, when there’s enough data to make training a real model worth the effort. For now this is an AI-built, AI-interpreted intelligence tool, and even at this early stage it’s already showing me things I would have missed.

Is Any Of This Real?

The biggest question this thing is trying to answer is the only one that really matters to me about any of it: is what I’m doing at DarkWolf Mission Log actually real, or is it just another training program that sounds good and falls flat in the data? Every protocol on this site, every dispatch, every claim about training that accounts for the brain — all of it has to survive contact with my own metrics. So far, the data is pointing in the right direction. Recovery is trending up. Sentinel sessions are showing a +11.2 readiness delta compared to my Prowl conditioning work — a gap larger than I expected and one I wouldn’t have spotted by feel alone. The patterns I thought I’d see are showing up. That’s not proof — it’s a small sample on one operator. But it’s the start of an evidence base, and an evidence base is the thing I never had before.

Recovery Scorecard — 174 Day Window
Sentinel Readiness Delta
+11.2
Average readiness change after a Sentinel session
Prowl Readiness Delta
0.0
Conditioning carries higher neurological cost
Sentinel Neuro Load
4.3
Average Neuro-RPE across all Sentinel sessions
Prowl Neuro Load
5.7
Average Neuro-RPE across all Prowl sessions
Sample: 1 operator · 174 days · n=15 logged sessions · not statistical proof, but the start of an evidence base

Patterns I Couldn’t See

A few things have already surprised me. I knew I went to bed later on Sundays. I didn’t know that across twenty-five weeks of data my Monday sleep scores averaged 77.7 while Saturday averaged 84.8 — a seven-point swing that is statistically significant and that I never would have caught on my own. That is the whole point of this kind of analysis. A delta that small is invisible on any single night, but show it to me across six months of data and it rewrites the way I program an entire week.

Sleep Score by Day of Week25 weeks observed
Mon
77.7
Tue
78.4
Wed
81.3
Thu
79.4
Fri
80.6
Sat
84.8
Sun
83.0
Monday averages 7.1 points below Saturday — statistically significant (p=0.0057)

I also didn’t realize how consistently Thursday was showing up as a day my system was asking for a lighter load. That one tracks perfectly with the CrossFit schedule I came up in, where Thursday was always the active recovery day. Two patterns. Both invisible to me until the tool surfaced them. Both now informing how I’ll train going forward.

The Surprise That Stopped Me Cold

She passed on March 14. The tool flagged a statistically significant readiness crash on March 6 — eight days before — and a corresponding recovery inflection on March 24, ten days after. An anticipatory stress response I was not consciously aware of, showing up in the data because the system was tracking my baseline carefully enough to catch the shift the moment it happened.

Anomaly Timeline — The Cookie Window
Mar 6 Crash −16.0
Mar 14 Cookie
Mar 24 Recovery +8.0
Feb 28 Mar 14 Mar 28
Crash detected 8 days before the event · recovery began 10 days after · p=0.0394

That is not pattern of life doing anything clever. That is pattern of life doing exactly what it is supposed to do. You build the baseline. You watch for the deviation. And when the deviation shows up, the data tells a story the operator didn’t know was being written.

Where This Goes

For now this stays a private tool. I want to put it through enough cycles to make sure it actually works — to make sure the signals are real signals and not statistical noise I have talked myself into — before I put it in front of anyone else. But the long-term goal is to open this up to other people in the TBI population. Operators tracking their own recoveries who need a way to see the patterns that consumer wearables aren’t built to find. Garmin and Oura have the data. They don’t have the analysis layer. That is the gap I am trying to close, and that is the mission this tool is eventually going to serve.

· · ·

The Inputs The Rings Can’t See

Here is the hole in six months of wearable data. The rings measure outputs. Sleep, heart rate variability, readiness, recovery. They have no idea what I put into the system to get those numbers. They don’t know I skipped magnesium, that I had two drinks with dinner, that I burned a ten-hour screen day fighting a deadline, or that a pressure front rolled through overnight. Those are the inputs, and the inputs are usually what move the outputs.

So I added a second collection stream. A short daily log I fill by text message. Supplements taken or missed, water, caffeine, alcohol, mood, subjective stress, cognitive load, and the behaviors that are supposed to help (sauna, cold plunge, meditation, time outside). On top of it the engine now pulls barometric pressure on its own, because a sharp drop in pressure is a documented headache trigger for a brain that has taken hits. None of that lives on a wrist. It has to be reported.

In intelligence terms, that is HUMINT. The device data is the technical collection, the signals and measurements that come off the sensors by themselves. The daily log is the human source on the ground reporting the things no sensor can reach. Once both streams sit in the same database, the engine can line up what I actually did against how I actually recovered, and against the days the symptoms showed up. Whether a readiness dip tends to follow the drinks, or a headache tends to track a falling barometer, are exactly the questions it can finally test.

I am not going to hand you a correlation yet, because I don’t have one worth trusting. This stream is days old, and lining up lifestyle inputs against recovery takes a few weeks of honest logging before the numbers mean anything. That is the part I want to be straight about. The machinery is built and the baseline is filling in. The day alcohol, or a screen-heavy week, or a falling barometer starts tracking with a bad morning, the tool will say so in plain language, the same way it caught the Monday sleep gap and the week around Cookie.

The HUMINT Factor

One last thing, and it is the flip side of that same idea. This is an intel tool. It is not a decision-making tool. It tells me what the data says. It does not tell me what to do with the data. That part is still on me — the HUMINT factor, the part where a human takes the intelligence and makes a call based on context the machine can’t see. I’ve already ignored the tool more than once. I’ll do it again. The operator on the ground always has information the system doesn’t, and the day I let an algorithm override that is the day this whole thing stops being useful.

That’s the deal I have with this tool. That’s the deal I plan to keep.

— RK