Data de conclusão da meta
Se faltam 750 para uma meta de 1.000 e você avança 25 por dia, termina em 30 dias: começando em 1º de janeiro de 2024, em 31 de janeiro. Um último dia parcial conta como dia inteiro. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Meta
- 1.000
- Atual
- 250
- Tarifa diária
- 25
- Data de início
- 2024-01-01
- Restante
- 750
- Dias necessários
- 30
- Semanas
- 4
- Resto de dias
- 2
Uma calculadora de data de conclusão de meta responde à pergunta de planejamento que todo projeto e objetivo pessoal precisa: se resta esta quantidade e o progresso continua a uma taxa diária estável, em qual dia do calendário a meta será concluída? Informe um valor-alvo não negativo, quanto já foi feito, uma taxa de progresso diário estritamente positiva na mesma unidade e uma data de referência ISO de início—por exemplo mil unidades de meta, duzentas e cinquenta feitas, vinte e cinco por dia a partir de primeiro de janeiro—e a ferramenta devolve o restante, dias inteiros por divisão com teto, a data de conclusão projetada, semanas mais dias sobrando e a substituição passo a passo em que você pode confiar em uma planilha, um painel ou um teste unitário. Quando o progresso atual já atinge ou supera a meta, os dias necessários são zero e a data de conclusão é igual à data de início.
O que significa a data de conclusão da meta com taxa diária fixa
O planejamento de projetos e o acompanhamento pessoal costumam partir de um modelo linear simples de progresso: você tem um alvo numérico, já possui certa quantidade concluída em direção a esse alvo e espera uma média fixa de avanço a cada dia de calendário sem aceleração, sem calendário que ignore fins de semana e sem variância estocástica.
Nesse modelo, a quantidade ainda necessária é a meta menos o progresso atual, limitada a zero quando você já chegou lá, e o número de dias é o menor inteiro de incrementos diários que cobre o restante—matematicamente o teto do restante dividido pela taxa diária. Por exemplo, uma meta de mil unidades com duzentas e cinquenta já feitas deixa setecentas e cinquenta restantes; a vinte e cinco por dia são exatamente trinta dias.
Somar trinta dias de calendário a uma data de referência de primeiro de janeiro cai no dia trinta e um de janeiro em ano bissexto ou não para esse deslocamento. Se o restante não for múltiplo exato da taxa diária, o último dia parcial ainda conta como dia inteiro porque neste modelo não se agenda um dia de calendário fracionário: cem restantes a três por dia precisam de trinta e quatro dias, não trinta e três vírgula três.
Zero dias significa que você já atinge ou supera a meta e a data de conclusão é a de início. Esta calculadora não modela mudanças de velocidade, calendários de capacidade da equipe, feriados, crescimento composto nem conversão de moeda.
Casos de uso
Painéis de projeto e faixas de ETA
Ferramentas de produto e operações enviam o trabalho restante, a queima diária média e a data de referência de hoje, e mostram uma data final projetada sem reimplementar divisão com teto e matemática de calendário em cada cliente.
Metas pessoais e trackers de hábitos
Metas de fitness, leitura e unidades no estilo poupança projetam quando um alvo numérico termina a um ritmo diário estável para telas de motivação e revisões semanais.
Perguntas frequentes
Isso pula fins de semana ou feriados?
Não. Soma dias de calendário inteiros no calendário gregoriano proléptico. Use uma ferramenta de dias úteis se precisar pular fins de semana e feriados.
A calculadora de data de conclusão da meta é gratuita?
A ferramenta do navegador é gratuita e roda localmente.
E se o que falta não for divisível pelo ritmo diário?
O último dia parcial conta como um dia inteiro, porque não dá para agendar uma fração de dia. A calculadora sempre arredonda os dias para cima, então uma pequena sobra acrescenta mais um dia em vez de ser descartada.
E se eu já tiver atingido a meta?
Nesse caso, os dias necessários são zero e a data de conclusão é a própria data de início. O mesmo vale se o seu progresso já passou da meta, porque o que falta nunca fica abaixo de zero.
O ritmo diário pode ser zero?
Não. Um ritmo zero nunca fecharia a diferença, então ele é recusado em vez de gerar uma data infinita. Ritmos e valores negativos também são recusados; use a média positiva que você espera manter a cada dia.
Ferramentas relacionadas
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/biz/goal-completion-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"goal":1000,"current":250,"daily_rate":25,"start_date":"2024-01-01"}'const res = await fetch("https://api.kit.forhosting.com/biz/goal-completion-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"goal": 1000,
"current": 250,
"daily_rate": 25,
"start_date": "2024-01-01"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/goal-completion-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"goal": 1000,
"current": 250,
"daily_rate": 25,
"start_date": "2024-01-01"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/goal-completion-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"goal":1000,"current":250,"daily_rate":25,"start_date":"2024-01-01"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"goal":1000,"current":250,"daily_rate":25,"start_date":"2024-01-01"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/goal-completion-date", 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
{
"goal": 1000,
"current": 250,
"daily_rate": 25,
"start_date": "2024-01-01"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.goal_completion_date",
"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. |
Notas técnicas
Uma taxa diária zero é rejeitada com invalid_input em vez de fingir que o infinito é um plano; taxas negativas e saldos negativos também são rejeitados. O caminho é aritmética determinística pura e calendário gregoriano—sem rede, sem Date do relógio, sem semente aleatória—de modo que o executor gratuito do navegador e a API pré-paga devolvem o mesmo JSON após o arredondamento decimal fixo cada vez que você a chama.
O que significa a data de conclusão da meta com taxa diária fixa
Aplica apenas a aritmética: remaining é o máximo de zero e goal menos current, days é zero quando remaining é zero, caso contrário days é o teto de remaining sobre daily_rate, e completion_date é start_date mais esses dias do calendário gregoriano sem usar o relógio do host.
Como chamar a API e o que volta
Dias de calendário impossíveis como vinte e nove de fevereiro em ano não bissexto falham na validação com mensagem clara do campo. Envie um corpo JSON com quatro campos obrigatórios: goal (aliases target, target_amount, amount), o alvo numérico não negativo; current (aliases current_amount, progress, completed), a quantidade não negativa já feita; daily_rate (aliases rate, daily_progress, progress_rate), o progresso diário fixo positivo; e start_date (aliases date, as_of, current_date), uma string de calendário ISO estrita YYYY-MM-DD que seja uma data gregoriana real. Os valores absolutos de dinheiro ou contagem devem permanecer dentro de um trilhão para que produtos intermediários fiquem finitos em precisão dupla IEEE no Worker e no navegador. A taxa diária deve ser estritamente positiva; um valor zero ou quase zero é rejeitado com invalid_input porque taxa nula nunca fecha um gap positivo, e taxa negativa também é rejeitada. Em sucesso a resposta ecoa goal, current e daily_rate arredondados mais o start_date normalizado; define remaining como a quantidade não negativa ainda necessária; days_needed como a contagem de dias inteiros; weeks e days_remainder como a divisão inteira dos dias em blocos de sete; amount_at_rate como dias vezes taxa diária; completion_date como a data ISO projetada; already_reached como booleano; formula como a string documentada; message como um resumo curto em inglês; e steps como um array ordenado de linhas de substituição. Validação falha—campos ausentes, números não finitos, valores fora dos limites absolutos, goal ou current negativos, daily_rate zero ou negativo, data inválida ou projeção que saia do intervalo de anos 0001–9999—retorna invalid_input e nunca é cobrada. O preço é um valor fixo US$ 0,002 por requisição bem-sucedida com unidade item.
Dicas práticas, limites e buscas relacionadas
Esta página atende quem busca calculadora de data de conclusão de meta, data final a partir da taxa diária de progresso ou restante dividido pela taxa online; não é ferramenta de meses de poupança com depósitos mensais, nem agendador de dias úteis que pula fins de semana, nem previsão Monte Carlo de velocidade. Prefira esta capacidade quando você já conhece as três cifras de progresso e uma data de referência e só precisa do dia de calendário linear de conclusão; se o plano inclui juros, capitalização ou calendários de dias úteis, use um modelo dedicado. Use a mesma unidade para goal, current e daily_rate—não misture páginas e palavras, nem dólares e centavos, sem converter primeiro. Mantenha a taxa diária estritamente positiva; experimentos gratuitos no navegador que enviem zero acertarão invalid_input e não serão cobrados na API. Ao ensinar ou testar, combine exemplos: mil de meta com duzentas e cinquenta atuais e vinte e cinco por dia a partir de primeiro de janeiro para um caminho exato de trinta dias até o dia trinta e um; um caso em que o restante não é múltiplo da taxa e o teto acrescenta um dia extra; um caso em que current já iguala ou supera a meta e days é zero e a conclusão coincide com o início; e uma taxa diária deliberadamente zero para demonstrar o caminho rígido de invalid_input. Tarefas falhas que retornam invalid_input não consomem saldo pré-pago, o que mantém scripts exploratórios baratos quando desenvolvedores enviam de propósito taxa nula. Checagens de ida e volta são simples: recalcule à mão o máximo de zero e goal menos current, divida por daily_rate, tome o teto, some esses dias de calendário à data de início com uma biblioteca gregoriana conhecida ou um calendário em papel, e confirme que coincide com o completion_date publicado no mesmo arredondamento de doze casas nos campos de quantidade.
Casos de integração
Testes unitários de bibliotecas de planejamento
QA e engenharia geram datas de conclusão conhecidas e rejeições deliberadas de taxa zero para valores esperados golden em módulos de previsão.
Perguntas técnicas
Como a data de conclusão da meta é calculada?
remaining = max(0, goal − current). Se remaining for zero, days_needed é 0 e completion_date é igual a start_date. Caso contrário days_needed = ceil(remaining / daily_rate) e completion_date é start_date mais esses dias do calendário gregoriano.
O que acontece quando a taxa diária é zero?
A ferramenta retorna invalid_input. Uma taxa de progresso nula nunca alcança um restante positivo, então a API recusa esse plano em vez de devolver infinito.
E se eu já alcancei a meta?
Se current ≥ goal, days_needed é 0, remaining é 0, already_reached é true e completion_date é o start_date que você informou.