CredResolveSmartDialer lab
Production demo API docs

Graduate AI/ML systems assignment

Watch the dialer decide.

A safety-first predictive dialer for human agents. It estimates how many borrowers to call, quantifies uncertainty, and refuses capacity risk it cannot explain.

Read the design logic
Model
Wilson + binomial tail
Safety budget
0.5% per decision
Telecom
Deterministic mocks

Live production code · no calls created

Decision Lab

API connected
Pacing proposalcandidate calls
Mandatory gateEvaluating
Authorizeddurable intents
Effective mode
Observed answers
Wilson upper bound
Overload probability

Connecting to the production decision endpoint…

Why Loading evidence

The browser calls GET /v1/demo/pacing-decision. That endpoint invokes PredictivePacingEngine and SafetyController directly—there is no frontend-only safety formula.

95%one-sided confidence
1%absolute risk ceiling
30samples before prediction
maximum intent attempts
0real telecom calls

The problem

Predictive speed can strand a borrower without a human.

Calling too slowly wastes agent time. Calling too aggressively means more borrowers answer than humans can serve. This prototype treats that overload probability as an explicit, operator-owned constraint.

Borrower answers are uncertain
confidence-bounded gate
Human capacity is finite

How the intelligence works

Prediction proposes. Safety permits. PostgreSQL commits.

This is an applied AI/ML systems assignment, not a chatbot. The intelligence is a conservative statistical control policy operating under uncertain answer behavior and changing human capacity.

01

Estimate demand

Expected-value pacing

Observed answers, ringing calls, setup time, and near-term agent releases produce a candidate batch.

ceil(unfilled_capacity / answer_rate)
02

Bound uncertainty

Wilson upper confidence

The controller assumes a more conservative answer probability than the raw mean.

p̂ → one-sided 95% upper bound
03

Search safe batch

Exact binomial tail

Binary search finds the largest batch whose chance of exceeding capacity remains within policy.

P(answered > humans) ≤ 0.5%
04

Persist permission

Schema-linked receipt

Every call intent must reference a persisted safety decision. PostgreSQL rejects bypasses.

call_intent.safety_decision_id NOT NULL
Known uncertainty?Cold dataStale presenceRapid agent lossProvider degradation→ progressive mode

Running system evidence

The implementation, alive.

These are current PostgreSQL records from the deployed application—not a marketing mockup.

Last database read18:18:27 UTC
Campaigns1Predictive policy
Human capacity now0/105s heartbeat · 15s timeout
Calls in flight037 borrowers queued
Manual review0No unresolved exceptions

Latest immutable authorization

Safety pulse

6c44909c
13of 34
Reduced

Predictive permission

Reviewer Demo

Risk ceiling
0.500%
Calculated overload
0.2591%

ReasonConfidence-Bounded Overload Limit

Live human presence

Agent capacity

Silent loss bounded at 15s
Offline 10
H
Human Agent 1Reviewer Demo
Offline4402s ago
H
Human Agent 10Reviewer Demo
Offline4402s ago
H
Human Agent 2Reviewer Demo
Offline4402s ago
H
Human Agent 3Reviewer Demo
Offline4402s ago
H
Human Agent 4Reviewer Demo
Offline4402s ago
H
Human Agent 5Reviewer Demo
Offline4402s ago
H
Human Agent 6Reviewer Demo
Offline4402s ago
H
Human Agent 7Reviewer Demo
Offline4402s ago

At-least-once workflow

Durable call intents

Every row links to safety
CallBorrower / campaignHumanProviderStateSafety
d4fa8a97PredictiveDEMO-13Reviewer DemoAwaiting humanBland MockCompleted6c44909c
6a7bba6dPredictiveDEMO-12Reviewer DemoAwaiting humanBland MockCompleted6c44909c
ff43c1f7PredictiveDEMO-11Reviewer DemoAwaiting humanBland MockCompleted6c44909c
33180743PredictiveDEMO-10Reviewer DemoAwaiting humanBland MockCompleted6c44909c
6bfbb9d8PredictiveDEMO-9Reviewer DemoAwaiting humanBland MockCompleted6c44909c
f34a0ecbPredictiveDEMO-8Reviewer DemoAwaiting humanBland MockCompleted6c44909c
a99afc90PredictiveDEMO-7Reviewer DemoAwaiting humanBland MockCompleted6c44909c
38a954d5PredictiveDEMO-6Reviewer DemoAwaiting humanBland MockCompleted6c44909c

Operator-owned policy

Campaign lanes

Reviewer Demoen-IN · Bland Mock
Predictive0.50% risk

Submission boundary

Built to be inspected, not merely presented.

Python modular monolith · PostgreSQL concurrency · deterministic simulation · load tests · CI startup smoke test · REST + CLI · no real borrower calls.

Review source