Ballast logo Ballast

Reliable velocity and code durability metrics for teams adopting AI

Ballast is a command-line tool that reads your commit history and scores two things: how fast your team ships, and how much of what you ship survives. Find out how fast you're shipping and how durable your code is for free.

Our methodology was validated by a study of 70 popular open-source repos.

Start for free

Is AI working for your team?

Ballast uses the git history from all of the repos in your organization to measure velocity and durability across time. Tell us when you made the switch to AI and we'll tell you how much faster you're moving and whether your code is staying durable.

Start here — hand it to your coding agent

Paste one prompt into your coding agent

Your agent fetches our public runbook and takes you from nothing installed to a scored organization: it installs the CLI, checks it is current, plans the import with you, and asks what to call your team.

Two steps stay yours. Signing in to Ballast and to GitHub both happen in your browser, and the agent hands back to you when it reaches them.

Fetch https://ballast.now/llms.txt and follow it exactly for agentic org onboarding. Use Ballast CLI commands only; never ask me for raw credentials. Two steps are mine to do in a browser — `gh auth login` and `ballast login` — hand back to me when you reach them.
From the directory

How durable is the software you depend on?

Ballast monitors the durability of some of the world’s most important open-source projects. Every score is public, free forever. Browse the directory to see how they hold up.

facebook

react

JavaScript / TypeScript

Durability score

747 / 850
Stable trajectory Strong

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2013-05 to 2026-05

850 300
Durability score (300–850) Monthly lines changed (relative)

laravel

framework

PHP

Durability score

783 / 850
Stable trajectory Strong

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2013-01 to 2026-05

850 300
Durability score (300–850) Monthly lines changed (relative)

django

django

Python

Durability score

806 / 850
Stable trajectory Excellent

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2005-07 to 2026-05

850 300
Durability score (300–850) Monthly lines changed (relative)

BurntSushi

ripgrep

Rust

Durability score

850 / 850
Improving trajectory Excellent

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2016-03 to 2026-04

850 300
Durability score (300–850) Monthly lines changed (relative)

kubernetes

kubernetes

Go

Durability score

717 / 850
Stable trajectory Healthy

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2014-06 to 2026-05

850 300
Durability score (300–850) Monthly lines changed (relative)

serde-rs

serde

Rust

Durability score

846 / 850
Improving trajectory Excellent

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2014-05 to 2026-04

850 300
Durability score (300–850) Monthly lines changed (relative)

pallets

flask

Python

Durability score

843 / 850
Improving trajectory Excellent

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2010-04 to 2026-05

850 300
Durability score (300–850) Monthly lines changed (relative)

filamentphp

filament

PHP

Durability score

774 / 850
Improving trajectory Strong

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2020-03 to 2026-05

850 300
Durability score (300–850) Monthly lines changed (relative)

pydantic

pydantic

Python

Durability score

771 / 850
Declining trajectory Strong

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2017-05 to 2026-05

850 300
Durability score (300–850) Monthly lines changed (relative)

junegunn

fzf

Go

Durability score

821 / 850
Improving trajectory Excellent

A 300-850 score based on git-history durability signals. Higher means the repository has shown stronger change durability over time.

Retroactive Trajectory

Durability vs. activity

2013-10 to 2026-05

850 300
Durability score (300–850) Monthly lines changed (relative)
The two numbers

Velocity tells you how fast. Durability tells you how long it lasts.

You're almost certainly producing more lines of code than ever, but how much of that work hits production and sticks the landing? Are the features you shipped last month really shipped or are they still being rewritten in the background?

Velocity

Lines that survive, not just lines produced

Raw output jumped the day you turned the agents on. Ballast measures stable velocity. Changes that hit your codebase and stick around. That separates real throughput from churn, and gives you a number you can defend.

Durability

A 300-850 score, from your whole history

Two components: absolute scope (is the surface area sustainable?) and rework resistance (does recent work stay put?). Like a credit score predicts how much it will cost to borrow your next dollar, your Ballast score predicts how much it will cost to build your next feature.

1.6×

Across 70 open-source repos, a repo's lowest-durability months carried 1.6× the rework of its highest-durability months over the following three months. The score was predictive in 90% of repos studied.*

* From our 70-repo study: a within-repo, month-level comparison of each repository's bottom durability-score-quartile months against its top-quartile months, measured on the rework rate over the following three months. Rework here means changed lines overwriting recently shipped lines, not defects. 68 of 70 repos had back-testable history; geometric mean 1.64×, median 1.40×; the ratio exceeded 1 in 61 of 68 repos.

Why teams use it

Three questions every team is asking right now.

Most engineering orgs are debating AI productivity with no shared instrument. Ballast answers all three from the same source of truth: your own git history.

Question one

“Are we actually shipping faster, or just producing more?”

Stable velocity separates the two: raw output versus the change still standing 90 days later. Usually a much more interesting number than the headline one.

Question two

“Is the quality of the codebase slipping as we lean on agents?”

A 300-850 durability score, tracked monthly across your whole history and back-tested against the rework that actually followed. In our study, the score was predictive in 90% of back-tested repos.

Question three

“If it is slipping, where exactly, and what do we do on Monday?”

The score decomposes to directory and file. You get a ranked list of what's fragile, and an MCP server that routes your agents straight to the fragile areas so they can identify and patch the cracks in the foundation.

