// Variant C — continued: engine deep dive, spec table, testimonial, CTA, footer.
// ─── Deep dive into the engine with tabs
function DeepDiveC() {
const tabs = [
{
key: 'L1', n: 'L1', name: 'Rules & anomaly', time: '3ms',
headline: 'Deterministic. Unambiguous. Always first.',
body: 'Forty-plus hand-tuned signals: velocity windows, baseline deviation, geo/ISP anomalies, sanctions and blocklists, known-bad fingerprints. Runs in-memory against a 90-day rolling window per client. Catches the obvious before a model is ever invoked — saves cost and latency on the 80% happy path.',
bullets: ['40+ signals · velocity, baseline, geo, lists', 'Runs in 3ms p50 · pure memory, no network', 'Explainable by definition: which rule fired, why'],
tone: '#63D4E6',
},
{
key: 'L2', n: 'L2', name: 'Model α', time: '14ms',
headline: 'Contextual risk. First independent opinion.',
body: 'Gradient-boosted scorer trained per-tenant on your own historical labels. Features include client tenure, destination reputation, time-of-day, transaction shape, and behaviour graph proximity. Outputs a calibrated risk score with SHAP-like feature contributions attached to every verdict.',
bullets: ['Tenant-specific model · retrained weekly', 'Calibrated score + feature attributions', 'Shadow-mode deploy before promotion'],
tone: '#9387FF',
},
{
key: 'L3', n: 'L3', name: 'Model β', time: '22ms',
headline: 'Independent reasoning. Breaks ties, writes the reason.',
body: 'A second scorer, different architecture, different training data. Invoked when L1 and L2 disagree, and on the high-stakes tail. Produces a short written narrative and a confidence. When α and β disagree, the transaction is held for human review — no silent coin flips.',
bullets: ['Different family from Model α on purpose', 'Written rationale attached to every decision', 'Disagreement → review, never silent override'],
tone: '#81A8FF',
},
];
const [active, setActive] = React.useState('L1');
const cur = tabs.find(t => t.key === active);
return (
02 · UNDER THE HOOD
Three models you can reason about.
Every layer is documented, inspectable, and replaceable. This is what runs on your transactions.
);
}
// ─── L3 panel: narrative + confidence
function L3Panel({ tone }) {
const [typed, setTyped] = React.useState('');
const full = 'Destination address was first seen 14 days ago on an unrelated tenant. Originating IP belongs to a cluster previously associated with laundering activity (confidence 0.84). Transaction shape and velocity fit known mixer-adjacent patterns. L1 already hard-blocked on IP list; I concur and recommend escalation to compliance for account-level review.';
React.useEffect(() => {
setTyped('');
let i = 0;
const iv = setInterval(() => {
i += 3;
if (i >= full.length) { setTyped(full); clearInterval(iv); return; }
setTyped(full.slice(0, i));
}, 16);
return () => clearInterval(iv);
}, []);
return (
);
}
// ─── Testimonial
function TestimonialC() {
return (
★★★★★ · 4.9/5 · 240+ operators
"We stopped arguing about false blocks the week Dipoli went live. Every verdict comes with a reason.
When we disagree with the chain, we disagree with evidence, not vibes."
MK
Marta Kowalski
Head of Risk Ops · INXY Payments
–67%
false blocks, q/q
);
}
// ─── Final CTA
function FinalCtaC() {
return (
Stop guessing at fraud. Start deciding.
14-day trial on your own traffic. No card, no sales call. Drop in, see verdicts,
ship if it works.
ONBOARDING IN 48 HRS · SANDBOX WITH REAL MODELS · CANCEL ANYTIME