💳 Finanças — operações de pagamentos Modelo em tempo real
Está na mesa de operações de um switch de pagamentos que fica entre comerciantes e emissores de cartões. Em cada minuto chegam, em média, cerca de 400 transações por segundo; cada uma é pontuada quanto a fraude, espera por um slot de ligação livre e é encaminhada para o seu emissor para obter resposta. O modelo calcula filas, tempos limite, novas tentativas dos clientes, o compromisso do filtro de fraude e a exposição em stand-in a partir de fórmulas de manual. Os montantes estão em unidades monetárias genéricas (u). Apenas simulação educativa — não é aconselhamento financeiro, jurídico ou de investimento.
O que vai aprender
Porque é que as novas tentativas podem prender um switch sobrecarregado numa tempestade de repetições mesmo depois de se acrescentar capacidade — e como a limitação de carga quebra o ciclo.
Como um limiar de pontuação de fraude troca perdas por fraude por bons clientes recusados, e porque o limiar certo depende da taxa base de fraude.
Como um emissor lento enche todos os slots de ligação (lei de Little), e o que custam os tempos limite e o processamento em stand-in.
Simulador
Tempo 0 min
▶Servidor em serviço
⚙Servidor a arrancar
·Posição livre no rack de servidores
✓Emissor a responder normalmente
⌛Emissor lento ou em baixo
⇄Processamento em stand-in ativo
•Transações a chegar
Controlos
Cada servidor tem 32 slots de ligação. Os servidores adicionados demoram 5 minutos a arrancar; todos os servidores são faturados, a arrancar ou não.
Admite no máximo 90 % da capacidade e responde de imediato ao excedente com «tente mais tarde», em vez de o deixar entrar na fila e expirar.
Como os comerciantes repetem uma falha técnica (até 3 novas tentativas). Imediata = no minuto seguinte; recuo = recuo exponencial aleatório, atrasos médios de 1, 2 e 4 minutos.
As transações com pontuação igual ou superior a este valor são recusadas. As pontuações estão em desvios-padrão do tráfego genuíno: mais baixo significa mais fraude travada e mais bons clientes recusados.
As pontuações tão abaixo do limiar recebem um desafio adicional ao cliente em vez de uma decisão: 85 % dos clientes genuínos completam-no, 5 % dos fraudadores passam. 0 = desligado.
Quanto tempo um slot de ligação espera pela resposta do emissor. Depois disso o switch envia uma anulação e usa o stand-in, ou recusa com «emissor indisponível».
Quando o emissor não responde a tempo, o switch aprova em seu nome até este montante. Cada aprovação em stand-in é uma exposição que o emissor nunca verificou. 0 = desligado.
Indicadores
Taxa de aprovação de bons clientes
99,9%
normal
Tempo de autorização
330ms
normal
Taxa de fraude (parte do montante aprovado)
10,4bp
normal
Slots de ligação ocupados
69%
normal
Taxa de aprovação, emissores saudáveis
99,9 %
Bons clientes recusados pela regra de fraude
1,3 ‰
Transações enviadas para step-up
0,0 %
Fraude travada
31 %
Novas transações
400 tx/s
Carga oferecida (novas + repetições)
400 tx/s
Novas tentativas
0 tx/s
Recusadas por limitação (resposta «tente mais tarde»)
0 tx/s
Descartadas na fila
0,0 %
Tempos limite de emissores
0,0 %
Aprovações em stand-in
0 tx/s
Servidores em serviço
6
Servidores a arrancar
0
Taxa de custo de servidores
36 u/h
Custo de servidores até agora
0 u
Exposição em stand-in
0,00 M u
Fraude aprovada até agora
0,00 M u
Boas transações perdidas até agora
0,0 k tx
Transações à espera de nova tentativa
0 tx
Latência dos emissores do grupo B (média)
250 ms
Tendência
Cenários de crise
Nível 1 · Pico de promoção
No minuto 5 abre uma grande promoção online e duplica o tráfego para cerca de 800 transações por segundo durante 45 minutos. O switch tem 6 servidores, dimensionados para um dia normal com cerca de 70 % de ocupação. Os comerciantes repetem de imediato cada falha técnica. Mantenha os bons clientes aprovados e as respostas rápidas sem comprar capacidade de que não precisa.
Aprovação média de bons clientes ≥ 95 % a partir da promoção
Tempo médio de autorização ≤ 500 ms
Custo de servidores ≤ 75 u
Nível 2 · Vaga de fraude
No minuto 5 começa a ser usado um lote de dados de cartões roubados: a parte de fraude no tráfego salta de 0,1 % para 1 %. O limiar de recusa está definido para dias normais (3σ) e o step-up está desligado. Reduza a taxa de fraude sem recusar bons clientes.
Taxa média de fraude ≤ 25 bp
Aprovação média de bons clientes ≥ 98 %
Bons clientes recusados pela regra ≤ 5 ‰
Nível 3 · Falha de emissores
No minuto 5 os emissores do grupo B — um quarto de todo o tráfego — abrandam para um tempo médio de resposta de 12 segundos. O switch espera até 8 s por uma resposta, não tem stand-in e tem 6 servidores. Mantenha os clientes dos emissores saudáveis a fluir, sirva o grupo B até onde for seguro e mantenha a exposição em stand-in e o custo sob controlo.
Aprovação média dos clientes de emissores saudáveis ≥ 90 %
Aprovação média de bons clientes ≥ 86 %
Exposição em stand-in ≤ 9 M u
Custo de servidores ≤ 65 u
Base — o modelo por trás dos números
Todas as relações que o simulador usa, com a respetiva fonte. As constantes marcadas como pressupostos são calibrações ilustrativas.
As novas transações chegam a uma taxa base vezes o pico de vendas; a contagem por minuto é aleatória (Poisson, aproximação normal) com alguma irregularidade.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Pressuposto: o número de slots, os tempos de serviço e dos emissores, a separação das pontuações, as taxas de aprovação do step-up, a parte de trabalho desperdiçado, os montantes e os preços são valores ilustrativos de um switch de média dimensão, não números de qualquer rede real.
Pontuação de fraude binormal: as pontuações genuínas e de fraude são duas curvas normais afastadas de d′; o limiar escolhe um ponto na curva ROC.
genuine score ~ N(0,1), fraud ~ N(d′,1), d′ = 2.5; FPR(t) = 1 − Φ(t), TPR(t) = 1 − Φ(t − d′); AUC = Φ(d′/√2) ≈ 0.96[6][7]Pressuposto: o número de slots, os tempos de serviço e dos emissores, a separação das pontuações, as taxas de aprovação do step-up, a parte de trabalho desperdiçado, os montantes e os preços são valores ilustrativos de um switch de média dimensão, não números de qualquer rede real.
Limiar ótimo em custo: recuse quando a razão de verosimilhança excede a razão de custos ponderada pela taxa base — dez vezes mais fraude desloca-o ln 10 / d′ ≈ 0,9σ para baixo.
Step-up: as pontuações na banda abaixo do limiar são desafiadas em vez de decididas.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Pressuposto: o número de slots, os tempos de serviço e dos emissores, a separação das pontuações, as taxas de aprovação do step-up, a parte de trabalho desperdiçado, os montantes e os preços são valores ilustrativos de um switch de média dimensão, não números de qualquer rede real.
A latência do emissor é exponencial; um slot fica retido durante a latência ou o tempo limite, consoante o que ocorrer primeiro.
L ~ Exp(mean m); E[min(L, T)] = m(1 − e^(−T/m)), P(L > T) = e^(−T/m); S = 80 ms + forwarded × Σ share·E[min(L,T)][2][9]
Lei de Little: slots ocupados = taxa de chegada × tempo de retenção.
Erlang C: a probabilidade de uma transação esperar por um slot livre, e a de esperar mais do que o tempo limite da fila de 2 s.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Para lá da capacidade, o switch gasta também trabalho em pedidos que depois descarta, pelo que o débito útil desce à medida que a carga sobe; a limitação de carga recusa o excedente a baixo custo.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Pressuposto: o número de slots, os tempos de serviço e dos emissores, a separação das pontuações, as taxas de aprovação do step-up, a parte de trabalho desperdiçado, os montantes e os preços são valores ilustrativos de um switch de média dimensão, não números de qualquer rede real.
Novas tentativas do cliente: cada falha técnica é repetida até três vezes, de imediato ou com recuo exponencial aleatório.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Pressuposto: o número de slots, os tempos de serviço e dos emissores, a separação das pontuações, as taxas de aprovação do step-up, a parte de trabalho desperdiçado, os montantes e os preços são valores ilustrativos de um switch de média dimensão, não números de qualquer rede real.
Tempo limite do emissor, anulação e stand-in: os montantes são lognormais, pelo que a parte abaixo do limite e o volume aprovado decorrem da função de distribuição normal.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Taxa de fraude em pontos base do montante aprovado; 13 bp é usado como escala de referência para pequenos pagamentos remotos com cartão.
Outras constantes de funcionamento usadas pelo modelo.
32 slots per server, 2–24 servers, +5 min boot, 6 u per server-hour · switch time 80 ms · queue timeout 2 s · issuer latency 250 ms (group B = 25 % of traffic, ±15 % per minute) · amounts lognormal, median 40 u, σ = 1, fraud ×1.5 · ω = 0.3 · shedding at 90 % · reversal = 80 ms of switch timePressuposto: o número de slots, os tempos de serviço e dos emissores, a separação das pontuações, as taxas de aprovação do step-up, a parte de trabalho desperdiçado, os montantes e os preços são valores ilustrativos de um switch de média dimensão, não números de qualquer rede real.
Aleatoriedade: um gerador mulberry32 com semente; distribuições usadas — uniforme, exponencial (inversa da CDF), normal (Box–Muller), Poisson (Knuth). A semente é apresentada e partilhável.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013