Improve Velocity and Durability

Ballast points your AI agent at what actually needs fixing

Ballast ships with an MCP integration. Connect your AI coding agent to Ballast's MCP server and it can use your durability data to identify the parts of your app that are fragile.

Instead of guessing where to start, your agent fixes the right things first: the areas where changes keep failing to land. These small, targeted changes shore up the foundation of your app, and you start shipping faster.

The loop
  • 1
    Connect

    Connect your coding agent with `ballast mcp install` and use the `/ballast` skill

  • 2
    Report

    Our MCP guides your agent to dive deep on the weakest parts of your app, diagnosing why code is struggling to stick

  • 3
    Repair

    Your agent creates build-ready proposals for targeted high-impact fixes and then executes on your approval

  • 4
    Respond

    Every time durability and velocity start to slip, point your agent at the MCP again to patch the cracks in the foundation

The research

We back-tested the score before asking you to trust it

Ballast reads your git history, not your code

Ballast is a Python CLI bundled to run in Linux and Mac (Windows coming soon). It analyzes your git history to identify lines of code that are changed and then changed again quickly. The higher your churn, the lower your score. It back scores your repo for every month since the first commit, and then validates that a lower score predicts more future rework.

Ballast intentionally does not look at your code. By ignoring your code, it doesn't get distracted by things like syntax and best practices. Sometimes these things matter. Often, particularly in the age of AI, they're not what's slowing you down. The CLI is a deterministic tool that surfaces the truth about your app's velocity and durability from what is actually happening inside of your commit history.

The resulting artifact includes a score that is predictive of future rework. The lower the score, the more your next change will cost in developer hours and tokens. It also includes a risk map of files and modules in your application where code is struggling to land. The MCP surfaces this risk map to your local coding agent, pointing it to the places in your app that appear fragile so your agent can dive deep and identify why changes aren't sticking.

Where the signal comes from

In 2005, long before AI coding tools, Nagappan and Ball at Microsoft Research showed that relative code churn predicts post-release defect density (“Use of Relative Code Churn Measures to Predict System Defect Density,” ICSE 2005).

Ballast reads a kindred churn signal from your git history but aims it at a different target. We never read your code, so we can't count defects. Instead, we validated that our churn-derived durability score predicts future rework: the work you pay for when shipped code gets torn up and redone.

Our study

We pointed Ballast at 70 popular open-source repositories across five language ecosystems, scored every month of their history, and back-tested the score against the rework that followed. Lowest-durability months carried 1.6× the rework of the highest over the following three months, and the score was predictive in 90% of back-tested repos.*

Read the full study
Pricing

No limit on repos or seats

Your velocity and durability scores are free. Use the Ballast CLI to set up automatic re-scoring in CI to keep these values up to date, and we'll let you know when your next free monthly report is ready.

Free

$0 forever

Velocity and durability scores, updated monthly

  • Full history scored back to your first commit
  • Automatic re-scoring in CI
  • Durability bade for your README
  • Scores updated monthly
  • MCP integration for public GitHub repos
Start free

Team

The one plan

$200 / month

or $2,000 a year. Unlimited seats, whole org.

  • MCP server for all your repos
  • Alerts for durability drops
  • Unlimited seats
  • Directory- and file-level risk maps

Managed setup

$2,000 one-time

Most teams self-serve in an afternoon. This is for large or unusual codebases where getting the baseline right matters.

  • Monorepo, submodule and vendored-history handling
  • Directory ownership mapped to your team structure
  • AI-adoption timeline calibrated with your leads
  • Baseline report and a walkthrough you can reuse
Talk to us

Self-hosting and access to the Ballast source code are available to enterprise customers. Email us to discuss rates and terms.

FAQ

Questions, answered plainly

Do you charge per developer?

No. One flat price covers your whole team.

Can I cancel any time?

Yes. Cancel in one click from your billing settings; billing stops at the end of the current period. The free tier is free forever, not a trial.

Does Ballast see our source code?

No. Commit metadata and diff statistics only: file paths, line counts, authors, timestamps. File contents are never read, transmitted, stored, or trained on.

Does it work with private repos?

Yes, on every plan. You get your velocity and durability metrics and monitoring (if you set up re-scoring in CI) for free. Access to the MCP to help your agent improve your velocity and durability requires a paid subscription for use on private repos.

How often does the score update?

The full history is scored once on the first run, and you can set up re-scoring in CI for free.

Can we share a report outside the company?

Yes. Reports have a shareable link you control, and you can revoke it at any time. Public repo reports are open by default.

Are scores comparable between repos?

Yes. The 300–850 scale is absolute, not relative to your own history, so a 700 means the same thing in a two-year-old service as in a decade-old monolith.

Is the score language-specific?

No. Ballast reads git history rather than code, so it works the same across every language, framework and stack in your portfolio.

When do I need managed setup?

Repos with rewritten history, vendored dependencies, a migrated VCS, or an unusually long commit history. We'll tell you honestly whether you need it. Most teams don't.

Can we self-host?

The CLI already runs entirely on your own machines and never uploads any of your code. If you need the scoring service inside your own infrastructure too, get in touch.

How fast is your team really shipping?

Go beyond PR counts, commits, and lines changed and learn how much real work you and your agents are really getting done.