Moderação do preço colaborativo
As regras que decidem qual observação entra na conta, e o que acontece quando alguém discorda. Estão publicadas porque uma referência de preço que não explica como foi calculada não vale nada — quem consulta precisa poder auditar, e quem contribui precisa saber o que esperar.
O que entra na conta
Uma observação só pesa se:
- estiver ativa (não removida pelo autor);
- tiver sido vista há menos de 18 meses. Depois disso ela vale zero, e não "quase zero": um número que sobrevive de migalhas é pior do que admitir que não há dado recente;
- estiver dentro da cerca de Tukey (1,5 × distância interquartil), a mesma do boxplot. Com menos de 4 observações nada é descartado, porque com três pontos não há distribuição e a cerca jogaria fora justamente o preço certo.
A tela sempre diz quantas ficaram de fora.
Quanto cada uma pesa
Nenhum fator sozinho decide. A conta é multiplicativa:
| Fator | Faixa | Por quê |
|---|---|---|
| Tipo | vendido 1,0 · anunciado 0,6 | anúncio é opinião do vendedor; venda é acordo entre duas pessoas |
| Fonte | 1,0 (QVMC) a 0,5 (outro) | do mais verificável ao que ninguém consegue conferir |
| Idade | meia-vida de 90 dias | rotação, reprint e hype mexem em semanas |
| Votos na observação | ±40% | a comunidade corrige, não decide |
| Reputação do autor | ±25% | histórico é sinal fraco sobre um preço específico |
| Vendedor | 0,9 se desconhecido | leiloeiro e loja veem mais mercado |
Os tetos de voto e reputação existem por um motivo: sem eles, bastaria juntar gente para inventar o preço de uma carta. Uma observação bem documentada e impopular continua valendo.
O peso da reputação é menor que o do voto de propósito. Quem contribui bem há meses pode errar uma carta, e quem errou antes pode acertar esta. Dar peso demais ao autor transformaria a base num clube — e clube é o que uma referência pública não pode ser.
Duplicatas
Duas regras, uma dura e uma estreita:
- Mesmo link, mesma variante: recusado pelo banco, por índice único. É literalmente o mesmo anúncio.
- Mesma fonte, mesmo preço ao centavo, datas a até 3 dias: recusado pela aplicação, com a mensagem explicando.
A segunda regra é estreita de propósito. Carta comum tem preço de tabela, e duas vendas idênticas de verdade existem — alargar isto começaria a descartar dado legítimo numa amostra que já é pequena.
Quem pode o quê
| Ação | Quem |
|---|---|
| Registrar observação | qualquer conta |
| Confirmar ou contestar | qualquer conta, menos o autor da observação |
| Remover uma observação | só o autor dela, e com motivo |
| Suspender contribuições de alguém | só o operador, na mão |
Não existe papel de moderador, e isso é uma decisão, não um esquecimento: moderador sem regra publicada é pior que nenhum — ele vira uma pessoa com poder sobre o preço de todo mundo, escolhida por ninguém. Enquanto a regra não estiver decidida, o que a comunidade tem é a contestação, que é pública e reversível.
A trilha
/preco/contestadas mostra tudo que está em disputa e tudo que foi removido, com o motivo. Uma trilha que só mostra o que continua de pé não é trilha: o que interessa auditar é justamente o que saiu da conta.
Remover não apaga. A linha continua no banco com estado = 'removida', quem removeu e por quê. Isso é o que permite responder "por que o preço desta carta mudou em março?" seis meses depois.
Suspender alguém
Último recurso, para quem envenena a base de propósito. Suspender não apaga as observações existentes; o que para é a entrada de novas.
O caminho normal é a tela em /operacao, atrás do mesmo ehDono() de sempre — não é um papel de moderador novo, é o mesmo operador com um botão em vez do psql. Busca por e-mail exato, liga ou desliga preco_suspenso, e lista quem está suspenso agora.
O psql continua documentado como caminho de emergência: a tela depende do app estar de pé, e um app fora do ar é justamente quando dá mais vontade de suspender alguém às pressas.
ssh cartoteca "docker exec -i tracker-db-1 psql -U tcg -d tcg -c \\
\"update profiles set preco_suspenso = true where slug = 'SLUG-DA-PESSOA'\""Para reverter, false. Registre o motivo em algum lugar durável — este documento não guarda decisão, guarda regra.
O que ainda não é resolvido
Escrito aqui porque risco não documentado é risco que ninguém trata:
- Contas múltiplas. Ficou mais barato desde que o cadastro abriu em 20/08/2026: antes era preciso um segundo convite, agora basta um segundo e-mail para confirmar a própria observação pela outra conta. O que limita o estrago são duas coisas, e nenhuma delas impede: a verificação exige uma caixa que receba de verdade, e o teto de ±40% no voto segura o quanto uma conta a mais move o número.
- Votos combinados. Duas pessoas de acordo movem o peso dentro do teto. A defesa real seria exigir reputação para votar, o que travaria a base no começo — e é a base no começo que mais precisa de gente.
- Link falso. A URL é conferida quanto a protocolo, tamanho e coerência com a fonte declarada, mas ninguém abre para ver se o anúncio existe.
Nenhum dos três se resolve com código sozinho. Os três ficam menores à medida que a amostra cresce, que é mais um motivo para o número na tela sempre vir com o tamanho dela ao lado.