glossary

Gravity 1.8 e duas horas de vantagem: como funciona o ranking do Hacker News?

Taras Shynkarenko
Taras Shynkarenko
•Updated: •8 minutos de leitura
Gravity 1.8 e duas horas de vantagem: como funciona o ranking do Hacker News?Gravity 1.8 e duas horas de vantagem: como funciona o ranking do Hacker News?

TL;DR

8 minutos de leitura

O Hacker News pontua uma story da página inicial como seus pontos menos um, divididos pela idade em horas mais dois, elevado à potência 1.8, e depois multiplica essa pontuação por fatores de penalidade. A fórmula vem de news.arc, no código-fonte do Arc liberado publicamente, e o Y Combinator nunca publicou a versão que roda no site ao vivo. A camada de penalidades por cima só aparece descrita em comentários de moderadores, nunca em documentação.

Como funciona o ranking do Hacker News?

A resposta curta para como funciona o ranking do Hacker News é uma fórmula de decaimento: o Hacker News divide os pontos de uma story pela idade dela elevada a uma potência fixa, então uma story desce pela página inicial a menos que novos upvotes cheguem mais rápido do que o relógio corre. Todo número deste post vem de news.arc, o arquivo-fonte da página inicial que o Y Combinator distribuiu junto com o lançamento público da linguagem Arc. O Hacker News nunca publicou o código de ranking que roda hoje no site ao vivo, então leia isto como o último retrato público do mecanismo, não como uma descrição da produção.

Qual é a fórmula publicada do ranking do Hacker News?

A versão mais difundida da fórmula pontua uma story como seus pontos menos um, divididos pela idade em horas mais dois, elevado à potência 1,8.

score = (points - 1) / (age in hours + 2) ^ 1,8

Essa linha simplifica frontpage-rank em news.arc. O mesmo arquivo define gravity* como 1,8, que é o expoente, e timebase* como 120 minutos, que são as duas horas somadas à idade. O código-fonte também eleva o termo de pontuação à potência 0,8 quando uma story passa de um ponto, um passo que a versão popular de uma linha omite e que achata a recompensa das pontuações muito altas. Use a simplificação para ter intuição e abra news.arc quando a curva exata importar.

Um cronômetro sobre uma mesa representa a rapidez com que o placar de uma story decai com a idade.

Com que velocidade uma story do Hacker News decai?

O expoente 1,8 se acumula, então a posição cai mais rápido do que a maioria de quem envia espera. Pegue uma story com 100 pontos, três horas depois do envio: (100 - 1) / (3 + 2) ^ 1,8 = 99 / 18,12 = 5,46. Uma story mais nova com 40 pontos em uma hora marca 39 / 7,22 = 5,40, o que deixa uma story com 60 pontos a menos a um erro de arredondamento dela.

Idade(age + 2) ^ 1,8Pontuação com 100 pontosPontos necessários para igualar uma story de 3 horas com 100 pontos
1 hora7,2213,7041
3 horas18,125,46100
6 horas42,232,34232
12 horas115,580,86633
24 horas352,400,281.927

A coluna da direita define a estratégia de lançamento. Igualar uma story de três horas com 100 pontos exige 633 pontos com doze horas e 1.927 pontos com vinte e quatro. Envie quando o público que você quer estiver acordado, porque nenhuma quantidade de votos posteriores recupera a vantagem inicial, a mesma aritmética que faz do melhor horário para postar no Reddit uma questão de agenda, não de conteúdo.

Por que a fórmula subtrai um ponto e soma duas horas?

As duas constantes existem para impedir que a curva quebre nas bordas. Subtrair um ponto descarta o próprio upvote de quem enviou, então uma story em que ninguém mais votou marca zero e nunca chega à página inicial só pelo entusiasmo do autor. Somar duas horas à idade impede que uma story recém-enviada seja dividida por algo próximo de zero: com zero minutos de idade, o denominador é 2 ^ 1,8 = 3,48 em vez de um multiplicador arbitrariamente grande, então dois votos iniciais não conseguem superar uma story já estabelecida.

Que penalidades o Hacker News aplica a uma story?

As penalidades multiplicam a pontuação de decaimento para baixo, e o código liberado traz quatro delas. news.arc define nourl-factor* como 0,4 para um post de texto sem link, lightweight-factor* como 0,3 para posts que o arquivo classifica como lightweight, incluindo posts de imagem e posts de uma lista de domínios guardada em lightweights*, e um 0,5 fixo para tipos de item que não sejam stories e enquetes. Uma quarta, contro-factor, entra em ação quando uma story passa de 20 comentários e o número de comentários supera os pontos, multiplicando a pontuação pelo quadrado de pontos sobre comentários.

