Degree PathwaysWhere does your major lead?

Case study · How it was built

The major explorer that refuses to guess.

Degree Pathways shows a college student what graduates of every major at their school actually earn, and the careers it opens, with each number a cited U.S. federal fact. Here's how it was built, and the decisions that kept it honest.

Solo build ~2.5 months Jun–Aug 2026 4 federal data sources 142 U.S. schools live No accounts · no tracking
degree-pathways-app.julieclarkson.com
Degree Pathways showing what Computer Science graduates at the University of Arizona earned one and four years out, beside the national median for the field today, each figure linked to its federal source
Real, cited earnings for one major at one school. Every figure links back to its federal source.

The one‑line version

A student picking a major faces an expensive, hard‑to‑reverse decision with nothing trustworthy to compare. Degree Pathways answers one question, what do graduates of this major at this school actually earn, and what careers does it open?, using only cited federal data, and it was built to refuse to ship a single number it can't source.

The problem worth solving

Choosing a major is a high‑stakes decision made on guesswork.

Picking a major is one of the most consequential and expensive choices an eighteen‑year‑old makes, and the usual tools are vibes, rankings, or an AI answer that sounds confident and might be wrong. The single risk the product exists to kill is presenting fabricated or stale numbers on a high‑stakes, expensive decision.

So the wedge was never “AI is wrong.” A cited answer can be perfectly right. The wedge is easy, apples‑to‑apples, no prompt‑crafting: pick a few fields, tap, and get consistent results grounded in what graduates actually earned. The job was to make trustworthy comparison the path of least resistance.

The constraints that shaped it

A constraint triangle, named on day one.

Built for a non‑technical audience (students and the parents helping them), safe for adults 18+, with zero personal data collected. It could never scrape, store, or redistribute a school's catalog. It had to run with no user API keys, no per‑use cost, and no capable‑hardware requirement.

Those rules collide, and naming the collision was the real early output: you can have (a) an AI that reads any catalog, (b) free‑to‑run with no key, and (c) no hardware floor for the user, but not all three at once. Everything downstream is a consequence of choosing which corner to give up. The answer that fell out of it: real published data only. Every on‑screen number must be a federal figure with its year and a link to verify.

The decisions, and what they cost

Six choices that traded a bigger promise for a truthful one.

1

Kill the feature that couldn't be accurate.

The product began as Class Pathways, aimed at term‑by‑term course plans. Adversarial QA checked generated plans against real published catalogs and found them fragmentary and wrong: credits that didn't reconcile, required courses missing, whole sequences inverted. The root cause was structural: catalog requirement data can't reconstruct a school's advised four‑year sequence. So it was cut.

↓  The insight that saved it: course‑level data failed, but program‑level federal data is complete, uniform for all ~6,000 U.S. schools, public domain, and terms‑safe. Class Pathways became Degree Pathways.
2

A “real federal data only” constitution.

Store facts, not prose: titles, codes, and figures, never copyrighted catalog text. Every number traces to a source federal record, and the app never computes its own dollar figures.

↓  The cost: a narrower promise. The gain: every claim is verifiable, and there's nothing to get sued over.
3

An integrity gate that runs on every commit.

A three‑stage validator (static scan, on‑screen render check, and derived‑value recompute) blocks any on‑screen dollar figure that doesn't trace to source federal data. It even blocks Math.random, so a “Surprise me” button uses the clock, not a fabricated number.

↓  The rule it enforces, everywhere: no citation, no course.
4

Refuse to rank majors by “AI risk.”

An earlier AI‑resilience badge was cut entirely. A risk ranking can steer a student away from a dream, and the future, especially with AGI, is genuinely unknowable. It was replaced with a neutral “What about AI?” note that ranks nothing.

↓  The product's job is to open doors, not close them for you.
5

Static, no‑account architecture.

A hand‑built vanilla‑JS single‑page app: strict content‑security policy, pre‑baked federal JSON, no runtime database or AI, no login. Everything runs in the browser; nothing about the student is sent anywhere.

↓  Cheap to run, nothing to breach, and privacy is a property of the design rather than a promise.
6

Free to explore, honest about money.

Explore everything free; a low, one‑time pass unlocks side‑by‑side compare and export. No ads, and no selling student contact information. The honest‑data positioning cannot coexist with selling student leads.

↓  The business model had to be as clean as the data.
No citation, no course.
the integrity rule, enforced by a pre‑commit gate on every build

The hard part

The load‑bearing wall was a validator that kept saying no.

The integrity gate, plus an offline scanner that quarantines every piece of ingested data (blocking injection, scripts, hidden characters, and leaked secrets), is what earns a student's trust. The discipline that made it trustworthy was boring on purpose: the validator repeatedly refused to ship. It failed a seed batch because per‑source links weren't attached (which is the gate proving it works), and it refused to write data whose federal award‑level codes didn't match the official codebook.

Earnings honesty took the same treatment. An early view showed a one‑, four‑, and five‑year earnings series, but those are separate graduating cohorts, so the five‑year figure could dip below the four‑year one and read like a pay cut. It was dropped. When a school's figure is withheld for too few graduates, it stays withheld and the national field number is shown, clearly marked; headline figures are rounded to the nearest thousand, with the exact published number alongside and in every tooltip.

If it isn't accurate in its entirety, it doesn't ship.
the rule that killed a whole feature rather than deploy a wrong number

The hardest problem

