About GrayGhost Labs
Origin Story
GrayGhost Labs started as my digital junkyard: a place to park questions that wouldn't stay inside a spreadsheet. The tools are the coping mechanism.
Everything here was built first for personal use and friends, then made public because if it's useful to one stubborn firefighter who thinks numbers beat vibes, it might be useful to others.
Who is GrayGhost?
GrayGhost is the pen name for a stubborn 30+ year firefighter who spends off days buried in macro charts, Bitcoin data, market structure, portfolio research, sports models, and whatever new dataset has created a question he can't leave alone. By day it's fire trucks and medical calls; by night it's spreadsheets, models, and asking why the market or the oddsmakers just did what they did.
The persona is simple: take the curiosity of a markets nerd, the dark humor of someone who's seen too many bad days, and the skepticism of a noir detective who assumes every story—from governments to markets to models—is leaving something out.
"In life, there are no black and white answers, only shades of gray." That's the working assumption behind GrayGhost Labs: the tools don't promise certainty, they just try to make the uncertainty a little more honest.
Philosophy
- •Tools > takes – Build things that solve problems, not things designed mainly to generate engagement.
- •Show the receipts – Freeze the rules, track the results, document the misses, and don't rewrite the story after the fact.
- •Uncertainty is allowed – A useful model does not need to pretend certainty exists. Confidence, limits, and missing data are part of the answer.
- •If it breaks, say so – Models decay. Data fails. Assumptions stop working. Fix it, document it, or retire it.
How the tools are built
Every project in GrayGhost Labs starts as a personal annoyance: a question that's hard to answer, data that's annoying to pull, or a problem that keeps showing up at work or in the markets. The workflow is the same every time:
- 01
Start with the real question
What decision or uncertainty are we actually trying to understand?
- 02
Collect boring, defensible data
Reliable inputs before clever models.
- 03
Define the rules before looking at the answer
Avoid changing the test just because the result is inconvenient.
- 04
Track the receipts
Backtests, prospective results, failures, missing data, and revisions.
- 05
Fix it or kill it
If the model does not survive contact with reality, change it or retire it.
- 06
UI comes last
A project becomes a public GrayGhost tool only after it is useful enough to earn one.
If something makes it onto this site, it's because it earned its keep first on the builder's own time and money.
Contact
Find me on X — DMs are the fastest way. If you've got a problem worth building for, start there.
DM @GrayGhost on X