On April 1, 2026, at 6:35 p.m. EDT, four humans left Earth's orbit for the first time since Apollo 17 in 1972. Artemis II โ€” Reid Wiseman, Victor Glover, Christina Koch, Jeremy Hansen โ€” riding a 322-foot rocket on a 10-day slingshot around the Moon.

At roughly the same hour, a COBOL program on my laptop fetched live streamflow data from eight Sierra Nevada rivers, computed percent-of-normal against historical medians, sorted stations by mean discharge, rolled up watershed basin totals, and printed a 132-column formatted report.

Both terminated normally. Both did exactly what they were designed to do.

1959 meets 2026. Punch cards meet REST APIs. Grace Hopper meets the Moon.

Why COBOL?

The honest answer: I learned COBOL in college in the late 1980s and hadn't touched it since. I was curious whether it still worked, whether I could still think in it, and whether a language designed for batch processing on mainframes the size of refrigerators had any business talking to a live government REST API in 2026.

The answer to all three turned out to be yes.

COBOL is genuinely still running in some wild places. The Federal Reserve processes daily transactions on systems that trace their lineage to the 1970s. Some state unemployment systems still run on IBM mainframes installed before I was born. During COVID, New Jersey posted emergency job listings for COBOL programmers because their unemployment system was overwhelmed and they couldn't find enough people who knew the language. An estimated $3 trillion in daily financial transactions run through COBOL code right now.

Languages don't really die. They just stop being taught. COBOL is extremely good at exactly one thing: reading records, doing math on them, and printing formatted reports. That's also what a watershed data center does.

What It Does

The project is called sierra-flow-cobol. Every morning at 7:00 AM Pacific, GitHub Actions wakes up and runs a three-step pipeline: a Python fetcher pulls 30 days of discharge data from eight USGS gages across the Sierra Nevada, a COBOL program processes that data into a 132-column formatted report, and both the CSV and the report get committed back to the repo. A plain HTML dashboard reads the CSV client-side and renders everything live โ€” sparklines, percent-of-normal badges, basin roll-up, trend indicators. No framework. No build step. No API. One CSV file, two consumers.

SIERRA NEVADA WATERSHED ANALYSIS SYSTEM โ€” SECTION I: STATION STATISTICS
SITE ID STATION NAME REC MEAN(CFS) %NORM TREND
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
11290000 Tuolumne R at Modesto 31 2059.97 147.1 โ–ฒ RISING
11289650 Tuolumne R at LaGrange Dam 31 1872.84 156.1 โ–ฒ RISING
11266500 Merced R at Pohono Bridge 31 1647.32 205.9 โ”€ STABLE
11274790 Tuolumne R Grand Canyon 31 1361.68 151.3 โ”€ STABLE
11264500 Merced R at Happy Isles 31 932.68 207.3 โ”€ STABLE
11276500 Tuolumne R at Hetch Hetchy 31 443.55 126.7 โ”€ STABLE
11303000 Stanislaus R at Ripon 31 243.55 40.6 โ”€ STABLE
11284400 Big Creek nr Hetch Hetchy 31 3.09 38.6 โ”€ STABLE *** LOW FLOW ***
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
NORMAL TERMINATION. RETURN CODE: 0.

The Eight Gages

Three watersheds. Eight sensors. One storm system moving through all of them in sequence โ€” first hitting the headwaters, then the canyon reaches, then the valley floor โ€” a pulse you can watch travel downstream over days.

The most interesting station is the one with the lowest flow: Big Creek near Hetch Hetchy, 3 CFS. Every other gage in the network sits downstream of a major reservoir, which buffers and smooths the natural flood pulse. Big Creek has nothing between it and the sky. No dams. No regulation. It responds directly and honestly to whatever the Sierra Nevada is doing. When it spikes, a storm just hit. When it drops below normal, the snowpack is struggling. The COBOL flags it. It's the canary in the watershed.

As of April 1, the Merced is running at 206% of normal. The Stanislaus is at 40%. Big Creek is at 38%. The Sierra is uneven this spring โ€” wet in the south, dry in the north. That's a story you can read in eight numbers.

The COBOL Is Legitimately Sophisticated

This isn't Hello World. The program runs to about 850 lines and uses features that would be at home in a production government data center:

Debugging was instructive. COBOL is fixed-format โ€” column positions matter, a trailing character in column 73 is a fatal error, and the compiler will tell you exactly which line broke and why. After three decades away from it, the muscle memory came back faster than expected. The language is verbose by design. It reads almost like English. That was Grace Hopper's original insight: make it readable enough that a business analyst could understand it, not just a programmer.

Zero Dependencies, End to End

The Python fetcher uses nothing but the standard library. The COBOL program has no external libraries. The dashboard is plain HTML, CSS, and vanilla JavaScript. No npm. No pip installs. No frameworks. No cloud bills. The entire stack runs on free infrastructure.

The USGS Water Services API is free, requires no key, and has 135 years of public hydrological data behind it. The GitHub Actions free tier handles the daily CI run in about four minutes. The dashboard is a static file served from GitHub Pages. Total monthly cost: $0.00.

The Artemis Detail

I didn't plan the timing. I was deep in a debugging session when someone mentioned the launch. By the time I had the COBOL running cleanly against live USGS data, the crew was already outbound.

There's something fitting about it. The Apollo program ran on FORTRAN and assembly, on computers with less processing power than a modern wristwatch. The engineering culture of that era โ€” precise, documented, obsessive about correctness โ€” is exactly the culture COBOL was designed for. Grace Hopper and Margaret Hamilton were contemporaries. The language and the Moon program grew up together.

Sixty-seven years later, a COBOL program is fetching live telemetry from rivers in the Sierra Nevada, running in a cloud CI/CD pipeline, and feeding a modern web dashboard. On the same day four humans left low Earth orbit for the first time since 1972.

SIERRA-FLOW V2.0: NORMAL TERMINATION. RETURN CODE: 0.

Not a bad detail. The live dashboard is here. The source is on GitHub. It updates every morning at 7AM Pacific. The Sierra rivers are running high. Big Creek is watching.