Variação percentual entre valores
Esta calculadora mede quanto um novo valor mudou em relação à referência original.
Executar grátis
Informe o valor antigo e o novo para receber a diferença aritmética, a variação percentual com sinal e uma indicação clara de aumento, redução ou ausência de mudança. Um percentual positivo representa movimento acima da referência; um negativo, abaixo dela. O cálculo é determinístico, oferece arredondamento configurável e pode ser usado diretamente ou automatizado pela API.
Informe corretamente a referência e o valor comparado
O valor antigo é a medição original e o denominador do cálculo; em seguida, informe o valor novo. A ordem faz diferença: passar de 80 para 100 é um aumento de 25 por cento, enquanto passar de 100 para 80 é uma redução de 20 por cento. Os dois valores podem ser positivos ou negativos, mas a referência não pode ser zero, pois a divisão por zero não define uma variação percentual finita. Se zero tiver significado nos seus dados, apresente a diferença absoluta ou use uma regra específica do domínio. A opção de casas decimais aceita de zero a doze posições, e a resposta preserva as entradas para facilitar auditorias.
Entenda o percentual com sinal e a direção
A ferramenta subtrai o valor antigo do novo, divide a diferença pelo antigo e multiplica por 100. Com referência positiva, resultado positivo indica aumento, negativo indica redução e zero indica estabilidade. A diferença aritmética também é devolvida. Tenha cuidado com referências negativas: o sinal matemático do denominador pode tornar palavras como melhora ou piora ambíguas. Por exemplo, ir de -100 para -50 gera -50 por cento pela fórmula declarada, embora o novo número seja maior. Em contextos financeiros, térmicos, de saldo ou erro, explique a convenção da referência ao apresentar o resultado.
Use a variação percentual com responsabilidade
A variação percentual ajuda a comparar movimentos em escalas diferentes ao relacioná-los ao ponto inicial. Use-a em tráfego mensal, preços, estoque, experimentos, consumo ou notas quando houver uma referência significativa e diferente de zero. Mantenha período e unidades consistentes. Não confunda variação percentual com pontos percentuais: passar de 20% para 25% representa cinco pontos, mas aumento relativo de 25%. Em automações, guarde os valores, a diferença, o percentual e a direção juntos; calcule sempre com dados originais e adote uma única regra de arredondamento. O navegador e a API usam o mesmo algoritmo puro.
Casos de uso
Acompanhar indicadores empresariais
Compare receita, pedidos, tráfego ou estoque com o período anterior e preserve a direção da mudança.
Explicar movimentos experimentais
Meça a mudança desde a referência mantendo as diferenças relativa e absoluta.
Automatizar relatórios recorrentes
Gere campos consistentes para painéis, alertas, exportações e resumos programados.
Perguntas frequentes
Qual fórmula a calculadora utiliza?
Ela usa ((valor novo - valor antigo) / valor antigo) × 100 e devolve o resultado com sinal.
Por que o valor antigo não pode ser zero?
Ele é o denominador; a divisão por zero é indefinida e não gera variação percentual finita.
O que significa um resultado negativo?
Com referência positiva, significa que o novo valor é menor. Referências negativas exigem interpretação cuidadosa.
Variação percentual é igual a pontos percentuais?
Não. Passar de 20% para 25% representa cinco pontos percentuais, mas aumento relativo de 25%.
Quanto custa um cálculo pela API?
Cada solicitação à API custa US$ 0,002. O mesmo cálculo determinístico também funciona no navegador.
É possível controlar o arredondamento?
Sim. Defina as casas decimais entre 0 e 12; o padrão é seis.
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/stat/percent-change \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"old_value":80,"new_value":100}'const res = await fetch("https://api.kit.forhosting.com/stat/percent-change", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"old_value": 80,
"new_value": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/percent-change",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"old_value": 80,
"new_value": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/percent-change", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"old_value":80,"new_value":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"old_value":80,"new_value":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/percent-change", 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
{
"old_value": 80,
"new_value": 100
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.percent_change",
"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. |