Behavioural credit scoring for South African lenders

The credit signal the bureau doesn't have.

Bank statements in. Explainable decision pack out — behavioural score, affordability, document tampering checks, reason codes, and outcome recommendation. Via API or portal.

612 / 850
FAIR
Income
78%
Buffer
54%
Discipline
62%
Red Flags
85%
REASON 01 — Debt service is 30-50% of salary
● ADVISORY: tamper check clear
6 SA banks parsed
17 NCR categories
Document tampering checks
API + Portal

The problem

Half your declines aren't bad credit. They're no credit.

50%

Thin file

of declined applications have insufficient bureau data. Not bad history — no history.

20–45 min

Manual grind

per application reading statements, categorising transactions, plugging numbers into spreadsheets. Qualified staff doing work a machine should do.

0

Invisible signals

bureau data points capture bank statement behaviour. Income regularity, cash buffer, gambling spend, returned debits — none of it reaches the credit decision.


The shift

It replaces the slow, blind parts of your credit decision.

For thin-file applicants the bureau comes back empty — so today the file lands on an analyst's desk, or gets declined unseen.

Today, on a thin-file applicant
  • A bureau enquiry that returns no usable score — paid for, learned nothing
  • 15–45 minutes of an analyst reading the statement by hand — slow and inconsistent
  • Or a decline unseen — a good customer lost, with no audit trail of why
With AffyScore
  • A score in minutes, automatically, from the statement they already sent
  • Consistent and auditable — every output versioned for review and dispute
  • More good customers approved, more bad ones caught — on evidence

See it run

Watch it work.

2-minute walkthrough: statements uploaded, decision pack delivered. See extraction, scoring, and tamper checks on a real file.

Demo video — coming soon

How it works

Bank statements in. Decision pack out.

Three months of statements. Six stages. One complete, defensible credit decision.

01

Intake

Operator upload or customer self-upload via tokenised WhatsApp link. Batch up to 30 statements.

02

Extract

Six SA banks parsed by fingerprint — FNB, Standard Bank, ABSA, Nedbank, Capitec, Discovery. Regex extraction with AI vision fallback for scanned or image-based documents.

03

Tamper Check

Document tampering checks across metadata, font/layout, mathematical, and sequence anomalies. Advisory — flags findings for the human, never auto-declines.

04

Classify

Every transaction categorised into 17 NCR categories. Counterparty identification. Salary detected by recurrence.

05

Affordability

Reg 23A affordability on statement-derived income. Disposable income, maximum instalment, norm-floored expenses, audit-stamped output.

06

Score + Recommendation

300–850 behavioural score across four weighted families. Reason codes in plain English. Outcome recommendation to support the lender's decision.


The output

Line-by-line. Every transaction. Fully categorised.

Download sample output from a real extraction. Every transaction is there — date, description, amount, balance, category, confidence score, and counterparty.

{ } Sample JSON — Decision Pack 📊 Sample CSV — Transactions 📄 Sample PDF (coming) 📈 Sample Excel (coming)

The score

Four families. One number. Every factor traceable.

300–850, built from what the statement actually shows. Not a black box — every point traces back to a transaction.

30% — Income

Income

  • Salary recurrence
  • Salary stability (CoV)
  • Irregular-income share
25% — Cash Buffer

Cash Buffer

  • Average daily balance between pay cycles
  • Low-balance days
25% — Discipline

Discipline

  • Returned debit orders
  • Lender stacking
  • Debt-service ratio
20% — Red Flags

Red Flags

  • Gambling share-of-wallet
  • Cash withdrawal dominance
REASON 01 — Debt service is 30-50% of salary.
             Less room before a new instalment overcommits the applicant.

REASON 02 — Gambling is 5-10% of income.
             Material gambling erodes real affordability.

Every score ships with plain-English reason codes. Your underwriter sees why, not just what.


Beyond the score

The same data reveals product fit.

Short-term lenders / BNPL detectedConsolidation loanExpensive recurring debits point to a rehabilitation opportunity
Insurance premiums mappedBroker reviewExisting cover mapped to short-term, funeral, legal, medical aid
Tuition debits detectedEducation financeTuition payments flag an education loan opportunity
Gambling spend flaggedWellness referralNever a product offer. Routes to financial wellness — deliberately separate from sales

Underwriter-facing signals. No automated marketing. The human decides.


Integration

Plugs into your workflow. Not the other way around.

⚡ API

  • REST API with async webhooks
  • Fire-and-forget: POST statements, get job ID, receive result via callback
  • Batch processing: overnight cron, morning review queue
  • n8n, Zapier, or direct HTTP integration
  • JSON response with full decision pack

🖥 Portal

  • Web dashboard for manual upload and review
  • Operator uploads statements, views pipeline progress
  • Score card, reason codes, affordability output, tamper advisory
  • Export to JSON, CSV, PDF, or Excel
Built for SA banks NCA-aligned POPIA-ready Hosted in South Africa

Why it stands up

Built for a regulated South African lending book.

Transparent, tunable, and yours to integrate.

Explainable by design — every score carries plain-English reason codes, not a mystery number.
Auditable & versioned — outputs are reproducible and time-stamped for review and dispute defence.
Tuned to your rules — categories and red-flags adjust to how your team already assesses risk.
Bureau-neutral — complements your existing data sources, doesn't lock you into one.
Dashboard or API — review in the console, or wire it straight into your workflow.
Built for SA banks — reads the major South African statement formats, scanned or digital.

Pricing

Transparent pricing. Per extraction.

Prepaid bundles in Rands. No minimum contract. Top up credits as you go.

Starter
Up to 200 / month
R35 per extraction
Full decision pack: extraction, classification, document tampering checks, Reg 23A affordability, behavioural score with reason codes, outcome recommendation. Export to JSON, CSV, PDF, or Excel.
Growth
201–1,000 / month
R20 per extraction
Everything in Starter + priority API support + batch processing.
Enterprise
1,000+ / month
Custom
Volume pricing from R8–R14. Dedicated support, SLA, custom integrations.

Free credits for your first PoC. Book a demo and we'll set you up.

What it costs, in context

Per thin-file applicant — and unlike the bureau, you get a usable answer.

Bureau enquiry~R3–R40 · often blank
AffyScorefrom R8
Single credit report~R30–R80
Manual review (analyst)~R50–R200+
The point
Priced like a couple of bureau enquiries — but it actually scores the segment the bureau can't, and does in minutes what a manual review takes the better part of an hour to do.

Run it on your own statements.

Book a 15-minute demo. Bring 3 months of bank statements — we run them live and walk you through the full decision pack.