Finansai — mokėjimų operacijos Gyvas modelis

Dirbate mokėjimų komutatoriaus, esančio tarp prekybininkų ir kortelių išdavėjų, operacijų valdymo pulte. Kiekvieną minutę atvyksta apie 400 operacijų per sekundę; kiekviena įvertinama dėl sukčiavimo, laukia laisvos jungčių vietos ir persiunčiama išdavėjui atsakymui gauti. Modelis skaičiuoja eiles, laukimo ribas, kliento pakartojimus, sukčiavimo patikros kompromisą ir pakaitinio tvirtinimo riziką pagal vadovėlines formules. Sumos pateiktos bendrinio vieneto (u) vienetais. Tik mokomoji simuliacija — tai ne finansinė, teisinė ar investicinė konsultacija.

Ko išmoksite

Simuliatorius

Laikas 0 min.
Siūloma apkrova (naujos + pakartojimai) 400 · Pakartojimai 0 · Gerų klientų patvirtinimo dalis 99,9% · Autorizavimo laikas 330 ms · Užimtos jungčių vietos 69% · Veikiantys serveriai 6 (+0) · Sukčiavimo dažnis (dalis nuo patvirtintos sumos) 10,4 bp · Išdavėjų laukimo ribos viršijimai 0,0% · Pakaitinio tvirtinimo rizika 0,00 M uSukčiavimo patikrat = 3,00σ✓ 99,9% · ? 0,0% · ✗ 0,1%Sustabdytassukčiavimas 31%Sukčiavimo dažnis (dalis nuopatvirtintos sumos) 10,4 bp400 op./s · ↻ 0Autorizavimo serveriai▶▶▶▶▶▶··················Užimtos jungčių vietos 69%330 ms · ✗ 0,0%A išdavėjai✓ 250 msB išdavėjai✓ 250 ms⏱ 8 s · ⌛ 0,0% · Σ 0 uGerų klientų patvirtinimo dalis 99,9%Pakaitinio tvirtinimo rizika 0,00 M u
  • Serveris veikia
  • Serveris paleidžiamas
  • Laisva serverio vieta spintoje
  • Išdavėjas atsako normaliai
  • Išdavėjas lėtas arba neveikia
  • Pakaitinis tvirtinimas įjungtas
  • Ateinančios operacijos

Valdikliai

Kiekvienas serveris turi 32 jungčių vietas. Pridėti serveriai paleidžiami per 5 minutes; apmokestinamas kiekvienas serveris, ar jis paleidžiamas, ar ne.

Priima ne daugiau kaip 90 % pajėgumo, o perteklių iškart atmeta atsakymu „bandykite vėliau“, užuot leidęs jam stoti į eilę ir baigtis laukimo riba.

Kaip prekybininkai kartoja techninį gedimą (iki 3 kartų). Iš karto = per kitą minutę; atidėjimas = atsitiktinis eksponentinis atidėjimas, vidutinės delsos 1, 2 ir 4 minutės.

Operacijos, kurių įvertis lygus šiai ribai ar didesnis, atmetamos. Įverčiai išreikšti tikro srauto standartiniais nuokrypiais: mažesnė riba reiškia daugiau sustabdytų sukčiavimų ir daugiau atmestų gerų klientų.

Įverčiai tiek žemiau ribos gauna papildomą kliento patikrinimą vietoj sprendimo: 85 % tikrų klientų jį atlieka, 5 % sukčių praeina. 0 = išjungta.

Kiek ilgai jungties vieta laukia išdavėjo atsakymo. Po to komutatorius išsiunčia atšaukimą ir naudoja pakaitinį tvirtinimą (stand-in) arba atmeta nurodydamas „išdavėjas nepasiekiamas“.

Kai išdavėjas laiku neatsako, komutatorius jo vardu patvirtina iki šios sumos. Kiekvienas pakaitinis patvirtinimas yra rizika, kurios išdavėjas niekada nepatikrino. 0 = išjungta.

Rodikliai

