Free tool

How much is your tech debt costing you?

Estimate the time and cost associated with technical debt in 4 steps, with a calculation breakdown and suggested actions.

Estimate the time spent on technical debt.

How to read your results

4 steps · 8 questions

Estimate the cost of technical debt.

Your team

Start with your current situation. An estimate is enough.

1–50

30–120 k€ · The calculation then estimates the full employer cost, including payroll contributions.

Your processes

Start with your current situation. An estimate is enough.

Code quality

Start with your current situation. An estimate is enough.

0–20

0–100%

Your codebase

Start with your current situation. An estimate is enough.

0–15

0–30

Your maintenance share

The quick mode reuses the “Your team” step and this one share. An estimate over your last sprints is enough.

0–100% · fixes, updates, refactoring and technical support for the existing product, planned or not, over recent sprints. Exclude new features.

Adjust the assumptions (optional)

Three assumptions of the calculation can be adjusted. The values shown are the defaults: replace them if you know your own.

1–16 h · 4 h by default, from analysis to production release.

0–100% · 42% by default, an order of magnitude for a salaried executive in France.

0–100% · 60% by default. At 0, the “Insufficient testing” line disappears.

Your answers stay in your browser. No result is stored. If you share the result, its link contains your answers.

Understanding your assessment.

Assessment

The possible model interpretations are shown below. Amounts, team size and proportions are replaced with your results after calculation.

Your tech debt seems contained.

The estimated cost remains limited compared with your team’s annual cost. Keep the current discipline: weak signals are cheaper when handled early.

Recommended priority — Keep loops short: critical tests, regular deployments, and a monthly review of technical irritants.

Stabilise critical journeys

Recommended priority — Stabilize before accelerating: reduce recurring bugs, protect critical paths with tests, then resume product velocity.

The main cost seems to come from delivery friction.

Recommended priority — Shorten the delivery loop: smaller deployments, automated checks, clear rollback and less release stress.

The missing safety net is expensive.

Recommended priority — Start by testing business-critical flows, recurring bugs and frequently changed areas.

Manual processes are eating engineering capacity.

Recommended priority — Automate the 2 or 3 recurring tasks that cost the most before launching large technical initiatives.

Codebase age is becoming an economic risk.

Recommended priority — Avoid a Big Bang rewrite. Identify the areas slowing the roadmap most and isolate them progressively behind tests and interfaces.

Missing CI/CD creates avoidable risk.

Recommended priority — Set up minimal CI: critical tests, reproducible build, pre-merge checks, then progressively automate deployment.

Priority recommendations

  1. 30 days: run a focused stabilization sprint on recurring bugs and flows that affect revenue or production.
  2. Secure critical paths before chasing global coverage: payment, onboarding, and sensitive business actions.
  3. Set up minimal CI: build, critical tests and pre-merge checks. Deployment automation can come next.
  4. Reduce release size to lower risk per deployment and shorten the feedback loop.
  5. Automate repetitive tasks that come up every week.
  6. Codebase entropy — Gradually modernise the areas that slow the roadmap most, after checking the cost and expected benefit of the work.

Next step

  1. Low

    Want to compare this estimate with your reality?

    We can quickly review your answers and check whether the weak signals need a light plan or just monitoring.

    Compare with my real situation
  2. Medium

    Which actions could free up time?

    Let’s identify the 2 or 3 actions that could free up the most time without disrupting the team.

    Identify the first actions
  3. High

    This level deserves a stabilization plan.

    Before accelerating the roadmap or hiring more people, it is worth prioritizing the most visible capacity leaks and turning them into a 30-day plan.

    Prioritize a stabilization plan
  4. Critical

    This risk level deserves an external review soon.

    When technical debt takes up a large share of the team’s time, costs can continue without the cause being addressed. An external review can help clarify priorities.

    Review the risks

30 minutes, with no commitment, to review your answers together.

Estimated cost of your tech debt

Calculation assumptions

By default, gross salary is converted into employer cost with a 1.42 multiplier, based on Urssaf / Mon-entreprise orders of magnitude for a French executive CDI contract; the assumptions panel lets you change it. The result estimates lost capacity, not a payroll statement.

Privacy and data non-retention

Local calculation: your answers are not stored or sent anywhere.

This calculation runs in your browser. Your answers are not stored, not sent to Yanis, and not used to contact you. If you book a call afterwards, only the information submitted through Google Calendar will be processed. A result’s share link contains your answers, encoded in its address: nothing is stored, and whoever receives the link sees your answers.

Method

How to calculate the cost of technical debt.