Além desse arquivo, moderadores descreveram outras penalidades em threads de comentários do Hacker News: um detector de flamewar que rebaixa threads onde a briga supera os votos, uma redução de peso por domínio e intervenção manual de moderadores em stories consideradas fora do tema. Essa camada nunca apareceu em documentação nem em código liberado, e o Y Combinator não publica nenhuma lista de penalidades nem de seus tamanhos. Quem cita um coeficiente de penalidade específico para o site ao vivo está citando um comentário de moderador ou uma inferência a partir da posição observada, não uma especificação publicada.

O código liberado também dá uma alavanca aos leitores. Um usuário acima de um limite de karma pode sinalizar (flag) uma story, e quando os flags passam de um limite de remoção em uma story com menos de 10 pontos e sem upvote de administrador, o código a marca como dead e a tira da página inicial. A votação coordenada é tratada à parte por um campo sockvotes que realscore subtrai antes do ranking, a resposta do arquivo-fonte ao astroturfing.

Fatores de penalidade no news.arc
Sem URL0.4x para um post de texto sem link
Lightweight0.3x para posts de imagem e domínios listados
Outros tipos de item0.5x para tudo que não seja story ou enquete
Contro-factorEleva ao quadrado os pontos sobre comentários a partir de 20 comentários
O news.arc multiplica a pontuação de decaimento de uma story pelo fator de penalidade aplicável antes de ela chegar à página inicial.

A fórmula publicada ainda descreve o site ao vivo?

Não. O lançamento do Arc é a última versão pública do código de ranking, e o Hacker News mudou a página inicial desde então de formas que os moderadores só descreveram em comentários, incluindo um second-chance pool que reintroduz envios mais antigos e passadas de reordenação que os moderadores disparam manualmente. Nada obriga essas descrições a serem completas ou atuais. Trate a fórmula como um modelo do formato do decaimento e depois confira no site: acompanhe a posição de uma story em relação aos pontos e à idade, e onde os dois divergem, uma penalidade ou uma ação manual explica a diferença.

Qual é a diferença entre o ranking do Hacker News e o do Reddit?

O Hacker News tem uma única página inicial global a partir de uma única fórmula, enquanto o Reddit ranqueia dentro de milhares de subreddits separados, cada um com suas opções de ordenação e regras de moderação. Uma story do Hacker News concorre com todas as outras enviadas naquele dia, então a janela de duas horas carrega quase todo o peso, e uma story que a perde não ganha uma segunda rodada diante de um público de nicho. O Reddit espalha o mesmo envio por várias comunidades, e seu sistema de pontos alimenta um total por usuário que libera o direito de postar, explicado em o que é karma no Reddit.

A diferença prática está no caminho de recuperação. No Reddit, você pode postar em uma comunidade menor e mais alinhada e ranquear lá. No Hacker News, o item conta como duplicado quando reenviado, então o primeiro envio carrega todo o resultado. Contagens de itens publicadas e o comportamento da API da plataforma estão em estatísticas do Hacker News.

Alguém lendo em um laptop em um café reflete o acompanhamento de uma discussão depois que a story sai da página inicial.

RedReplier
RedReplier

Começar

Reddit, X, Bluesky e HN

Alertas de intenção em tempo real

Respostas IA ilimitadas

Classificado por intenção de compra

Como acompanhar uma story depois que ela sai da página inicial?

Acompanhe os comentários, porque a discussão dura mais que o ranking. Uma story cai da página inicial em horas enquanto a thread abaixo continua atraindo respostas e perguntas sobre preço que nunca aparecem em um dashboard que mede seus próprios posts. O RedReplier cobre isso com o monitoramento do Hacker News, junto com Reddit, X, Bluesky e Facebook em um só lugar, ordenando o que encontra por intenção de compra e explicando com IA por que cada menção foi sinalizada.

Configure as palavras-chave com o nome do seu produto, seus concorrentes e o problema que as pessoas descrevem antes de saber que sua categoria existe. O mesmo conjunto de palavras-chave roda em todas as plataformas que o RedReplier monitora, documentado em monitoramento de redes sociais.

Perguntas frequentes

O que é a constante gravity no algoritmo do Hacker News?

Gravity é 1,8 em news.arc, armazenada como gravity*, e é o expoente aplicado à idade de uma story no denominador. Elevar a idade a 1,8 em vez de 1,0 faz a posição cair mais rápido que de forma linear, então uma story com 24 horas é dividida por 352 em vez de 26. O Y Combinator não publicou um valor para o site ao vivo, então 1,8 é o último número liberado, não um valor atual confirmado.

