Skip to content
AI & machine learning AI Architecture DevelopmentGenerative AI EngineeringAI Agents & Automation SolutionsDeep Learning & Robotic SolutionsComputer Vision
Data, analytics & quant Data Science SolutionsStatistical Solutions DevelopmentData Engineering & Business IntelligenceQuantitative Finance Solutions
Engineering & platforms System Design & ArchitectureCloud & DevSecOpsFull Stack EngineeringBack End EngineeringFront End EngineeringCustom Software DevelopmentMobile Application DevelopmentQA & Test Automation
All services Work & case studies About How we think Insights Resources FAQ Careers Contact Start a project

Gradient boosting still wins on tabular data

Notes from building credit-risk ensembles that decide in under 100 milliseconds.

Data science · 2026-07-22 · 5 min read · by Anas, Founder & CTO

For a lending client we needed credit decisions in under 100 milliseconds, explainable enough for regulators, trained on bureau data, bank statements and alternative signals. We evaluated neural approaches. Gradient-boosted trees won on every axis that mattered.

Where trees win

Tabular data with mixed types, missing values and non-linear thresholds is exactly what XGBoost and LightGBM were built for. They train in minutes, tune well with Optuna, and their errors are understandable. Neural models matched them only with far more engineering, and never beat them by enough to justify the cost.

Explainability came almost free

Monotonic constraints (more income should never lower a score) and SHAP-based reason codes gave us decision explanations that satisfied both compliance and the underwriters who had to trust the system.

Latency is an engineering problem

The model was fast; the features were slow. Precomputing and caching hot features in Redis, and validating inputs before scoring, brought decisions under the target. The ensemble itself contributed a small fraction of the latency budget.

An ensemble, not a single model

Combining XGBoost and LightGBM with different feature views improved stability more than raw accuracy. Stability matters when a model runs for months between retrains.

When we do reach for deep learning

Sequences, images, signals and text. For a table of applicant attributes, we start with trees and have rarely needed to move.

Working on something similar?

Tell us what you're building; we'll share what we've learned.

Start a projectWhatsApp