A search box that works for every word, and lies about none of them.

Browsing was solved. Searching was not. A student does not type “Registered Nurses, 29‑1141.00”; she types nurse, or doctor, or cybersecurity. Two requirements pulled hard against each other: the box had to understand every word a student would actually type, and it had to never connect a career to a major the government does not connect. Loosen the matching and you invent pathways. Tighten it and half the vocabulary dead‑ends.

The resolution was to be strict about who gets to make each link. Turning a student's word into an occupation or a field is the government's own naming problem, and the government has already published the answer: O*NET's 22,437 alternate occupation titles, and every official CIP program title. Turning an occupation into a degree is the crosswalk's job, and only the crosswalk's. So the app bakes two sourced lookup maps, uses them purely to interpret the word, and then hands off to the federal crosswalk for the actual connection. A word nobody publishes resolves to nothing, and nothing is exactly what it shows.

Searching “doctor”
Searching doctor returns an honest note that medicine is a graduate path with no single feeder major, then the school's fields to explore
No invented feeder majors. Medicine, law and veterinary work are graduate paths, so no undergraduate major is federally linked to them. Rather than guess at “pre‑med,” the app says so, links the U.S. Dept. of Labor record, and hands back the school's real fields.
Searching “computer engineering”
Searching computer engineering names the federal CIP codes, states no degrees were awarded under them at this school, and lists the Engineering fields the school does award
A real field the school does not award. The old answer was a blank screen, which reads like a bug. The new one names the field, cites its CIP code, states that no degrees were reported under it, and shows what the school does award in the same federal category.

Then the claim had to be proved at a scale no one can eyeball. A cross‑school harness now runs a corpus of student vocabulary against every school and reports each term as answered or dead‑ended; a render sweep loads all 8,900 field pages across all 142 schools and fails on any throw, blank card, or stray NaN; and the integrity gate recomputes 8,765 derived figures against their sources on every commit. Dead ends at the reference school fell from 73 to 25, every one of the survivors a term the federal data genuinely has no answer for.

22,437
official O*NET occupation titles a student's word can match
8,900
field pages rendered on every check, zero errors
152
search assertions run before any commit lands
0
links not traceable to the federal crosswalk

What shipped

Real earnings and real careers, for every major a school awards.

  • Every major a school grants a degree in, with real graduate earnings one and four years out (IRS‑linked College Scorecard) and the field's national median today (Census).
  • The careers a major opens, 923 real occupations via the Dept. of Labor's O*NET, plus median graduate debt.
  • Compare two or three majors within a school, or one major across schools; save a shortlist; share a card; export a one‑page PDF or CSV.
  • Honest empty states, mobile‑first metric cards, and every number links back to verify. Not affiliated with any school; ideas to explore, not verdicts.
degree-pathways-app.julieclarkson.com
The Degree Pathways explorer listing every field of study the University of Arizona awards degrees in, each card showing the median pay its graduates earned
142
U.S. schools, one uniform dataset
4
federal sources: IPEDS, Scorecard, O*NET, Census
8,900
field pages, every figure sourced
0
accounts, trackers, or fabricated figures

Built to travel

Every number is legible on a phone, and stays in the student's browser.

The whole explorer is mobile‑first: the same cited earnings, careers, and sources a student sees on a laptop, laid out as vertical metric cards. No account, no app store, nothing about them sent anywhere.

The same cited earnings chart on a phone screen

How it came together

From six prototypes to a federal‑data explorer.

Jun 2026
Concept explored in six different forms; the “constraint triangle” is named as the real early output.
Late Jun
Audience widened to students and parents; a self‑contained prototype built as the visual spec; a security review fixes a self‑XSS.
Jul 1
Architecture locked: a hosted web app with a deterministic runtime and monthly batch ingestion; two safety gates, quarantine and validate, go in.
Jul 13–15
Adversarial QA kills the term‑by‑term plans; the pivot from Class Pathways to Degree Pathways on program‑level federal data.
Jul 15–24
Federal adapters (IPEDS, College Scorecard, O*NET) and a merge step; relaunch as a browse‑first explorer with per‑school earnings and a facts‑only gate.
Aug 1–10
Deep‑links, a shareable card, and mobile metric cards; the misleading five‑year bar is dropped; the free‑access model is finalized.
Aug 11–14
The two‑column layout is rebuilt as a single‑column drill‑down; a deep edge‑case audit lands; career search ships on two sourced lookup maps, with a cross‑school coverage guard and a full render sweep to prove it.
Aug 15
Launch polish: an honest “this school does not award that field” answer replaces the blank screen, browse gains subject‑area grouping, and a bug that left the search maps unloaded on shared links is fixed.

What I'd tell the next person

Three lessons that outlast this project.

🧮

Name the who‑pays constraint on day one.

Who pays for the compute, and on whose hardware, decides your whole architecture. Naming that triangle first saved months of building the wrong thing.

🛡

Give accuracy veto power.

“If it isn't accurate in its entirety, it doesn't ship” sounds expensive. It's the cheapest call you'll make. It kills the bug class where a wrong number reaches someone making a real decision.

📝

Capture the story as you build.

The decisions and trade‑offs that make a case study worth reading are invisible in the diff. Turn capture on from the start instead of reconstructing it at the end.

See it for yourself

Pick your school and see what your major really leads to.

Every number is a cited federal fact. Free to explore, no login, nothing saved about you.

Explore Degree Pathways →