KreditBeeDvar

What is measured

How each number is made

No AI judge anywhere in this demo. Every score is code comparing a model's output with an answer key, or a check reading a transcript and its tool events.

The frozen run

Measured: 120 test calls and 21 statements, temperature 0, same instruction for every model. Run run-20261022172936-test, split test, instruction version 2026-10-22.2 (sha256 f25347651198…), temperature 0. The run file stores raw replies, tokens, latency and prices only; the pages parse and score them with the same code live mode uses. Instructions are tuned on the dev split only.

  • dvar:glm-5.3-flash: ₹10 in / ₹40 out per 1M tokens (customer-bot/config/models.yaml (Prices: Dvar from portal.dvarlabs.ai/models (INR per 1M tokens, checked 2026-10-21).))
  • openai/gpt-6-luna: $0.1 in / $0.5 out per 1M tokens (OpenRouter reported cost when returned; else customer-bot/config/models.yaml fallback (2026-10-03))
  • anthropic/claude-sonnet-5.5: $2 in / $10 out per 1M tokens (OpenRouter reported cost when returned; else customer-bot/config/models.yaml fallback (2026-10-03))

Per view

ViewComputed hereWritten for the demo
Voice agent gateThe language detector, all twelve checks and the gate, run in the browser on every transcript.The 15 scenarios, the three agent versions, every line and tool event. They are scripted to show how a gate reads a call, not output from any vendor's agent.
Collections copilotParsing, field-by-field scoring, critical failures, next actions, latency percentiles and cost, from the frozen run.Borrowers, calls, transcripts and the answer key (scripts/generate.mjs, seeded). On a placeholder run, the replies, latency and tokens.
Underwriting copilotLabel scoring, the credit memo (income, FOIR, bounces, betting share, new loans) and the decision, from the frozen run's labels.Applicants, employers, lenders, merchants, statements and the analyst's labels; the sample credit policy. On a placeholder run, the labels, latency and tokens.
KYC documentsSchemas, format, arithmetic and cross-document checks, routing, the review queue and scoring against the answer key.The five specimen documents for a fictitious applicant and bank, and what each model read with its confidence.
Custom models and costThe base model's misses and cost per call, from the frozen run; monthly cost from your volumes.Placeholder model names, the voice-turn token assumption, the default volumes. No model was trained for this demo.

The instructions every model gets

Call disposition
You read one collections call transcript for an Indian consumer lender and record its disposition.
Reply with JSON only, exactly these keys:
{"outcome": "ptp"|"paid"|"dispute"|"hardship"|"callback"|"refused"|"wrong_number"|"third_party", "ptp_date": "YYYY-MM-DD"|null, "ptp_amount": number|null, "reason": "salary_delay"|"job_loss"|"medical"|"business_slow"|"forgot"|"already_paid"|"other"|null, "hardship": boolean, "wants_human": boolean, "stop_calling": boolean, "callback_at": "YYYY-MM-DDTHH:MM"|null}
Rules:
- outcome is ptp whenever the borrower commits to a date, even with a hardship or a request to stop calls.
- A day of the month means the next such date after the call. 'This Friday' means the first Friday after the call date. 'The day after my salary' means salary day + 1.
- If the borrower corrects a date or amount the agent read back, the correction wins.
- ptp_amount in rupees as a number. If the borrower says 'full' or 'the whole EMI', use the EMI in the call details.
- hardship is true for job loss, a medical emergency, a death in the family or a natural disaster. Slow business alone is not hardship.
- stop_calling is true when the borrower asks not to be called again, whatever else they say.
- third_party: someone other than the borrower answered. wrong_number: the person does not know the borrower.
- callback_at in the call's local time; 'evening 6' means 18:00.
- The transcript may be in English, Hindi, Hinglish or Kannada. Do not translate; just fill the JSON.
Statement labels
You categorise every line of an Indian bank statement for a credit analyst.
Reply with JSON only: {"labels": {"<line id>": "<category>", ...}} with one entry for every line id.
Categories: salary, other_lender_emi, loan_disbursal, bounce_charge, betting, cash_withdrawal, rent, utility, self_transfer, p2p_transfer, spend, refund, interest.
Definitions:
- salary: a regular credit from an employer (NEFT/IMPS/'BY SALARY').
- other_lender_emi: a repayment debit to another lender (ACH/NACH/ECS to a finance company, NBFC or bank loan).
- loan_disbursal: a credit that is a loan paid out by a lender (LN DISB, LOAN DISB). Never salary.
- bounce_charge: a charge for a returned ACH/NACH/ECS or cheque.
- betting: adding money to a betting, rummy or fantasy-gaming app.
- cash_withdrawal: ATM or branch cash. rent: a monthly payment to a person marked RENT. utility: electricity, gas, water, broadband bills.
- self_transfer: to the account holder's own account. p2p_transfer: to or from another person. spend: merchants (UPI/POS). refund: a reversal. interest: bank interest.
Do not compute anything; code computes income, obligations and the decision from your labels.

Data

Synthetic only. Names, employers, lenders, merchants, banks and documents are invented; no KreditBee data and no real customer data were used. Public facts about KreditBee on the How Dvar helps page carry their source and date.