O número de comentários afeta o ranking do Hacker News?

No código liberado, sim, e para baixo. A função contro-factor se aplica quando uma story tem mais de 20 comentários e o número de comentários supera os pontos, multiplicando a pontuação pelo quadrado de pontos sobre comentários. Moderadores descreveram separadamente um detector de flamewar em comentários do Hacker News, que empurra na mesma direção em threads acaloradas.

Dá para reenviar uma story que não ganhou tração?

O Hacker News trata um reenvio da mesma URL como duplicado e direciona os votos para o item original em vez de criar um novo. Por isso o termo de idade da fórmula continua correndo a partir do primeiro envio. Moderadores descreveram um second-chance pool que dá a alguns envios mais antigos outra aparição na página inicial, mas nenhum autor controla a entrada nele.

Por que uma story com menos pontos às vezes fica mais bem posicionada?

A idade é o motivo na maioria dos casos: com uma hora, uma story precisa de 41 pontos para igualar o que uma story de três horas alcança com 100. Os fatores de penalidade são o outro motivo, e são invisíveis de fora, já que a página inicial mostra pontos e idade, mas nunca o multiplicador aplicado a eles. Uma story posicionada abaixo da sua posição aritmética tem uma penalidade do código-fonte ou uma ação de moderador sobre ela.

Votar no seu próprio envio ajuda?

Não, a fórmula subtrai um ponto antes de dividir, o que cancela o voto de quem enviou. O código-fonte também registra um campo sockvotes que realscore subtrai da pontuação bruta, então a votação coordenada reduz o número que o ranking de fato usa. Flags de usuários acima de um limite de karma podem derrubar de vez uma story com pontuação baixa.

Onde posso ler o código-fonte do ranking do Hacker News?

O arquivo news.arc distribuído com o lançamento público do Arc contém frontpage-rank, as constantes gravity* e timebase* e os fatores de penalidade citados neste post, e o repositório comunitário Anarki o espelha. Esse arquivo é o único código de ranking que o Y Combinator liberou. A versão que roda hoje no Hacker News não é pública, e a empresa não se comprometeu a publicá-la.

O que acontece quando uma story recebe flags no Hacker News?

O código-fonte publicado permite que um usuário acima de um limite de karma marque uma story com flag. Quando os flags em uma story com menos de 10 pontos e sem upvote de admin ultrapassam um limite de eliminação, o código a marca como morta e a remove da página inicial. Uma story morta fica fora do ranking, não importa qual pontuação ela teria de outra forma.

O que é o detector de flamewar do Hacker News?

Moderadores descreveram, em threads de comentários e não em documentação, um detector de flamewar que rebaixa threads em que a discussão supera os votos. Ele fica fora dos quatro fatores de penalidade nomeados no news.arc e nunca apareceu no código publicado. Ele age na mesma direção que o contro-factor, que já eleva ao quadrado os pontos sobre comentários quando uma story passa de 20 comentários e tem mais comentários que pontos.

Um post do Hacker News sem link é penalizado?

Um post de texto sem link carrega um nourl-factor de 0.4 no news.arc, o que reduz sua pontuação de decaimento a menos da metade da que um post com link idêntico teria. Posts de imagem e envios de domínios na lista lightweights* carregam um lightweight-factor separado de 0.3, e tipos de item diferentes de story e enquete carregam uma penalidade fixa de 0.5. Os três multiplicam a pontuação depois do decaimento por idade, além do que a fórmula já produziu.

O que é o second-chance pool do Hacker News?

Moderadores descreveram um second-chance pool que reintroduz envios antigos na página inicial, apenas em threads de comentários, nunca em documentação ou código publicado. O news.arc, o único código de ranking que a Y Combinator publicou, não contém nenhuma função para isso. Nenhum autor de submissão pode pedir entrada, e quais stories se qualificam nunca foi tornado público.

Veja-nos mais no Google

Um clique marca a RedReplier como fonte preferida e nossos artigos passam a aparecer mais acima nas suas Principais notícias, no modo IA e nas visões gerais com IA.

Antes de você ir...

RedReplier

RedReplier

Alcance cada comprador que procura o que você vende

O RedReplier monitora Reddit, X, Bluesky e Hacker News em tempo real, classifica cada tópico por intenção de compra e redige a sua resposta, para que você chegue primeiro.

Reddit, X, Bluesky e HN

Alertas de intenção em tempo real

Respostas IA ilimitadas

Classificado por intenção de compra

Artigos relacionados