Skip to content
balisa_
Work

Work

11 projects across statistics, AI systems, and client delivery. 9 shipped, 2 in active development.

Statistical modeling and forecasting

Population projections, credit scoring, and life insurance risk. Mostly for places where data is thin.

This projection reaches 4.66 million by 2074, about 0.7 million under the UN medium variant. It is based on the 2024 census; the UN's was finalised before it.

This projection reaches 4.66 million by 2074, about 0.7 million under the UN medium variant. It is based on the 2024 census; the UN's was finalised before it.

01Live

The Gambia 2074

An independent population forecast for The Gambia, out to 2074

An independent population projection for a country whose published figures were set before the 2024 digital census. 7 million below the UN. The engine reproduces the UN's own projection to within 1 percent when fed their inputs. Three forms of Lee-Carter mortality, run over 1,000 futures.

~4.66M by 2074 (4.35 to 4.98M), within 1% of the UN

  • Python
  • PyMC
  • MCMC
  • NumPy
  • Pandas
  • Matplotlib
The scorecard dashboard: portfolio summary with Gini and KS reported on the test book, above the Information Value table that drives feature selection.

The scorecard dashboard: portfolio summary with Gini and KS reported on the test book, above the Information Value table that drives feature selection.

02Live

Credit Risk Scorecard

Basel II scorecard for West African microfinance

Microfinance loan officers in West Africa make lending decisions on intuition because the analytical infrastructure is not there. 21 on a later-vintage holdout. Below production thresholds, and the ceiling is set by the synthetic generator, not the fitting.

Gini 0.27 · KS 0.21 on a later-vintage holdout · PSI 0.002 while defaults rose a third

  • Python
  • scikit-learn
  • Pandas
  • Next.js
  • Recharts
Monte Carlo claims distribution over 5,000 scenarios with the 95 and 99 percent value-at-risk points.

Monte Carlo claims distribution over 5,000 scenarios with the 95 and 99 percent value-at-risk points.

03Live

Life Insurance Risk Model

Actuarial risk model for Sub-Saharan Africa

Standard actuarial models were calibrated on US and UK data, and they under-represent the constant background hazard that dominates mortality in Sub-Saharan Africa. I built the model from the mortality table up: Gompertz-Makeham, select-and-ultimate, Cox PH, and Monte Carlo VaR over 5,000 scenarios.

Cox PH C-index 0.77 · 5k Monte Carlo sims

  • Python
  • lifelines
  • NumPy
  • Next.js
  • Recharts

AI systems

Retrieval, generative, and search systems, with the validation layer around them.

The four steps from describing your columns to downloading the CSV, and the four checks every batch has to pass.

The four steps from describing your columns to downloading the CSV, and the four checks every batch has to pass.

05Live

NOVA

A synthetic-data engine for finance, from domain rules or from real data

Banks in West Africa hold customer data they cannot share, and for rural borrowers the data was never collected. NOVA generates synthetic data two ways: from a description of the columns and their rules, or from a real dataset via a Conditional Tabular GAN written from scratch in PyTorch. 10.

TSTR 0.92 · 4 checks pass · 7 domains, no source data needed

  • Python
  • PyTorch
  • CTGAN
  • FastAPI
  • Next.js 16
  • scikit-learn
Ask in plain English and the answer names the Act and section it came from.

Ask in plain English and the answer names the Act and section it came from.

06Live

Gambia Legal Aid

RAG chatbot for Gambian law

Lawyers in The Gambia are expensive, the statutes are scattered across PDFs, and a hallucinated answer in a legal question does real harm. I built a RAG system over 13 Acts of Parliament where answers name the section they came from, or say the corpus does not cover the question.

Cites the section, or refuses. 13 Acts, validated before it answers

  • Python
  • RAG
  • Vector search
  • FastAPI
  • Next.js
LiveCode privateCase study
07

AYAT

Live

A Qur'an that rearranges itself around your question

  • Python
  • sentence-transformers
  • UMAP
  • HDBSCAN
  • transformers.js
  • Next.js 16
  • Three.js
  • LLM API
08

HireIQ

In progress· 95%

A conversation in place of an application form

  • Python
  • FastAPI
  • NVIDIA NIM
  • Next.js 14
  • Supabase
  • WeasyPrint

Also shipped

Smaller builds and client work.

10

FORGE

In progress· 90%

Mentor-driven learning platform with proof-of-work verification

  • Next.js
  • TypeScript
  • Prisma
  • PostgreSQL
  • NextAuth v5
  • KaTeX
11

Website and admin CMS for a Gambian property firm

  • Next.js 16
  • Prisma 7
  • TypeScript
  • Tailwind
LiveCode private