Demo · synthetic sample data · no client data Remaining life and next inspection date

How long does each wall have left?

Every thickness reading a plant holds answers one question: how fast is this wall thinning, and when does it reach the minimum it needs? This engine takes the CML history you already have and computes long-term and short-term corrosion rates, remaining life and the next thickness-inspection date the way API 570 and API 510 write it.

It is arithmetic, not judgment. The codes say the inspector selects the rate that best reflects current conditions, so the engine shows both rates, says which one it used and why, and flags readings that look like data errors instead of quietly scheduling on them.

Input

A CML register with nominal wall, t_required, the piping class or vessel grade, and dated thickness readings. An export from PCMS, Visions or a spreadsheet is the starting point we would ask for.

Output

Per CML: long-term and short-term rate, governing rate, remaining life, next due date and a status, plus a ten-year view of what comes due when.

Pressure test

Send one unit's CML export. We would run the same arithmetic on it and send back a line-by-line diff against the numbers your system holds today.

CML registerSixty CMLs on one sample unit, with the rate, the life and the date behind each.

Filter, sort, switch the governing-rate rule or the Alberta caps, and every number updates. Click a row for the chart and the arithmetic.

Filters and policy

API 570 and API 510 say the inspector, with a corrosion specialist, selects the rate that best reflects current conditions. The default here takes the higher of the two, which gives the shorter life. Pick one explicitly to see what changes.

Caps piping at 3 / 5 / 6 years for Grade 1 / 2 / 3 and unfired process vessels at 4 / 5 / 10 years, on top of the API maxima. Class 1, 2, 3 is mapped to Grade 1, 2, 3 here, which is an assumption; the grade is assigned by the owner-user's program, not by the class.

t_required convention

t_required is the minimum required thickness from the engineering assessment (pressure design plus structural), before corrosion allowance and mill tolerance are added (API 510 7.2.1, API 570 7.2). In this sample it sits at 45 to 65% of nominal. In the pilot it comes from your engineering assessment, never from a rule of thumb.

Nominal walls are ASME B36.10M Schedule 40 for the piping. Vessel nominals are the plate thickness on the sample drawing. Readings are shown in millimetres with inches beside them. Nominal and t_required for each CML are in the detail under the table.

Rates in mm/yr with mpy (mils per year) beneath. † marks a similar-service rate used in place of a measured one. Remaining life is counted from the last reading, not from today.

What comes due whenThickness inspections falling due per year, next ten years.

Same register, same rates, two interval policies. The Alberta toggle above decides which one the plan follows; the other stays visible for comparison.

CMLs due per year

API 570 / 510 maxima onlyWith AB-506 caps
Bar chart: CMLs due per year under the two interval policies

Hover a year for both counts. The policy currently applied is drawn solid. CMLs held for data check are not scheduled until the reading is confirmed.

How the numbers are made

Four lines of arithmetic, three interval tables, one data-quality policy.

Nothing here is proprietary. The value is in applying it to every CML at once, showing the working, and refusing to schedule on numbers that look wrong.

Long-term raterate_LT = (t_initial − t_actual) / years between them

t_initial is the reading at installation or at the start of the current corrosion environment; t_actual is the latest reading at the same CML. API 570 7.1.2, API 510 7.1.1.1.

Short-term raterate_ST = (t_previous − t_actual) / years between them

t_previous is the reading before the latest one. With only two readings the two rates are the same number.

Governing raterate = max(rate_LT, rate_ST) by default

The codes say to compare the two and see which gives the shorter remaining life, and that the inspector selects the rate that best reflects current conditions. The selector above lets you pick either explicitly.

Remaining lifeRL = (t_actual − t_required) / rate

t_required excludes corrosion allowance and mill tolerance. Counted from the date of the last reading. API 570 7.2, API 510 7.2.1.

Next intervalinterval = min(RL / 2, code maximum)
if RL < 4 yr: interval = min(RL, 2 yr)

Next due date = last reading date + interval. With the Alberta toggle on, the AB-506 Table 1 maximum for the grade is applied as a further cap. API 570 6.3, API 510 6.5.1.1.

Units1 mpy = 0.001 in/yr = 0.0254 mm/yr

Readings are kept in the unit they were taken in and converted once. Mixed units in one export are a known failure mode (report sources mix inches and millimetres in one deliverable); the pilot checks for them before any rate is computed.

API 570 Table 6-1 · piping thickness intervals

ClassMax thickness intervalExternal visual
Class 15 years5 years
Class 210 years5 years
Class 310 years10 years
Injection points3 yearsby class

Or half the remaining life, whichever is shorter. Later editions add Class 4 with owner-set intervals and allow RBI per API RP 580 to modify these.

API 510 · vessel intervals

