Perda de excedente do consumidor por tarifa
Esta calculadora mede quanto o bem-estar dos compradores diminui quando uma tarifa de importação eleva o preço doméstico e faz o consumo cair.
Executar grátis
Informe o preço e a quantidade antes da tarifa e os valores observados depois dela. O resultado separa o pagamento adicional nas compras mantidas do excedente perdido nas compras abandonadas e soma as duas áreas segundo um modelo de demanda linear para uma economia pequena.
Informe preços e quantidades comparáveis
Use o preço do mercado doméstico pago pelos consumidores antes da tarifa e o preço doméstico mais alto após sua aplicação. Depois, informe o consumo anterior e posterior para o mesmo mercado, produto, local e período. Se os preços estiverem em reais por item e as quantidades em itens por mês, o resultado de bem-estar estará em reais por mês. Você pode usar outra moeda e quantidades em milhares ou milhões, desde que preserve unidades consistentes. Uma quantidade em milhares gera uma perda em milhares de unidades monetárias. A calculadora exige preço posterior maior e consumo posterior menor, pois esses movimentos definem o cenário analisado. Ela não estima quanto do aumento foi imposto por lei nem quanto foi absorvido pelos exportadores estrangeiros. Forneça a variação do preço doméstico observada ou atribuída à tarifa. Não misture preço de varejo de uma categoria com preço de importação de outra, nem consumo anual com mensal: a aritmética continuaria correta, mas a interpretação econômica ficaria errada.
Entenda o retângulo e o triângulo
A perda de excedente tem dois componentes. Primeiro, os consumidores que continuam comprando pagam mais por cada unidade adquirida após a tarifa. No gráfico, essa perda forma um retângulo cuja altura é o aumento do preço e cuja largura é a quantidade posterior. Ela aparece como perda nas compras remanescentes. Segundo, algumas compras deixam de ocorrer porque o preço maior reduz a quantidade demandada. Sob demanda linear, o excedente dessas unidades abandonadas diminui uniformemente desde o aumento integral do preço na nova quantidade até zero na quantidade original. Essa área é um triângulo igual à metade do aumento do preço multiplicada pela redução da quantidade. A soma do retângulo e do triângulo fornece a perda total de excedente do consumidor. Ela é maior que o triângulo de distorção do consumo isoladamente. O total mede a perda dos consumidores, não o peso morto de toda a economia. Parte do retângulo pode virar receita pública ou ganho dos produtores, dependendo de quem recebe o pagamento e da estrutura do mercado.
Interprete o resultado para uma economia pequena
O cálculo pressupõe uma economia pequena que aceita o preço mundial, de modo que sua demanda por importações não altera o preço estrangeiro. Também pressupõe demanda linear no trecho observado. O preço de estrangulamento implícito é apresentado como diagnóstico: é o preço no qual essa reta alcançaria quantidade zero. Ele pode revelar unidades incompatíveis ou uma reação de demanda pouco plausível, mas não deve ser usado como previsão longe do intervalo informado. A ferramenta trata somente do excedente do consumidor. Ela não calcula receita tarifária, excedente dos produtores domésticos, distorção da produção, bem-estar nacional líquido, termos de troca, custos aduaneiros, retaliação, substituição entre produtos, efeitos de renda ou diferenças distributivas. Esses temas exigem dados adicionais de oferta, importação ou incidência. Para comparar cenários, mantenha os valores iniciais fixos e varie o preço e a quantidade posteriores com uma hipótese de demanda consistente. Compare a perda total e seus dois componentes; não trate cada unidade monetária perdida pelos consumidores como valor social destruído. Cada cálculo automatizado pela API custa US$ 0,002; o cálculo no navegador usa a mesma fórmula determinística sem dados externos.
Casos de uso
Avaliar uma tarifa de importação proposta
Estime como o aumento projetado do preço doméstico e a contração do consumo afetam o bem-estar do consumidor.
Conferir um exercício de economia internacional
Verifique o retângulo de perda, o triângulo de consumo, a perda total e o intercepto implícito da demanda linear.
Comparar cenários de incidência tarifária
Teste diferentes repasses ao preço e respostas do consumo usando unidades consistentes.
Perguntas frequentes
Qual fórmula a calculadora utiliza?
A perda total é o aumento do preço vezes a quantidade posterior, mais metade do aumento do preço vezes a redução da quantidade.
A perda de excedente é igual ao peso morto?
Não. Ela inclui pagamentos maiores nas unidades ainda compradas. Parte pode se tornar receita tarifária ou excedente do produtor.
Por que a quantidade precisa cair após a tarifa?
O modelo considera uma tarifa que eleva o preço e move os consumidores ao longo de uma demanda decrescente. Outra evolução não representa o cenário especificado.
Quais unidades aparecem no resultado?
São unidades de preço multiplicadas por unidades de quantidade. Reais por item e itens por ano produzem reais por ano.
A ferramenta calcula a receita tarifária?
Não. Isso exige a tarifa por unidade importada e a quantidade importada posterior, que pode diferir do consumo doméstico.
Quanto custa um cálculo pela API?
Cada solicitação à API custa US$ 0,002. A fórmula é determinística e não usa serviços externos.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/econ/tariff-consumer-loss \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"price_before_tariff":20,"price_after_tariff":26,"quantity_before_tariff":1000,"quantity_after_tariff":760}'const res = await fetch("https://api.kit.forhosting.com/econ/tariff-consumer-loss", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"price_before_tariff": 20,
"price_after_tariff": 26,
"quantity_before_tariff": 1000,
"quantity_after_tariff": 760
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/econ/tariff-consumer-loss",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"price_before_tariff": 20,
"price_after_tariff": 26,
"quantity_before_tariff": 1000,
"quantity_after_tariff": 760
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/econ/tariff-consumer-loss", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"price_before_tariff":20,"price_after_tariff":26,"quantity_before_tariff":1000,"quantity_after_tariff":760}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"price_before_tariff":20,"price_after_tariff":26,"quantity_before_tariff":1000,"quantity_after_tariff":760}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/econ/tariff-consumer-loss", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"price_before_tariff": 20,
"price_after_tariff": 26,
"quantity_before_tariff": 1000,
"quantity_after_tariff": 760
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.tariff_consumer_loss",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |