Um site de uma tela só que decompõe o preço de dez produtos do dia a dia em oito camadas, mostra a jornada da fábrica até a sua mão, e abre cada fatia até o último tributo. Sem rolagem. Sem cadastro. Sem número sem fonte.
Português · English
Você compra um iPhone por R$ 12.499 em São Paulo.
Dentro dele existem R$ 3.897 de produto — matéria-prima e mão de obra. Todo o resto, 69% do que você pagou, é imposto, marketing, margem, aluguel de loja e a conta de alguém convencendo outra pessoa a comprar o mesmo aparelho.
O carro popular sai da fábrica por R$ 4.540 e chega na sua mão por R$ 12.499 — ×2,8 no caminho. Do Big Mac, cada real gasto com pessoal entrega 55 centavos para quem trabalha; o resto é encargo. Nos Estados Unidos, o mesmo real entrega 84.
Este projeto existe para tornar esses números visíveis, com fonte em cada um.
Todo número exibido precisa de três coisas:
| 🧩 Uma camada | em qual das oito fatias ele entra |
| 🎯 Um nível de confiança | medido · estimado · inferido |
| 🔗 Uma fonte | com URL, cadastrada em src/lib/sources.ts |
Faltando uma das três, o número não entra. Onde não existe dado público, o site escreve que não existe em vez de exibir uma estimativa com cara de precisão.
Isso não é modéstia. É a única coisa que separa este projeto de um infográfico inventado.
O script npm run validate faz cumprir a regra e roda antes de todo build:
✓ 10 produtos · 78 regiões · 65 fontes · 191 sub-fatias · 80 linhas de tributo.
Tudo fecha em 100%.
| Camada | O que é |
|---|---|
| 🔵 Matéria-prima | o que existe fisicamente dentro do produto |
| 🟠 Mão de obra e fabricação | mão de obra direta mais o custo de fábrica: testes, ferramental, perdas, garantia |
| 🟢 Logística e embalagem | frete, armazenagem, caixa, sacola |
| 🟡 Pesquisa e desenvolvimento | engenharia, design, o que a empresa vai lançar daqui a três anos |
| 🌸 Marketing | anúncio, patrocínio, promoção — a fatia que serve para convencer outra pessoa |
| 🟩 Varejo e distribuição | aluguel, vendedor, atacado, royalty, plataforma |
| 🟣 Lucro | o que sobra para a empresa depois de pagar todo o resto |
| 🔴 Impostos | tributos embutidos no preço ou somados no caixa |
As oito somam exatamente 100% do preço final pago pelo consumidor, imposto incluído. Não é 100% do custo de fábrica nem 100% da receita da empresa: é 100% do que sai do seu bolso.
Cada camada carrega os tributos que ela paga — INSS patronal de 20% sobre a folha de quem monta, ICMS na conta de luz da loja, o imposto que o fornecedor pagou antes de vender a peça. Com alíquota, base de cálculo, valor em dinheiro e percentual do preço final.
Duas regras que sustentam a honestidade da conta:
1. Imposto embutido não soma com a camada Impostos. Os tributos dentro de uma etapa já
estão no custo dela. Somar com o que está destacado na nota seria contar o mesmo dinheiro
duas vezes. O site expõe os dois separados: hiddenTaxPct (o embutido) e totalTaxPct (a
carga real).
2. Tributo creditado não é custo. ICMS e IPI de insumo no regime não-cumulativo voltam para a empresa. Eles aparecem riscados e marcados, fora do total. Contá-los como custo seria mentira — e é o erro mais comum nesse tipo de análise.
Imposto direto x imposto de cadeia. Existem duas medidas de carga tributária e elas não se somam. A direta é o que está destacado na nota. A cumulativa soma também o imposto que os fornecedores já pagaram, embutido no preço das peças — é assim que estudos chegam a 92% em vestuário ou 48% em automóvel. Os gráficos usam a medida direta e citam a cumulativa nas observações.
O valor ex-imposto é mantido constante dentro do mesmo país, e o preço final é recalculado com a alíquota da sua região:
exImposto = preçoBase × (1 − impostoBase)
preçoNovo = exImposto ÷ (1 − impostoRegião)
As camadas que não são imposto mantêm o valor em dinheiro e, por isso, mudam de percentual. Uma cerveja no Maranhão paga 61% de imposto; a mesma cerveja no Espírito Santo, bem menos.
Três modelos de imposto convivem em src/lib/types.ts:
brICMS— parte federal fixa mais ICMS estadual "por dentro", comicmsFactorpara reduções de base (medicamento, regime especial de bar e restaurante).usSales— sales tax somada no caixa;scope: "state"para veículos, que normalmente não pagam a parcela municipal.fixed— imposto que não varia por região. É o caso da gasolina no Brasil: desde 2023 o ICMS de combustível é um valor fixo por litro, igual no país todo.
27 UFs brasileiras · 51 jurisdições americanas · 78 regiões validadas a cada build.
npm install
npm run dev # http://localhost:3000
npm run validate # checa o dataset inteiro
npm run build # valida e compilasrc/lib/config.ts— troquerepoUrleauthorUrlpelos seus. Campo vazio esconde o link em vez de apontar para lugar nenhum.src/app/layout.tsx— ajustemetadataBasepara o domínio final.- Deploy na Vercel — a detecção de região usa os headers
x-vercel-ip-countryex-vercel-ip-country-region, que só existem lá. Em qualquer outro host o site funciona igual, apenas sem a detecção automática; o seletor manual continua.
Em src/lib/products.ts, copie um bloco existente e preencha os dois
mercados. Depois:
- cadastre as fontes novas em
src/lib/sources.ts; - adicione
product.<id>.name,product.<id>.sub,price.<id>.breprice.<id>.usnos três idiomas emsrc/lib/i18n.ts; - desenhe o traço em
src/components/ProductArt.tsx— SVG de 100×100, sem preenchimento, sem imagem de marca; - se houver dado para a abertura fina, acrescente em
src/lib/breakdowns.ts. Se não houver, deixe de fora: a gaveta abre dizendo que o dado não existe, e isso é melhor que um número plausível; - rode
npm run validateaté fechar em 100%.
src/
├── lib/
│ ├── products.ts as 8 camadas de cada produto, por mercado
│ ├── breakdowns.ts sub-fatias e cascata de impostos dos 3 âncoras
│ ├── compute.ts recálculo regional, jornada do preço, carga real
│ ├── regions.ts ICMS por UF e sales tax por estado americano
│ ├── sources.ts toda fonte citada, em um lugar só
│ ├── i18n.ts pt · en · es
│ └── palette.ts as 8 cores, validadas para daltonismo
├── components/
│ ├── CostCallout.tsx o gráfico com linhas-guia
│ ├── ValueChain.tsx a jornada do preço
│ ├── LayerDrawer.tsx a gaveta de detalhe
│ └── Methodology.tsx a metodologia completa
└── app/
└── api/ geolocalização por borda e câmbio
A paleta das oito camadas foi validada para daltonismo contra a superfície #0e0e10: pior
par adjacente ΔE 8,4 (protan) e 8,7 (tritan), piso de visão normal 19,3, contraste ≥ 3:1 em
todas. A ordem dos slots é o mecanismo de segurança, não decoração — reordenar exige
revalidar.
- Nenhuma empresa publica custo por unidade de um produto específico.
- Alocação de P&D e marketing por item é sempre proporcional, nunca contábil.
- Teardown mede componente, não custo de fábrica — a diferença é overhead.
- Documento de franquia divulga royalty e fundo de publicidade, não custo de ingrediente.
- A abertura fina existe hoje só para iPhone, Big Mac e carro popular. Os outros sete abrem a gaveta dizendo isso.
Tudo aparece marcado como estimado ou inferido na própria tela, com a ressalva escrita
por extenso.
Em 2026 o IBS e a CBS estão em alíquota de teste de 1%, integralmente compensável — quem
determina a carga ainda é o ICMS estadual. A transição vai até 2033 e a alíquota de
referência estimada do novo IVA gira em torno de 26,5%, o que é estimativa, não lei. Quando
isso mudar, muda a tabela em src/lib/regions.ts.
Achou um número errado? Abra uma issue com o produto, o mercado, a camada, o valor que está no site, o que você acredita ser o correto e a fonte que sustenta a sua versão.
Correção com fonte entra. Sem fonte, não muda o dataset — é essa regra que mantém o site confiável. Veja DATA.md.
O que já foi decidido e ainda não construído está no ROADMAP.md.
Código sob MIT. Os dados citam as fontes originais, que mantêm seus próprios direitos — leia DATA.md antes de reaproveitar o dataset.