InspectionMaximumRule
Internal or on-stream10 yearsor half RL if less
External visual5 yearsor the internal interval if less
RL under 4 years2 yearsup to the full RL

API 510 6.4.1 and 6.5.1.1. On-stream may replace internal when the general rate is under 0.125 mm/yr (0.005 in/yr), RL exceeds 10 years and five years of similar service are on record.

ABSA AB-506 Table 1 · Alberta maxima

EquipmentGr 1Gr 2Gr 3
Pressure piping3 yr5 yr6 yr
Unfired process vessels4 yr5 yr10 yr
Upstream sour-service vessels3 yr5 yr6 yr
RBI program (AB-505)10 yr maximum thorough assessment

Thorough-inspection maxima, Ed. 4 (2025). Grade 3 is for owner-users only. Deferrals over 12 months need ABSA acceptance (AB-512).

Policy · negative rate

Thickness gain is shown as "no measurable loss", never as infinite life.

Neither code text reviewed prescribes a rule for a reading thicker than the last one. Here the rate cell says so, and the CML falls back to the similar-service rate: the median long-term rate of the other CMLs in the same service on this unit (the unit-wide median when fewer than three exist). The row is flagged for a repeat reading.

Policy · single reading

One reading gets a borrowed rate and a flag, not a blank.

API 570 Section 7 (newly installed piping or changes in service; the subsection number was not confirmed against the 4th-ed. text) and API 510 7.1.2 give the ladder: owner data from similar service, then owner experience or published data, then an early re-measurement (3 months for piping, about 1,000 hours for vessels). The engine uses the similar-service rate and replaces it the moment a second reading exists.

Policy · over 50 mpy

A rate above 50 mpy is held for a data check before it is scheduled.

Rates over 50 mpy (1.27 mm/yr) are often data-management errors: a mis-keyed digit, a different spot, a unit mix. The row shows the arithmetic, gets a "check data" status, and is left out of the plan until the reading is confirmed or corrected.

Sources. API 570, 4th ed. (2016, with addenda), public copy on the NRC docket · API 510, 9th ed. (2006), public IBR copy · Reliamag guide to API 510/570/653 intervals (secondary, current-edition status) · ABSA AB-506 Ed. 4, Appendix A Table 1 · ABSA AB-512 Ed. 4 · ASME B36.10M Schedule 40 walls (inch) · ASME B36.10M Schedule 40 walls (mm) · Digital Refining, optimising information from thickness data (50 mpy screen) · MISTRAS PCMS (an example of the IDMS this sits beside). Formula wording was verified against the API 570 4th ed. and API 510 9th ed. texts; current editions are API 570 5th ed. (2024) and API 510 11th ed. (2022), and section numbers should be re-verified against them before the labels ship.

How the pilot runs

One CML export in, a line-by-line diff back.

In the pilot we would run the same arithmetic as this page on one unit's own CML export; the import step for that export is pilot work, not something built into this demo. Timing is agreed up front once we have seen the export. If the diff finds nothing your IDMS does not already show you, the report says so and we stop there.

  1. STEP 1YouSign the NDA, send the export

    One unit: CML id, item, class or grade, nominal, t_required, and every dated reading with its unit. Hashed ids are fine. Name one technical contact for written questions.

  2. STEP 2Clear AnvilRecompute every rate and date

    Long-term, short-term, governing rate, remaining life and next due for each CML, with API maxima and AB-506 caps applied, plus the data-quality flags: the arithmetic shown on this page, run on your rows.

  3. STEP 3Clear AnvilWritten diff and scorecard

    Where our numbers differ from the ones in your system and why: negative rates, single readings, unit mixes, mis-keyed readings, intervals that exceed a maximum.

  4. STEP 4Both · your callSmall paid pilot, or stop

    If it earns its place: one live inspection-planning cycle on one unit, with your inspector signing off on every governing rate.

Data boundaryNDA first. No client or site identifiers. Your data is not used to train anything and is deleted after the readout.
What you ownThe recomputed register, the diff and the flag list, delivered as a written report and a spreadsheet.
What this is notNot an IDMS and not a substitute for the certified inspector, who remains the authority on rate selection and intervals under API 570, API 510 and AB-512.
About this page. Every item, CML and reading above is generated sample data for a fictional unit, seeded so it is the same on every visit. There are no client results here. Nominal walls are the published Schedule 40 values; t_required values are synthetic and would come from your engineering assessment; the similar-service fallback rate and the Class-to-Grade mapping are policy choices you can change. Formula wording was checked against public copies of API 570 (4th ed.) and API 510 (9th ed.); the current editions should be re-verified before any label ships.
PRESSURE-TEST IT BY EMAIL

Send one export.
Get a written scorecard back.

Reply to the thread or write to the address below. No meetings needed unless you want one.

jamil@clearanvil.com