Back to main page

Tala’s Moore’s Law: Four Years of Doubling Model Delivery

Our work on Ledger Foundation Models starts with a simple premise: better models depend on better representations of financial behavior. The last five years of our data science work have been about building the infrastructure to find, test, and learn from those signals at scale. Learning faster means shipping more frequently because we want our customers to feel the benefits of modeling and personalization improvements.

TL;DR

  • We increased model output 10x from 2021 to 2025, from 4 to 41 models per year, with roughly flat headcount. We did it by systemically removing the specific things that made each model expensive to build, deploy, and maintain.
  • Three infrastructure bets did the work: shared training pipelines, including Metaflow from our partners at Outerbounds; a single monorepo with reusable code; and a rebuilt inference orchestrator. Together, they cut retrain time from months to days and deployment time from days to about ninety minutes.
  • In 2026, that curve flattened for a different reason: building models is no longer the bottleneck. The constraint has moved upstream to finding new signals, structuring them, and proving they contain information we can learn from. This is where we’re focused next.

The Trend

In 2021, Tala’s data science team put four models into production. By 2025, we were shipping at a rate of forty a year. Plot those points on a log scale and they fall on a straight line: our model delivery rate has doubled about every fifteen months, for four years running.

The fit is 1.74x per year, with an R-squared of 0.97. For context, that sits between the one- and two-year doubling rates associated with Moore’s law.

This acceleration was a production exercise for its own sake. We needed to match our model-development capability to the business’s actual demand for refreshed or net-new models. Our original infrastructure assumed models would change infrequently, which made retrains painful and deployments fragile. We rebuilt around the opposite assumption: models should be agile enough to maximize value at every turn and respond to shifting regulations, data availability, and external conditions. Three changes made that agility possible: code is shared and reused, retraining is cron-scheduled, and monitoring is automated.

What’s in the count

Tala’s current portfolio of models spans the full customer and loan lifecycle, from new and repeat-borrower underwriting to fraud, repayment, and recovery. Underwriting is the core: new and repeat borrower credit score models, loan term personalization models that sit on top of them, and market- and label-specific variants of each. Around that core sits multiple flavors of fraud detection, repayment waiver optimization, and recovery models. Code is reused globally and markets differ only by configuration. A single market’s decisioning stack is a suite, not a model, and today every new market needs its own.

That last point matters for understanding the 2025 jump. At the start of 2025 we were operating in three markets: Kenya, Mexico, and the Philippines. Later that year we expanded direct-to-consumer lending into Guatemala, India, and Vietnam, and simultaneously opened a second distribution channel through API-embedded partnerships, starting with AirTM in Guatemala, Argentina, and Brazil. The model count went up because the surface area of the business went up, and the surface area went up because we could finally support it.

Importantly, we delivered this 10x increase in throughput with roughly flat headcount across data science and ML platform engineering. That’s the most important measure of the change, because it’s the one that proves the gain is structural. Hiring your way to more models is a linear trade. Removing the constraints that made each model expensive is the improvement that compounds.

How we did it

Three pieces of infrastructure did most of the work.

Training pipelines moved to Metaflow. We adopted Outerbounds in 2023 and re-implemented every training pipeline on it. An end-to-end retrain went from two months to two or three days, and model training, evaluation, and deployment to SageMaker are fully automated rather than hand-run. Further tuning by moving dataframes from Pandas to Polars brings this down to hours.

The bigger win was what the migration let us consolidate. Everything now lives in a single data science monorepo, and the resulting reuse is much of the reason a new model is cheap.

The flows themselves are shared: a new market’s underwriting model is largely an existing flow with new configuration rather than a new pipeline. Underneath them sits a local shared Python library, importable directly inside the flows, that holds the logic we’d otherwise rewrite per model — data pulling, feature assembly, evaluation, the conventions that make two models comparable. When we improve something there, every model that imports it gets the improvement.

The repo also holds per-user workspaces for exploratory analysis. That sounds mundane, but it’s the step that pulls EDA out of laptop notebooks nobody else can see and into version control, where it gets a git history and a code review like anything else. Exploratory work stops being disposable: the analysis behind a model is still there, and still legible, when someone picks that model up eighteen months later.

Tying it together is a lightweight Typer CLI that wraps Metaflow and Argo Workflows execution and deployment. That means one interface for running a flow locally, scheduling it, or promoting it, instead of a set of half-remembered incantations per project. The same CLI is what our GitHub Actions call, so CI runs models exactly the way a data scientist does; no separate automation path to drift out of sync with how the work is actually done.

We refactored the model orchestrator. Before mid-2023, deployments to our model inference orchestration services were genuinely painful: buggy, slow, and prone to eating an outsized share of the team’s time to fix. A refactor changed that. The inference orchestrator is now a Quart application running on Kubernetes, using Kafka and Redis to queue and cache inference requests, process them, and signal completion back to Kafka, with a dead letter queue holding anything that fails. We retired the MariaDB backend entirely. Deployments went from as many as five days, and much longer during the worst debugging sessions, down to about ninety minutes, and PagerDuty volume fell from twenty incidents a month to three.

We consolidated on SageMaker. Most recently, we moved to model multi-tenancy so that a growing portfolio doesn’t mean a linearly growing serving bill. The result at runtime: median inference under one second, a median end-to-end loan decision under two, and better control over cost.

Most importantly, in making these three key infrastructure changes, we changed what we believed about stability. The hardest part wasn’t implementing them; it was giving up the assumption that a static model is a stable model. That assumption is intuitive and wrong.

A model frozen in production is stable only in the sense that its weights don’t move; everything around it does. Regulation changes. Portfolios mature and the mix changes. Borrower behavior shifts. A model you can’t safely retrain is a model that can only get further from the world it’s scoring, and the cost of that drift is invisible right up until the core hypotheses are revisited.

So the fastest path to the most accurate model at any given moment is not a better single model. It’s a shorter loop.

Where we are in 2026

The rate flattened this year. We expect to deliver about the same number of models in 2026 as in 2025 per channel. This marks a genuine shift for our team: from meeting model demand efficiently to meeting demand for new data sources and better feature extraction.

Building and deploying a model is no longer the expensive part. The expensive part now sits upstream, in integrating a new data source and figuring out what’s actually in it: the exploratory analysis, the feature engineering, the long tail of experiments that determine whether a new signal is worth anything before a single model gets trained on it. That work is still largely hand-paced, and in new markets it’s compounded by calendar time — you cannot train on a label that hasn’t baked. A three-month credit margin label at 30 days past-due takes about 188 days to mature no matter how good your pipelines are.

So that’s where we’re pushing next. We’re using Claude inside Metaflow to run EDA and feature engineering as a tight human-in-the-loop cycle — the model does the tedious, high-volume iteration across candidate features while a data scientist steers and judges. It’s the same bet we made in 2023 with Metaflow and TFS, now aimed one step further up the pipeline: take the part of the work that’s slow because it’s manual, and make it fast enough that the constraint moves somewhere else.

What a trend line is and isn’t

Moore’s law was never a law of physics. It was a description of what sustained investment in process technology produced, and it held until the binding constraint moved. Our curve works the same way. Every doubling above came from removing a specific bottleneck: deployment reliability, then training turnaround, then serving cost.

The 2021-2025 line describes a set of problems we solved. Data integration and feature discovery are next. The metric we’ll be watching isn’t models per year — it’s how long it takes to get from a new data source to a feature we trust, and ultimately, how much more useful signal we can turn into better decisions and access for customers.

We’re building the Ledger Commons in the open. Reach out to labs@tala.co if you’d like to help shape it.

Share this article now: