Every large platform keeps a private score on you. Twitter, TikTok, YouTube: there's some internal number attached to your account, computed by a model you never see, and it decides how far your posts travel. You can't read it, and nobody is going to tell you what it is.
Hacker News seemed like it might be the exception, for a specific reason: it's old. The site has barely changed in twenty years and it's famously reluctant to add anything. So either it never bothered building a hidden score, or it has one written in such plain, ancient code that I could probably just read it straight off the public API. I went to find mine.
There's no hidden score. There are five fields.
The public API returns everything HN stores about an account. No key, no login. You request a username and get back a small JSON object:
id, your username.created, when you signed up.karma, one integer.about, your bio text.submitted, the ID of every post and comment you've ever made.
Five fields. I checked a range of accounts and the shape never changes. No trust, no score, no rank, nothing with a suggestive name. The only number that grades you is karma, and karma is already printed next to your username.
So the premise was wrong. There's no hidden reputation model in the page, in old code, or anywhere else, because there isn't a reputation model at all. Karma is the whole thing. I would have stopped there, except karma turns out to be stranger than it looks.
Where karma comes from
Karma reads as a single clean number. It's actually the sum of every vote you've ever received, across stories and comments together, collapsed into one integer. HN shows the sum and never the parts.
The parts are recoverable, up to a point. There's a second public API, the Algolia index, and it treats stories and comments differently. For a story it returns the score. For a comment it returns everything except the score. The points field is simply absent.
This is deliberate, and it's one of the oldest rules on the site: a comment has a score, and only its author can see it. Everyone else, the API included, gets the comment with the number removed. The stated reason is to keep people from piling votes onto whatever is already ahead.
Story scores are public, though, so you can measure how much of an account's karma came from submissions and attribute the rest to comments. I ran that on fourteen well-known accounts:
| Account | Karma | From comments | Story hit-rate | Dead on arrival |
|---|---|---|---|---|
| tptacek | 422,970 | ~91% | 20.6% | 5.3% |
| jacquesm | 242,026 | ~86% | 10.2% | 23.6% |
| pg | 157,316 | ~70% | 20.5% | 4.3% |
| rayiner | 127,920 | ~98% | 9.5% | 15.9% |
| patio11 | 127,807 | ~96% | 36.5% | 1.9% |
| edw519 | 73,785 | ~87% | 2.0% | 40.4% |
| dang | 41,569 | ~44% | 17.5% | 44.7% |
| sama | 23,059 | ~0% | 51.6% | 3.3% |
Look at the third column. For nearly all of them, most of the karma came from comments. The median across the fourteen was about 80%. rayiner and jerf are both above 98%. These are some of the most trusted accounts on the site, their standing is built almost entirely out of comments, and not one of those comment scores is visible to anyone but them.
So karma, the single public measure of how much HN trusts you, is a sum over thousands of scores that are individually private. The total is public and every term in it is hidden.
The attribution is rough, and I don't want to pretend otherwise. Karma is upvotes minus downvotes; I'm treating story-karma as the sum of public story points, which ignores downvotes and assumes a point of story score is worth a point of karma. sama's ~0% is the estimate hitting its floor: his stories are worth more points than his entire karma, so the subtraction bottoms out at zero. The exact percentages are approximate. The direction isn't. The gap is far too large to be an artifact of the math.
What's actually visible: posting style
What you can reconstruct from the public side is how someone submits, and it varies more than karma lets on. Two numbers cover most of it: the fraction of posts that clear 100 points (hit-rate), and the fraction that never get past 1 point (dead on arrival).
The table splits into two shapes. sama and patio11 post rarely and hit often. sama lands 51% of the time; patio11 has 52 submissions across seventeen years and a third of them hit. At the other end is edw519, one of the most prolific commenters on the site, who also made 3,819 submissions, 40% of which died at 1 point and 2% of which cleared 100. Karma shows none of this. Two accounts can be neighbors on the karma leaderboard and post nothing alike.
One thing holds for everyone: the dead-on-arrival column is never zero. Every account here, including the ones that basically live on the front page, has a floor of posts that went up and died at 1 point. I found that weirdly reassuring.
The two records disagree
A side effect I wasn't looking for: HN's account record and its search index don't match. The account lists everything you've submitted. The index lists everything it can find. For heavy users the two disagree by tens of thousands of items, in both directions.
dang is the clearest case. His account record lists 83,933 submissions. The search index returns 54,007. About thirty thousand of the moderator's own items are in his history and absent from search. Most of that is probably deleted and dead comments, which stay in the raw history but drop out of the index. Still, it's a strange result: the person who runs moderation has the least searchable trail on the site, and neither public source is complete on its own.
The one hidden score is yours
There is one genuinely hidden score, and it's the stripped column from earlier. Every comment you've written has a point value that only you can see, only while logged in, one comment at a time. Nothing adds it up. But it's your data, behind your own login, and you can walk your whole comment history and sum it yourself. That gives you a number that exists nowhere else: the distribution of your own comment scores, which HN hides from you by never totaling it.
It only works on your own account. Everyone else's comment scores are stripped for you the same way yours are stripped for them. The only hidden reputation number you can recover on Hacker News is the one that was always yours to see, just never in one place.
What this means
I expected to find an old site quietly grading its users. It isn't. HN never built a reputation model; it chose not to, and the one score it does hide, per-comment points, it hides for a reason it has published.
What's actually there is smaller and, I think, more accurate. The public reputation number is an aggregate of private ones. Karma is real and it unlocks real permissions on the site, and for most people it's mostly a comment score whose components they aren't allowed to see. There's no file on you. There's a running total, in the open, over a long list of numbers that were each removed on the way in.
Run it yourself
It's all read-only and needs no account. Two endpoints. hacker-news.firebaseio.com/v0/user/YOURNAME.json gives you karma, account age, and the full submitted list. hn.algolia.com/api/v1/search?tags=story,author_YOURNAME gives you every story with its score; swap in tags=comment and you get every comment with the score missing. Count both, sum the story points, subtract from karma, and you have your own row of the table. It's about forty lines of Python. Run it on your own username and see how much of your standing came from numbers you were never shown.