Gerų klientų patvirtinimo dalis
99,9%
normali
Autorizavimo laikas
330ms
normali
Sukčiavimo dažnis (dalis nuo patvirtintos sumos)
10,4bp
normali
Užimtos jungčių vietos
69%
normali
Patvirtinimo dalis, sveiki išdavėjai99,9 %
Gerų klientų, atmestų pagal sukčiavimo taisyklę1,3 ‰
Į papildomą patvirtinimą nukreiptos operacijos0,0 %
Sustabdytas sukčiavimas31 %
Naujos operacijos400 tx/s
Siūloma apkrova (naujos + pakartojimai)400 tx/s
Pakartojimai0 tx/s
Atmesta (atsakyta „bandykite vėliau“)0 tx/s
Atmesta eilėje0,0 %
Išdavėjų laukimo ribos viršijimai0,0 %
Pakaitiniai patvirtinimai0 tx/s
Veikiantys serveriai6
Serveriai paleidžiami0
Serverių kainos sparta36 u/h
Serverių kaina iki šiol0 u
Pakaitinio tvirtinimo rizika0,00 M u
Patvirtintas sukčiavimas iki šiol0,00 M u
Prarastos geros operacijos iki šiol0,0 k tx
Operacijos, laukiančios pakartojimo0 tx
B grupės išdavėjų delsa (vidutinė)250 ms

Tendencija

Gerų klientų patvirtinimo dalis: — %100,00,0

Krizių scenarijai

1 lygis · Išpardavimo srauto pikas

5 minutę prasideda didelė internetinė išpardavimų akcija ir 45 minutėms padvigubina srautą iki maždaug 800 operacijų per sekundę. Komutatorius turi 6 serverius, apskaičiuotus įprastai dienai, kai užimta apie 70 %. Prekybininkai kiekvieną techninį gedimą kartoja iš karto. Išlaikykite gerų klientų patvirtinimus ir greitus atsakymus nepirkdami pajėgumo, kurio jums nereikia.

  • Vidutinė gerų klientų patvirtinimo dalis ≥ 95 % nuo išpardavimo pradžios
  • Vidutinis autorizavimo laikas ≤ 500 ms
  • Serverių kaina ≤ 75 u

2 lygis · Sukčiavimo banga

5 minutę pradedami naudoti pavogtų kortelių duomenys: sukčiavimo dalis sraute šokteli nuo 0,1 % iki 1 %. Atmetimo riba nustatyta įprastoms dienoms (3σ), o papildomas patvirtinimas išjungtas. Sumažinkite sukčiavimo dažnį neatstumdami gerų klientų.

  • Vidutinis sukčiavimo dažnis ≤ 25 bp
  • Vidutinė gerų klientų patvirtinimo dalis ≥ 98 %
  • Pagal taisyklę atmestų gerų klientų ≤ 5 ‰

3 lygis · Išdavėjų gedimas

5 minutę B grupės išdavėjai — ketvirtadalis viso srauto — sulėtėja iki 12 sekundžių vidutinio atsakymo laiko. Komutatorius laukia atsakymo iki 8 s, neturi pakaitinio tvirtinimo ir veikia su 6 serveriais. Užtikrinkite sveikų išdavėjų klientų srautą, aptarnaukite B grupę kiek saugiai įmanoma ir išlaikykite pakaitinio tvirtinimo riziką bei kainą kontroliuojamas.

  • Vidutinė sveikų išdavėjų klientų patvirtinimo dalis ≥ 90 %
  • Vidutinė gerų klientų patvirtinimo dalis ≥ 86 %
  • Pakaitinio tvirtinimo rizika ≤ 9 M u
  • Serverių kaina ≤ 65 u

Pagrindas — modelis už skaičių

Kiekviena simuliatoriaus naudojama priklausomybė su savo šaltiniu. Konstantos, pažymėtos kaip prielaidos, yra iliustraciniai kalibravimai.

