Editando rates a partir do painel
Duas operações na página de um product, e a diferença entre elas importa:
Ambas salvam apenas as regras do product que você está olhando. O restante do scope é intocado,
portanto configurar
* para promo não perturba * para nada mais.
O editor de scope inteiro na página Pricing ainda substitui um scope por completo. E isso está
correto ali, porque mostra tudo dele.
Duas identidades, não uma
Se o crédito de uma conta bate é verificado contra duas equações. Errar isso reporta uma discrepância falsa em toda conta, portanto vale a pena declarar com precisão.O que é excluído, e por quê
Lifetime, nunca um período
Crédito é um total corrente. Qualquer janela mais curta precisa de um saldo inicial que nada registra. E uma cifra inicial errada inventa uma discrepância toda vez que roda.De onde vêm os dois lados
Nunca ambos para um dia. Esse é o join que faz a reconciliação sobreviver à janela de retenção: uma
vez que um dia é resumido e purgado, seu consumo ainda conta.
Quando os números não batem
Vá por esta ordem:1
Há recharges pendentes?
Um
RECHARGE para uma account sem linha account_balance credita nada e permanece pendente.
Está no ledger e não no balance — o que é exatamente uma lacuna no lado do dinheiro.2
Houve um shutdown não limpo?
Um
kill -9 deixa crédito preso em reserved. balance + reserved ainda é conservado, portanto
a identidade do dinheiro se mantém — mas a account tem menos gastável do que deveria até que
POST /ops/credit/release rode.3
O rollup está atrasado?
Um dia nem resumido nem ainda em
cdr_submit é consumo que ninguém conta. O purge deveria tornar
isso impossível; verifique se ele não foi contornado.4
O painel está lendo o mesmo banco?
METRICS_DATABASE_URL contra o FIREFLO_DB_URL do gateway. Uma divergência aqui faz toda cifra
discordar de uma forma que se parece com um bug de contabilidade.Relacionado
Como o pricing funciona
Scopes, o default
* e LCR.Crédito prepaid
Blocos, reservas e o ledger.