The calculator does not measure the debt itself: it estimates the time it takes from your team, then converts that time into euros. I publish every formula here as the calculation applies it, with its assumptions and limits, so you can challenge it.

The hourly cost of a developer

Everything starts from the average annual gross salary you enter. I multiply it by 1.42 to get an employer cost: 42% in charges, an order of magnitude for a salaried executive in France. It is an assumption, and the advanced settings let you replace it with your own rate.

That cost is then spread over 1,820 hours, or 52 weeks of 35 hours. Holidays and public holidays are not deducted: the hourly cost is lower than reality, which keeps the estimate conservative. With a €55,000 gross salary, that gives €78,100 in employer cost and about €43 an hour.

  • Annual employer cost = gross salary × 1.42.
  • Hourly cost = employer cost ÷ 1,820 hours.
  • Team cost = employer cost × number of developers.

The six cost lines

Each line is lost time, valued at the hourly cost or expressed as a share of the team’s annual cost. The default durations are field assumptions, not measurements: I write them down here so you can compare them with your team.

  • Production bugs: bugs per week × 4 hours to fix × hourly cost × 52 weeks. The 4 hours can be adjusted.
  • Deployment friction: hours lost per developer per week × team size × hourly cost × 52 weeks. The assumption follows the release pace: 0.5 h for daily, 1.5 h for weekly, 3 h for biweekly, 5 h for monthly.
  • Insufficient testing: 0.25% of the team’s annual cost per coverage point below the 60% threshold, capped at 15%. Details follow.
  • Manual processes: manual hours per week for the team × hourly cost × 52 weeks.
  • Codebase age: 3% of the team’s annual cost per year beyond 3 years. A 4-year-old codebase counts for 3%, a 15-year-old one for 36%.
  • No CI/CD: 2 hours lost per developer per week × team size × hourly cost × 52 weeks, only if you answer no.

The most debatable assumption: insufficient testing

This line estimates rework: the time spent fixing, rechecking or redoing a change that tests would have secured. Each coverage point below the threshold costs 0.25% of the team’s annual cost. At 40% coverage, the 20-point gap gives 5%; at 0%, it gives 15%.

It is an assumption, not the result of a study. Coverage counts the lines run by tests, not how well critical paths are protected: a team at 30% with well-placed tests can be better protected than another at 70%. So that a single figure does not inflate the total, the line is capped at 15% of team cost, whatever threshold you choose.

The 60% threshold can be adjusted. At 0, the line disappears: it is the simplest way to rerun the calculation without this assumption.

The result in team time

Every line is paid time. So the calculator also expresses the total in 7-hour developer days and as a share of the team’s annual capacity. With the default answers, for 5 developers at €55,000 gross, the estimate reaches €85,910 a year: 286 developer days, or 22% of the team’s capacity.

The employer charges rate changes the euros, not this share: it raises the team cost and the debt cost in the same proportion.

The risk thresholds

The risk level takes the higher of two criteria: the share of the team’s annual cost and the absolute amount. The amount raises the risk of a large team even when the share stays modest, because €150,000 a year is already a leadership decision. These thresholds are reading guides I set, not a standard.

  • Low: up to 8% of team cost and up to €60,000 a year.
  • Medium: above 8% or €60,000.
  • High: above 15% or €150,000.
  • Critical: above 25% or €300,000.

The quick mode: starting from the maintenance share

If you know what share of the team’s time goes to maintenance (fixes, updates, refactoring and technical support for the existing product, planned or not), the quick mode applies it directly to the team’s annual cost, calculated as above. For 5 developers at €55,000 gross and 30% maintenance: 30% of €390,500, that is €117,150 a year and 390 developer days.

It is not the same calculation as the detailed mode. The detailed mode rebuilds, line by line and from assumptions, the time the debt takes. The quick mode starts from time you have observed, but that time also contains healthy maintenance: fixing an isolated bug, updating a dependency, following a regulatory or API change. Its result values the time reported. It measures neither the total cost of debt nor an upper limit: debt can also slow down new features, which are excluded from this share.

I add neither an “opportunity cost” nor a multiplier. What the team did not build during that time has a value, but it depends on your product and your market: a fixed coefficient would pass it off as a measurement.

To put a declared share in context, the only published reference I could verify is an average. In Stripe’s The Developer Coefficient survey (2018, with Harris Poll), the developers surveyed put the average time spent on maintenance at their company (bad code, errors, debugging, refactoring, modifying) at 17.3 hours a week, out of an average 41.1-hour week. From these two averages, I derive a share of about 42% myself. It is not a healthy threshold, and I do not set a threshold in place of a standard that does not exist.

  • Maintenance cost = declared share × team annual cost.
  • Developer days = cost ÷ hourly cost ÷ 7 hours.
  • Share of capacity = the declared share, since everything is paid time.