Naujos operacijos atvyksta bazinės spartos × pardavimų šuolio sparta; operacijų skaičius per minutę yra atsitiktinis (Puasono, normalusis artinys) su nedideliu pliūpsniškumu.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Binormalus sukčiavimo įvertis: tikri ir sukčių įverčiai yra dvi normaliosios kreivės d′ atstumu; riba pasirenka tašką ROC kreivėje.
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]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Kaštų atžvilgiu optimali riba: atmesti, kai tikėtinumo santykis viršija kaštų santykį, pasvertą bazine sukčiavimo dažnio dalimi — dešimt kartų daugiau sukčiavimo ją nuleidžia ln 10 / d′ ≈ 0,9σ.
decline when e^(d′x − d′²/2) ≥ (1 − π)·c_FP / (π·c_FN) ⇒ t* = [ln((1 − π)c_FP/(π c_FN)) + d′²/2] / d′[8][7]
Papildomas patvirtinimas: įverčiai juostoje žemiau ribos tikrinami papildomai, užuot buvę nuspręsti iš karto.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Išdavėjo delsa yra eksponentinė; jungčių vieta užimta delsos arba laukimo ribos laiką, kuris trumpesnis.
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]
Little dėsnis: užimtos jungčių vietos = atvykimo sparta × užimtumo laikas.
busy slots = λ·S (Little) ⇒ utilization = λ·S / (32 × servers)[3]
Erlango C: tikimybė, kad operacija lauks laisvos jungčių vietos, ir tikimybė, kad lauks ilgiau nei 2 s eilės laukimo riba.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Viršijus pajėgumą, komutatorius dirba ir su užklausomis, kurias vėliau atmeta, todėl naudingoji pralaida mažėja didėjant apkrovai; apkrovos mažinimas perteklių atmeta pigiai.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Kliento pakartojimai: kiekvienas techninis gedimas kartojamas iki trijų kartų — iš karto arba su atsitiktiniu eksponentiniu atidėjimu.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Išdavėjo laukimo riba, atšaukimas ir pakaitinis tvirtinimas: sumos yra lognormaliosios, todėl dalis žemiau ribos ir patvirtintas kiekis išplaukia iš normaliojo skirstinio funkcijos.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Sukčiavimo dažnis bazinio punkto dalimis nuo patvirtintos sumos; 13 bp naudojama kaip atskaitos skalė mažoms nuotolinėms kortelių operacijoms.
fraud rate = approved fraud amount / approved amount × 10,000 bp (reference scale: 13 bp)[10]
Kitos modelio naudojamos veikimo konstantos.
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 timePrielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.

Atsitiktinumas: mulberry32 generatorius su pradiniu skaičiumi; naudojami skirstiniai — tolygusis, eksponentinis (atvirkštinė pasiskirstymo funkcija), normalusis (Box–Muller), Puasono (Knuth). Pradinis skaičius rodomas ir juo galima dalytis.

Šaltiniai

  1. Teletraffic Engineering Handbook — Erlang C formula; waiting-time distribution for M/M/n, FCFS — ITU-D Study Group 2 Question 16/2 (V. B. Iversen), 2005
  2. M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013
  3. J. D. C. Little — A Proof for the Queuing Formula: L = λW — Operations Research 9(3):383–387, 1961
  4. Site Reliability Engineering — Ch. 22 Addressing Cascading Failures (retries, randomized exponential backoff, load shedding, work on requests past their deadline) — Beyer, Jones, Petoff, Murphy (eds.), O'Reilly, 2016
  5. N. Bronson, A. Aghayev, A. Charapko, T. Zhu — Metastable Failures in Distributed Systems — HotOS ’21, ACM, 2021
  6. T. Fawcett — An introduction to ROC analysis — Pattern Recognition Letters 27(8):861–874, 2006
  7. R. J. Bolton, D. J. Hand — Statistical Fraud Detection: A Review — Statistical Science 17(3):235–255, 2002
  8. C. Elkan — The Foundations of Cost-Sensitive Learning — IJCAI 2001, 2001
  9. ISO 8583-1:2003 Financial transaction card originated messages — Interchange message specifications — Part 1 (authorization, reversal messages) — ISO/TC 68/SC 9, 2003
  10. Commission Delegated Regulation (EU) 2018/389 — RTS on strong customer authentication, Annex: reference fraud rates (0.13 % for remote card payments up to EUR 100) — Official Journal of the European Union, 2018
  11. N. L. Johnson, S. Kotz, N. Balakrishnan — Continuous Univariate Distributions, Vol. 1 (lognormal distribution, partial moments) — Wiley, 1994

Kas tuo užsiima profesionaliai

Mokomasis modelis — netinka operaciniams sprendimams. Tikri objektai kiekvieną konstantą pritaiko savo įrangai ir duomenims.