API 653 §4.4.5.1

Bottom repair-threshold calculator

Repair every bottom reading at or below X so the next internal interval reaches N years — closed form and per-plate table.

For estimating and checking. The inspector of record is responsible for every number that goes into a report. Verify against the current edition of API 653 — this page was checked against API 653, 5th Edition, Addendum 2 (May 2020). Metric bottom minimum values are checked against API 653, 5th Edition, Addendum 4 (July 2025). Not a substitute for the standard or for engineering judgment.

This solver answers a specific question: if you're going to repair some of the bottom anyway, what's the lowest thickness worth patching so the next internal interval reaches the number of years you want? Patching removes the thinnest readings, so the next interval is worked from what is left unrepaired: the lowest surviving reading and the corrosion rate of the unrepaired areas (API 653's rate "not repaired"). The threshold and the interval it buys are coupled, not two separate numbers. Enter one governing thickness for a quick answer, or a full set of plate readings for the per-plate table.

Whole years from when the bottom was installed (or the tank was built, if the bottom is original) to this inspection.

Used by quick mode.

If the as-found minimum already meets the target interval, no repair is needed — used by quick mode.

Example: "P1 .250 .140 .171 .182" — label, nominal thickness, then each reading on that plate.

Repair everything to at least .150 in delivers 10.0 yr (target 10 yr)
After-repair rate 5.0 mils/yr
Remaining life at that threshold 10.0 yr
  1. T = (f · age · MRT + N · t0) / (f · age + N) = (1 × 20 × 0.1 + 10 × 0.25) / (1 × 20 + 10) = .150 in

The formula

T = (f · age · MRT + N · t0) / (f · age + N) (closed form, single governing thickness)
interval = min( (min − MRT) / rate × f, cap ) (f = 1 code form, f = 0.5 report convention)
SymbolMeaningUnitSource
TRepair threshold — patch every reading at or below TinSolved
MRTMinimum remaining thickness at end of intervalinTable 4.4
t0Original / nominal bottom thicknessinAs-built / mill cert
ageYears the bottom has been in serviceyrTank record
NTarget next internal intervalyrOwner / RBI target
fLife-to-interval factorInterval basis toggle
API 653 §4.4.5.1API 653 Table 4.4API 653 §6.4.2.2.1

Worked example

Using the pre-filled example above (US customary units):

  1. T = (f · age · MRT + N · t0) / (f · age + N) = (1 × 20 × 0.1 + 10 × 0.25) / (1 × 20 + 10) = .150 in
  • Repair everything to at least: .150 in
  • After-repair rate: 5.0 mils/yr
  • Remaining life at that threshold: 10.0 yr

Where the inputs come from

  • Bottom age is the number of years since the bottom was installed — or the tank was built, if the bottom is original — to this inspection.
  • Original/nominal thickness comes from the tank record or mill certification; in plate mode, give each plate its own nominal since bottoms are often mixed.
  • Plate readings are the UT grid results for the bottom, grouped by plate — enter every reading you have, not just the lowest one, so the solver can find the true governing rate.
  • Pick the bottom safeguard that matches what is actually installed and documented for this tank, not what you plan to add.

Built by TankForge — API 653 inspection software

TankForge runs this coupled solve per plate from your UT grid, so the "repair to" line in the Repairs table and the interval it prints for the report are always the same arithmetic as this page.

Related

Frequently asked

Why does the rate change after a repair?

It stays the same or slows down — never faster. Once you patch the thinnest metal, the rate the interval is based on is re-measured from what survives: each remaining plate's loss from its own nominal, divided by the bottom's age, with the fastest-thinning surviving plate governing (API 653's rate "not repaired"). That's a measurement over a smaller set of readings than the as-found rate used, so it can only come out the same or lower, never higher. Patching removes the thinnest spots; the next interval is then worked from the lowest surviving reading and the corrosion rate of the areas that were not repaired.

What if patching every reading still does not reach my target?

That happens when the corrosion rate is fast relative to the bottom's age and the target interval — even a fully restored bottom cannot buy enough years under the code cap. The calculator flags this rather than showing a threshold that does not deliver.

Cathodic protection (CP) vs a release prevention barrier (RPB) — how are they different here?

They work differently. An effective CP system is treated as making the bottom-side corrosion rate zero for the interval calculation — it does not change the minimum remaining-thickness value itself. A release prevention barrier (leak detection plus containment) lowers the minimum remaining thickness the bottom needs to keep at the next inspection, and because it's a full release prevention barrier it also raises the code cap on how long that interval can run. A qualifying reinforced lining lowers that same minimum remaining thickness, but on its own does not raise the cap — the interval is still capped at the no-barrier limit. This calculator's basis toggle covers the RPB/lining case; a CP-protected bottom is modeled by entering only the topside corrosion in the readings, since the bottom side is treated as not thinning.

Why might the TankForge app show a different interval than this page?

The TankForge report currently uses half of the remaining life as a conservative practice, while this public page defaults to the interval form written into API 653 itself (the full remaining life to the minimum remaining thickness, capped). An update bringing the app's calculation in line with the code's own form is planned — until then, expect the app's printed interval to run more conservative than this page's code-form default. You can switch this page to the same conservative basis using the toggle above to compare directly.

Where to find labeled drawings

  • API 650 Annex H (internal floating roofs) and Annex C (external floating roofs): figures of the roof and its fittings.
  • API 653 Annex C checklists: the inspection names for most of these parts (C.1.4 roofs, C.1.5 roof accessories, C.2.8–C.2.9 floating roofs and seals).
  • EPA AP-42, Chapter 7.1 (Organic Liquid Storage Tanks): cutaway diagrams of guide poles, deck fittings, rim seals and vents, each part named. EPA AP-42 Chapter 7
  • Vendor catalogs for close-up photos: Enardo, Protectoseal, Groth, Varec, Shand & Jurs (vents, hatches, gauges); HMT, Matrix (floating roofs, seals).

Don’t see what you need?

Ask for a guide, calculator or tank part we haven’t covered. Email is optional — anonymous requests are welcome.