Sources

The calculation and Martin Fowler’s quadrant

In 2009, Martin Fowler proposed classifying technical debt along two axes: deliberate or inadvertent, prudent or reckless. Deliberate and prudent is the team that ships sooner knowing the price it will pay later. Deliberate and reckless is “quick and dirty” chosen because people believe they cannot afford good design. Inadvertent and reckless is the team that ignores design practices and takes on debt without knowing it. Inadvertent and prudent is what even an excellent team discovers: as it goes, it understands what the design should have been.

For Fowler, this last case is inevitable and should be expected: even the best teams accumulate it as a project goes on. A non-zero cost is therefore not, in itself, the sign of a fault. He also notes that prudent debt in rarely touched code may not be worth repaying if its interest stays small.

The calculator estimates the interest: the time the debt takes each year, whatever its origin. It does not know which quadrant the debt was born in. The same week of fixes can come from a shortcut accepted before a deadline or from a design nobody knew could be better. Finding out takes the history of decisions: tickets, discussions, architecture decisions and the team’s memory.

  • What the calculation estimates: the annual cost of the interest, in euros and in team time.
  • What it does not say: whether the debt was deliberate or inadvertent, prudent or reckless, nor what repaying it would cost.
  • What the quadrant adds to the reading: a cost carried by code the roadmap touches every week weighs more than the same cost in a rarely changed area.

Sources

The limits of the model

The result helps order a discussion; it does not replace a measurement. To measure, you need to look at the code, the incidents and the backlog.

  • Lines add up but can overlap: frequent bugs and low coverage sometimes describe the same lost time, as do missing CI/CD and deployment friction.
  • The default durations (4 h per bug, friction hours, 2 h without CI/CD, 3% per year of age) are field assumptions, not published measurements.
  • Age is not debt: a well-maintained old codebase costs less than the model says, and a recent codebase built in a rush can cost more.
  • The model counts neither incidents experienced by customers, nor lost revenue, nor a developer leaving. It estimates lost capacity, not the whole risk.
  • For a small team with high answers, the total can exceed the team’s capacity: a sign that the lines overlap.

Questions about the calculation.

  • Is the result reliable?

    It is an order of magnitude, not an audit. The formulas are published and three assumptions can be adjusted, but the default durations remain field assumptions and the lines can overlap. The result helps compare the lines with one another and open the discussion with the team; it does not replace a review of the code, the incidents and the backlog.

  • I don’t know our maintenance share: how can I estimate it?

    Over the last 4 to 6 sprints, estimate the time spent maintaining the existing product: fixes, updates, refactoring and technical support, whether planned or not. Exclude new feature development and split the time for mixed tickets. Add work without tickets, then divide this time by the team’s total time over the same period. Prefer hours or days; ticket or point counts do not directly represent a share of time. Without time tracking, ask for a collective estimate and keep its uncertainty in mind. To investigate debt, then identify recurring fixes and workarounds, including features slowed down by existing code.

  • What should I do if the cost is high?

    Start by examining the largest cost category. The Tech & Organization Diagnosis reviews it in 5 days for €3,000 excl. VAT: focused interviews, a review of the architecture, backlog, incidents and team practices, followed by a summary for leadership and a prioritised action plan.

  • Should we rewrite everything?

    Rarely. At Gridky, where I was Head of Engineering, leadership froze new features for a month and a half to stabilize, test and reduce the debt. Within six months, production bugs went from about 10 a week to 1 or 2 a month: approximate figures reported afterwards, not a measurement. A full rewrite needs economic proof; most of the time, you first modernize the areas that slow the roadmap.

  • Are my answers stored?

    No. The calculation runs in your browser: your answers are neither stored nor sent, and no result is kept. If you book a call afterwards, only the information submitted through Google Calendar is processed.

  • Can I adapt the assumptions to my team?

    Yes. Below the last step, the assumptions panel lets you change the hours to fix a bug, the employer charges rate and the target test coverage. The defaults are 4 h, 42% and 60%.

Need help reducing this debt?

Your answers start a conversation. The situations the team has in mind matter at least as much as the scores.

See how a team addressed technical debt in practice in the Gridky case study.

Latest articles

Feature freeze: why I still stand by Gridky’s Drynuary

Hundreds of Slack exceptions every morning, a team split in two, a priority client waiting. Then a month without a single new feature, negotiated with the CEO. I still stand by it: in my view, the most profitable decision of the year.

Blog