Every dashboard says the team got faster this quarter. The building says the opposite. Releases slip, fixes drag, and the "quick" feature that shipped in three days is now the reason checkout fell over on a Saturday night. Both readings are true at the same time. The distance between them is not a mystery, though. It is a line item nobody wrote down.
That line item is technical debt, and calling it an engineering abstraction lets everyone off the hook too easily. It is deferred cost - the future price of shortcuts taken today - and it lands on the P&L whether or not anyone chose to record it. The reframe this whole piece is built on comes down to one sentence: AI does not remove the need for engineering discipline. It raises the interest rate on skipping it. Fast, undisciplined AI-assisted delivery is the most expensive kind of cheap, because the invoice shows up later, with compounding interest, in a currency the CFO already tracks.
What follows is a shared vocabulary for two people who usually talk past each other. The CFO owns the P&L and needs debt expressed as money. The CTO owns the codebase and needs a way to fund paydown against visible feature work. The job here is to translate one into the other, put a number on the debt, and explain why an AI-heavy workflow makes that number grow faster.
What technical debt really is, in money not metaphor
Technical debt is the future cost of shortcuts taken today, and like any loan it has two parts that behave very differently. A team that ships code that works now but is hard to change, poorly tested, duplicated, or badly understood is borrowing against the future. Ward Cunningham coined the debt metaphor in 1992 to explain this trade-off to non-engineers, and it has stuck for one reason: it splits cleanly into principal and interest.
The principal is the shortcut itself. The quick hack, the skipped test, the copy-pasted module, the design decision made at 11pm under a deadline. The interest is everything you keep paying for as long as that shortcut stays in place. Every future change to that code costs more, takes longer, and carries more risk than it would have if the work had been done cleanly the first time.
The part that matters most to a financial reader is that the interest compounds. One shortcut is cheap. A codebase full of them is not, because the shortcuts feed each other. Fragile code makes the next change riskier, the riskier change invites another shortcut under pressure, and the base gets more expensive to touch with every cycle. This is why teams describe that strange feeling where nothing is individually broken, yet everything takes longer than it used to. That feeling is interest payments. They are already leaving the building as salary, missed revenue, and support cost. The only open question is whether anyone is measuring them.
The technical-debt P&L: six places it shows up as cost
Debt feels invisible for one reason: it never appears on a financial statement under its own name. It hides inside six ordinary cost lines a CFO already recognizes, and naming them is the whole game. Break debt into these buckets and it stops being an unquantified engineering ask. It becomes a set of numbers you can budget against.
- Rework. Engineering hours spent re-doing shipped-but-wrong work, refactoring around a bad abstraction, or fixing what a fast merge broke. This is the most direct cost and the easiest to miss, because on a timesheet it looks like ordinary engineering.
- Delayed releases. Revenue and market timing lost when dates slip because the team is fighting the codebase instead of building. A feature that ships a quarter late is a quarter of deferred revenue, plus whatever competitive ground got ceded in the meantime.
- Support load. Higher ticket volume, more customer-success time, and larger on-call rotations, all driven by the defects and confusing behavior that fragile code produces. Every recurring bug is a recurring cost center.
- Incident cost. Outages, SLA penalties, emergency fixes, and the reputational damage of a public failure. Incidents are the moment deferred debt converts into an immediate, often large, cash cost, and they cluster in exactly the code that was shipped fastest.
- Onboarding drag. Slower ramp for every new hire who has to navigate a tangled codebase before becoming productive. In a high-debt system the time to a first meaningful contribution stretches from weeks to months, and that gap is paid in full salary for reduced output.
- Future feature slowdown. The compounding tax. Every new feature costs more to build than the last comparable one, because it has to be threaded through a base that resists change. This is the interest line that grows on its own, and it is the one that eventually stalls a roadmap.
A simple two-column view makes the translation explicit for a finance reader:
| Debt cost line | How it hits the P&L |
|---|---|
| Rework | Engineering salary spent re-doing work already paid for once |
| Delayed releases | Deferred or lost revenue, ceded market timing |
| Support load | Higher CS and on-call operating expense |
| Incident cost | Emergency labor, SLA penalties, churn and reputation loss |
| Onboarding drag | Full salary paid for below-capacity output during extended ramp |
| Future feature slowdown | Rising unit cost per feature, slower roadmap, opportunity cost |
None of these lines are small, and the research is unusually consistent about the direction. Surveys of IT leaders keep finding debt dragging on the business: roughly 69% of organizations say technical debt limits their capacity to innovate and about 61% say it drags on company performance, per an OutSystems survey of IT leaders (reported via vFunction). Engineers themselves report spending around a full day a week dealing with debt, and roughly a third of their time on maintenance and legacy work, according to Stepsize's State of Technical Debt findings (via VentureBeat, 2021 - dated because the figure is a few years old, useful for order-of-magnitude, not currency). Older framing from Stripe's Developer Coefficient (2018) found developers spend over 17 hours a week on maintenance and bad code, a drag Stripe tied to roughly $3 trillion in unrealized global GDP over a decade (Stripe, 2018). The numbers vary by source and age. The direction never does. Debt is a material, recurring operating cost, not a rounding error.
Why AI raises the interest rate
The mechanic most competitor articles skip fits in one line: AI accelerates output, not judgment. It generates more code, faster, and does it well enough that the code usually runs. What it does not do is decide whether that code should exist, whether it duplicates something already in the system, or whether the design will survive the next six months of change. Those are judgment calls, and judgment is exactly the discipline that gets skipped when shipping feels free.
The result is a widening gap between two sets of metrics, and the dangerous part is which one lands on the executive dashboard. Velocity metrics - pull requests merged, story points closed, lines shipped - go up, because that is what AI is good at. Quality metrics - defect density, code duplication, review burden, mean time to change safely - degrade, often faster than the velocity gains, because more code is being reviewed by the same number of humans, or fewer.
The evidence is now specific to the AI era, not extrapolated from the old world. A 2026 Sonar developer survey found that 88% of developers report at least one negative impact from AI on their technical debt (Sonar blog, February 2026). Analysis of code-change data by LeadDev and GitClear through 2025 showed rising code duplication and churn as AI assistants spread, which means more of what ships is near-copy code that has to be reconciled later. Databricks and Stack Overflow have both described AI-specific debt forms, and the blunt framing that AI can make developers "10x" not only at building features but at generating technical debt.
Here is where that loop closes, and it is the sentence worth keeping: the dangerous version of AI debt looks healthy. Test coverage reads 94%, the pipeline is green, and every dashboard says the team is faster than ever. Underneath, duplication is climbing, the code no human fully understands is growing, and the average change is quietly getting more expensive to make safely. Green dashboards on a rising-debt base are not reassurance. They are the sound of interest accruing while the velocity chart smiles.
The "cheap delivery" trap
Fast, undisciplined AI code is the most expensive kind of cheap, and the reason is timing. The savings are immediate and visible. The cost is deferred and diffuse. So the trade looks like a clean win right up until the bill arrives, usually on a budget nobody was watching.
Take a realistic sequence. A team uses an AI assistant to ship a customer-facing feature in three days instead of two weeks. Everyone celebrates the velocity. The code duplicated an existing payment path rather than reusing it, and nobody caught it in a rushed review. Two months later a change to the original payment path does not propagate to the duplicate, and a subset of customers get double-charged over a weekend. Now the "cheap" feature has produced an incident (emergency labor, refunds, an SLA conversation), rework (untangling and merging the duplicate paths), support load (a spike in tickets and a trust hit), and future slowdown (every payment change from here on has to account for the mess until someone cleans it up). The two weeks that were "saved" get repaid several times over, on the operations budget rather than the engineering one, where nobody was watching for them.
A quieter version: a data pipeline assembled fast with AI-generated glue code runs fine for a quarter, then a schema change breaks it in a way no one can quickly diagnose, because the glue was never designed to be understood, only to work. The debugging time, the delayed reporting, and the eventual rewrite are all interest on a principal that was borrowed in an afternoon. Both cases follow the same pattern. Speed booked as a gain today, cost booked as someone else's problem later. That is not cheap delivery. It is the most expensive delivery available, priced as if it were free.
What causes debt to accumulate faster now
Debt has always accumulated. What changed is the rate, because the AI era quietly removed several of the brakes that used to slow it down. Knowing which brakes went missing is what lets a leadership team intervene at the source instead of firefighting symptoms forever.
- Deadline pressure meets frictionless output. When shipping was slow, the effort of writing code was itself a check on volume. AI removes that friction, so under deadline pressure the path of least resistance is to generate more, faster, and defer the cleanup indefinitely.
- Unclear ownership of AI-generated code. Code a human wrote has an author who understands it. Code an AI generated and a human lightly approved often has no true owner, so when it needs to change, the knowledge to change it safely is not in the building.
- Missing review discipline. Review capacity did not scale with AI-boosted output. More code per reviewer means shallower review, which means more shortcuts survive into production unnoticed.
- No debt budget. Most organizations have no line item for paying down debt, so it competes directly with visible feature work and always loses. Debt that never gets funded only grows.
- "Prompt-and-ship" culture. Once the norm becomes generate, glance, merge, the organization is optimizing for the velocity chart and against the maintainability the chart hides. Culture, not tooling, is the real accelerant.
None of this is an argument against AI coding tools. It is an argument for pairing the tools with the discipline that keeps the interest rate manageable. The teams that get compounding value from AI are the ones that kept the brakes when the friction disappeared.
What good looks like: governing debt as a financial decision
The answer to debt is not a list of engineering tactics. It is a governance model that treats debt the way finance already treats any other liability: make it visible, put a number on it, and fund its paydown as a deliberate decision rather than an afterthought. The shift that separates a team that manages debt from one that just complains about it is exactly this. From "clean up the code" to "manage the liability."
Governing debt well splits cleanly along the two roles that own the problem.
What the CFO does:
- Fund paydown as an investment, not a cost. Paying down debt is capex-like: a deliberate spend now that lowers the unit cost of every future feature. Treat a paydown budget as an investment in future delivery capacity, and expect a return in faster, cheaper releases.
- Demand a debt metric. Do not accept "we have a lot of tech debt" as a status. Ask engineering for a small set of tracked indicators (below) and a dollar estimate attached to the trend, the same rigor you would apply to any other recurring cost.
- Protect the paydown line under pressure. When the roadmap tightens, the debt budget is the first thing teams sacrifice, which is exactly when the interest rate is highest. The CFO's job is to keep that line funded precisely when the pressure to cut it peaks.
What the CTO does:
- Measure it and report it in business terms. Translate engineering signals into the six P&L lines above so the debt conversation happens in the CFO's language, not in jargon.
- Set AI guardrails. Establish review standards for AI-generated code, duplication limits, ownership rules, and a bar that generated code must clear before it merges. The tool stays, the discipline comes back.
- Protect maintenance capacity. Reserve a fixed share of engineering time for paydown and reliability, and defend it as non-negotiable. When permanent headcount is not the right way to fund a paydown push, a fractional AI team can add senior capacity for a focused remediation effort without a permanent hire, so the maintenance work happens without stalling the roadmap.
The through-line: debt becomes governable the moment it is expressed as money and owned as a shared decision, rather than left as an engineering complaint the finance side cannot evaluate.
How to start measuring your debt, a lightweight approach
Measuring debt does not require a heavy tooling project. It requires picking a few honest signals, watching their trend, and attaching a cost to each. The goal is not a perfect number. It is a direction and an order of magnitude that the CFO and CTO can act on together.
Four practical baselines cover most of the picture:
- Unplanned work percentage. The share of engineering time spent on unscheduled fixes and firefighting rather than planned work. A rising number is debt interest showing up on the calendar.
- Change-failure rate. How often a change causes a failure that needs remediation. A rising failure rate means the base is getting more fragile, which raises the cost of every future change.
- Mean time to restore. How long it takes to recover when something breaks. Longer recovery means higher incident cost per event.
- Onboarding time. How long a new engineer takes to make a meaningful, independent contribution. A lengthening ramp is a direct read on how tangled the codebase has become.
Attach a rough cost to each trend - unplanned work as salary redirected from roadmap, change failures as incident and rework hours, onboarding drag as weeks of reduced output per hire - and you have a defensible, if approximate, dollar figure to govern against.
One honest caveat that most competitors gloss over: technical debt cannot be read straight off the source code. There is no gauge that outputs a true debt balance. You estimate it from delivery signals like the ones above, and from engineering judgment about where the fragile, high-change, low-understanding parts of the system live. That imprecision is not a reason to skip measurement. An estimated number everyone can see beats a precise number that does not exist, because a visible estimate is something a CFO and CTO can budget against, and an invisible liability is not.
Key takeaways
- Technical debt is deferred cost, not an engineering abstraction. It is the principal of shortcuts taken today plus the compounding interest of leaving them in place, and it already hits the P&L as real money.
- The debt shows up in six budget lines you already track: rework, delayed releases, support load, incident cost, onboarding drag, and future feature slowdown. Naming them turns an unquantified ask into a number you can govern.
- AI raises the interest rate, not by creating a new problem but by removing the brakes on an old one. It accelerates output while judgment stays flat, so velocity metrics rise while quality metrics fall faster - 88% of developers already report a negative AI impact on their debt (Sonar, 2026).
- Fast, undisciplined AI code is the most expensive kind of cheap. The savings are immediate and visible, the cost is deferred and diffuse, and it lands on the operations budget where nobody was watching.
- Govern debt as a financial decision. Make it visible, put a number on it, fund paydown as an investment, and split the work: the CFO funds and protects the line, the CTO measures it and sets AI guardrails.
The debt is already on the books
The debt is already recorded, whether or not anyone chose to write it down. AI did not create it and cannot erase it. What AI did was move up the due date, by making it easier than ever to borrow and harder than ever to see the balance growing. The choice in front of a CFO and a CTO is not whether to carry technical debt - every real system carries some - but whether to pay it down deliberately or pay interest on it indefinitely.
Paying it down deliberately starts with seeing it clearly: a shared P&L view of where debt costs you, an honest read on how your AI workflow is changing the interest rate, and a governance decision about how much to fund. That is a scoping problem, and it is a good place to start together.
If you want to put a real number on your technical debt and a plan against it, Book a Discovery Sprint . It is a focused engagement to map where debt is costing you, quantify it in P&L terms, and prioritize the paydown that returns the most delivery capacity. For a lighter first step, an AI Readiness Snapshot will surface where your current AI workflow is quietly accruing the fastest interest.