Carrying cement plant inspection history into a code-driven interval engine
Cement and lime plants hold decades of thickness history in contractor spreadsheets and scanned reports that were never built to support an API calculation. A remaining life engine can only derive a defensible next inspection date if the migration preserves three things the legacy records lose: a stable CML identity, the required thickness the reading is judged against, and whether the number was a grid minimum or a fixed point.
The regulated equipment in a cement works is a minority of the plant, but it is the part that carries statutory obligation: waste heat recovery boilers, plant air receivers, fuel oil and alternative fuel tanks under API 653, LPG or propane bullets, and the aqueous ammonia or urea storage feeding SNCR. Everything else — preheater cyclones, riser ducts, kiln shell, clinker cooler, baghouse casings — degrades by abrasion and acid dew point condensation, at rates that are violently local rather than uniform. Legacy history mixes the two populations in the same workbook. Migration therefore has to split them: assets whose next date comes from an API remaining life calculation, assets whose date comes from a jurisdictional boiler inspection that no risk assessment may extend, and assets whose date comes from the kiln outage calendar. Loading all of them into one corrosion rate field is how migrations produce confident, wrong dates.
Source: Sources: API 510 Pressure Vessel Inspection Code (remaining life and interval determination); API 570 Piping Inspection Code (piping class, CML selection, thickness intervals); API 653 Tank Inspection, Repair, Alteration and Reconstruction (external visual frequency, shell and bottom evaluation, internal inspection ceiling, release prevention barrier); API 571 damage mechanisms, including erosion, erosion-corrosion and acid dew point corrosion; ASME Section VIII Division 1 and the ASME B31 piping codes for required thickness; ASME Section V for NDE methods; National Board Inspection Code NB-23 for jurisdictional in-service inspection; ASNT SNT-TC-1A and ISO 9712 for examiner qualification.
| Record as found in the legacy system | What the interval calculation needs | What happens if it is migrated as-is | Migration rule |
|---|---|---|---|
| Grid minimum only — one number per area per survey | A repeatable fixed point with a stable identity | Consecutive minima come from different points and fabricate a rate, sometimes negative | Import as survey-level evidence, never as a CML trend |
| Grid renumbered when the inspection contractor changed | One CML identity spanning the whole history | The trend restarts at the changeover and the long-term rate is lost | Map old identities to new before load and retain both keys |
| A column headed 'corrosion allowance remaining' | Required thickness for the governing load case | Remaining life is overstated by the entire corrosion allowance | Recover the design calculation or recalculate and flag it |
| Readings taken over refractory, scale or coating | Metal path thickness only | Wall appears to grow, producing negative rates and infinite life | Quarantine by probe and velocity setting; exclude from rates |
| Scanned PDF reports with no structured data | Date, CML, thickness, examiner, procedure | Nothing to calculate from, so the date defaults to a typed guess | Digitise at least the last two surveys; keep earlier as reference |
| Tank shell recorded as one average thickness | Per-course thickness plus bottom plate data | API 653 shell and bottom evaluations cannot be reproduced | Re-baseline at the next external inspection; do not backfill |
The grid minimum, and the corrosion it invents
For decades, thickness survey reports in cement and lime plants were delivered as a table of areas with a single number against each: the minimum reading found in that area. It was sensible field practice and a perfectly reasonable report for a fitness decision at the time it was made. It is a catastrophic input to a remaining life calculation, because the minimum of a twelve-point grid is not a place. It is a statistic, and the physical point that produces it moves from survey to survey.
Subtract this year's minimum from last year's and you have differenced two different physical points. On an abrasion-worn riser duct or a clinker cooler casing, where the spread across a single grid can be several millimetres, that difference is dominated by which point happened to be lowest on the day, not by wear. It produces rates that are alarming on one asset and negative on the next, and a migration that loads them as a CML trend will publish both with identical confidence and identical formatting.
The correct migration rule is to import grid minima as survey evidence — genuinely useful for fitness screening and for showing the worst case at a point in time — but never as the basis of a corrosion rate. Rates begin at the first survey with real fixed-point identity. That usually means the usable trend is short, which is uncomfortable, and it means the engine has to fall back to a default interval until enough genuine history accumulates. Uncomfortable and true beats comfortable and fabricated.
CML identity across five contractors and four grid schemes
A twenty-year history in a cement plant has typically passed through several inspection contractors, each of whom arrived with their own grid convention, renumbered the drawings and left. The physical points may even have been the same ones, but nothing in the record links CML 14 in the 2009 scheme to CML B-3 in the 2016 scheme. Load them as distinct identities and every trend restarts at each changeover. Merge them without evidence and you have invented a continuity you cannot defend to an inspector or an insurer.
The reconciliation work is manual and it is the single largest cost item in a migration of this kind. It needs the isometrics or general arrangement drawings from each era, the survey sketches, and someone who knows the plant physically rather than only on paper. The output is a mapping table carrying a confidence flag per point: confirmed, probable, or unlinked. That flag has to survive into the engine, because a long-term rate built on a probable link is a weaker number than one built on a confirmed link, and the report should say so plainly rather than presenting both at the same precision.
Budget for this explicitly and do it once. The common failure is to defer the mapping, run both systems in parallel "for now", and discover three years later that the new system's usable history begins at go-live while everything before it sits in a PDF archive that nobody opens and nobody trusts.
The missing required thickness
Remaining life is meaningless without the floor it is measured down to. Legacy cement plant records almost never store required thickness. What they store, if anything, is a column headed corrosion allowance remaining, or a hand-written minimum acceptable value on a survey sheet whose derivation has been lost with the engineer who wrote it. Migrating either into the required thickness field is not a rounding error. It moves the floor by the entire corrosion allowance, and every remaining life computed above that floor is overstated by the same margin.
The proper source is the design calculation. For pressure vessels that means recovering the manufacturer's data report and the thickness calculation behind it, or recalculating required thickness for the governing load case under the applicable ASME Section VIII rules at current design conditions. For piping it means the applicable ASME B31 code with the actual design pressure and temperature, not the nameplate maxima, which are usually more generous. On equipment installed in the 1970s and 1980s those documents are frequently gone, and the honest migration outcome is a required thickness marked as recalculated with its assumptions recorded alongside.
The engine must distinguish three states — retained original calculation, recalculated, and assumed — and must report how much of the fleet sits in each. In a first migration it is entirely normal for the assumed population to be large. It should shrink every year as design calculations are recovered or redone, and that shrinkage is a far better measure of programme progress than any compliance percentage a dashboard can produce.
Readings that were never taken on steel
Cement plants are full of surfaces that defeat ultrasonic thickness measurement in ways a refinery's are not. Preheater cyclone cones, riser ducts and the kiln hood are refractory lined, and an external reading is only valid where the acoustic path is shell plate alone. A probe placed over an external stiffener, a wear plate, a weld overlay, or heavy build-up of clinker dust and coating returns a path length that is not the wall. Air receivers and fuel tanks accumulate paint layers and scale. Readings taken on hot surfaces without temperature-corrected velocity read short.
In a legacy dataset these appear as thickness that increases with time — a physical impossibility that an engine will convert into a negative corrosion rate and, downstream, into infinite or nonsensical remaining life. Some systems silently discard negative rates. That is worse than publishing them, because it removes the only visible evidence that the data set has a systematic problem, leaving a clean-looking report built on a filtered population.
The migration rule is to quarantine rather than delete. Import the reading, flag it as anomalous with the reason recorded, exclude it from the rate calculation, and keep it visible in the asset's history. Where the same CML produces anomalies across multiple surveys, it is usually telling you something real about access, surface condition or procedure that should change how the point is examined — not something about the metal underneath it.
Tanks: what API 653 needs that cement plant records rarely contain
Cement plants have acquired API 653 obligations without always noticing them. Fuel oil storage was always there. The growth of alternative fuel firing added solvent, waste-derived liquid fuel and used oil tanks, frequently acquired second-hand or converted from another duty rather than purpose-built and documented. API 653 requires external visual inspection at defined intervals, ultrasonic shell thickness measurement on a schedule that depends on whether a corrosion rate is established, and internal inspection subject to a long ceiling that risk-based methods may approach but not exceed.
The data those evaluations need is granular in a way legacy records simply are not. Shell evaluation is per course, because the required thickness varies with head and the corrosion does not distribute itself evenly up the shell. Bottom evaluation needs plate thickness data across the floor together with knowledge of whether a release prevention barrier is present, since that changes what the interval determination may assume. A legacy record holding one average shell thickness and no bottom data cannot reproduce any part of it, however it is reformatted.
The realistic migration position is to carry forward what exists as reference, re-baseline at the next external inspection, and let the engine mark the tank's interval as provisionally assigned until real data arrives. Backfilling assumptions into an API 653 evaluation so that the new system looks complete at go-live is how a plant ends up defending a number that nobody can reconstruct, in front of an inspector who will ask exactly that.
Jurisdictional inspections that no calculation may extend
The waste heat recovery boiler, the plant air receivers, and in many works a hot water or auxiliary steam generator are jurisdictional equipment. Their in-service inspections are performed or witnessed to a state or provincial requirement, commonly administered through the National Board Inspection Code, and their frequency is statutory. A risk-based assessment can inform maintenance planning around them; it cannot extend the legal inspection by a single month.
Legacy cement records typically hold these as a separate paper file kept by the maintenance superintendent, with the jurisdiction number and the current certificate. Migrations that consolidate everything into one asset table routinely lose the jurisdiction number, the inspector's identity and the certificate expiry, because the new system's data model has no fields for them and nobody asked. The first time this surfaces is when a certificate lapses and the equipment cannot legally operate.
Build the fields before the load: jurisdiction, jurisdiction number, national board number, certificate expiry and the authority. Then make the engine take the earlier of the statutory date and any derived date, and label which one governed. This is the same discipline any multi-jurisdiction operator needs, and cement plants need it particularly because their statutory population is small enough to be forgotten inside a register of thousands of assets.
Snapping derived dates to the kiln outage calendar
A cement works has one, sometimes two, major kiln outages a year, and almost everything intrusive happens inside them. A derived due date of 14 March carries no operational meaning if the outage runs in October. The engine has to hold the outage calendar as a first-class object and express each due item in relation to it: due before the next outage, achievable within the next outage, or requiring deferral to the one after. That single reframing is what makes the output usable by a planner rather than by an auditor only.
Deferral is legitimate but it has to be recorded properly. API 510 and API 570 permit interval adjustment within their own limits with owner-user justification and approval; they do not permit a date to slip because the outage ran short or the scaffold arrived late. The engine should force a deferral record carrying a basis, an approver and a new date, and should refuse to move a date silently. The audit value of that record is high and its cost is a two-minute form filled in by the person who made the decision anyway.
The reverse case matters as much and is far more often missed. Items falling due shortly after an outage should be pulled into it, because the alternative is either an unplanned opening or an overdue asset carrying a deferral that was never really justified. A due-date list that does not draw the outage boundaries makes both decisions invisible to the planner who has to make them.
Proving the migration before the old system is switched off
The acceptance test for a migration of this kind is not a record count and it is not a screenshot. It is reproduction. Choose thirty assets spanning the whole population — a vessel with a full retained design calculation, a vessel with none, a piping circuit with a contractor changeover inside its history, an alternative fuel tank, a jurisdictional boiler, a refractory-lined duct — and require the new engine to reproduce the interval currently in force for each, with every input traceable, before anything is decommissioned.
Where it cannot reproduce the current interval, the usual explanation is that the current interval was never derived at all. It was typed, years ago, by someone reasonable who had no better basis available. That is a finding worth having, and it is the actual return on the migration. Expect a meaningful fraction of the register to fall into that category, and plan resourcing for the workload that appears when those assets receive a calculated date for the first time.
Atlantis builds the interval engine on Odoo, so migrated history, examiner certifications under SNT-TC-1A and ISO 9712, equipment calibration records, outage work orders and deferral approvals live in one system rather than four. Migration scope is built around the CML mapping exercise and required thickness recovery, because those two items decide whether the derived dates are defensible at all. Affordable, accessible and fully customisable. To discuss a migration against your own legacy dataset, contact info@atlantisndt.com.
Why does migrated cement plant thickness history show corrosion that never happened?
Because most legacy surveys reported one number per area: the grid minimum. A minimum is a statistic, not a location, and it moves between surveys. Differencing consecutive minima on an abrasion-worn duct compares two different physical points, producing rates that are wildly high on one asset and negative on the next. Grid minima are valid fitness evidence; they are not a corrosion rate trend.
What is the minimum data set needed to derive an API 570 piping interval?
A stable CML identity, at least two thickness readings on that identity with dates, the required thickness for the governing design condition, and the piping class with its consequence basis. Without required thickness there is no floor to measure remaining life against; without stable CML identity there is no rate. Examiner, procedure and probe details determine how much you can trust the resulting number.
Can corrosion allowance remaining be migrated into the required thickness field?
No, and it is the most damaging shortcut in this kind of migration. Corrosion allowance remaining is measured down from nominal; required thickness is the floor set by the design calculation. Substituting one for the other moves the floor by the whole allowance and overstates every remaining life above it. Recover the design calculation, or recalculate required thickness and mark the value as recalculated.
How should an interval engine handle a refractory-lined preheater riser duct?
Not as a corrosion-rate asset. Wear is abrasive and violently local at impingement points, and external readings are only meaningful where the acoustic path is shell steel alone. Treat it as a condition-monitored asset with thermographic hot-spot survey, targeted ultrasonic checks at known wear locations, and inspection tied to the kiln outage. Reserve the API remaining life calculation for the pressure equipment population.
What does API 653 need for an alternative fuel storage tank that legacy records rarely hold?
Per-course shell thickness rather than a single average, bottom plate data, and whether a release prevention barrier exists, because those inputs drive the shell and bottom evaluations and the permitted internal interval. External visual inspection runs on its own frequency regardless. Where the data does not exist, mark the interval provisionally assigned and re-baseline at the next external rather than backfilling assumptions.
How do derived dates line up with a single annual kiln outage?
They must be expressed against the outage calendar rather than the calendar year. Each due item should read as achievable in the next outage, needed before it, or deferred to the following one, with a documented basis and a named approver for anything deferred. A bare due date of 14 March carries no operational meaning on a plant whose kiln stops in October.
Built for any business that runs on operations
Most companies do not fail at their craft. They lose time, margin and goodwill in the gaps between the tools they use to run the place — a quoting spreadsheet that does not talk to the job sheet, a job sheet that does not reach accounts, and a compliance folder nobody can search when a client asks. Atlantis closes those gaps by putting the whole operation on one platform, so information is entered once and everything downstream stays in step.
What you can run on it
- Sales and CRM — leads, quotes, follow-ups and the pipeline that tells you what next month looks like.
- Projects and job costing — plan the work, track the hours and materials against it, and see the margin while the job is still live rather than at final account.
- Field and service teams — dispatch, schedules, mobile capture that works with no signal, and sign-off from site.
- Inventory and purchasing — stock, suppliers, reorder points and goods receipt, joined to the jobs that consume them.
- People — records, qualifications and licences with renewal reminders, timesheets, leave and payroll.
- Quality and documents — procedures and forms under revision control, with the audit trail an inspection or accreditation body actually asks for.
- Accounts — invoicing, expenses, multi-currency and the reporting your accountant stops chasing you for.
Affordable, accessible, fully customizable — and we mean each word
Affordable because the whole suite is included rather than sold to you a module at a time, and because implementation is done by people who have run operations rather than by a chain of subcontractors. Accessible because it runs in a browser and on a phone, works for a small team on day one, and does not need a specialist on staff to keep it alive. Fully customizable because your process is the thing that makes you competitive — the software should bend to it, not the other way round.
Industries we configure for
Service businesses and contractors, manufacturing and fabrication, trading and distribution, laboratories and testing houses, engineering consultancies, construction and facilities, and asset owners across energy, marine, aerospace and infrastructure. Inspection and testing is where we started, and it remains the sector we go deepest in — but the platform underneath is general-purpose, and most of what it does has nothing to do with inspection at all.
What happens when you get in touch
A short conversation, not a sales sequence. We ask how the business runs today and where it hurts, show you the platform doing that work, and send a written quote shaped to your region, your team size and the scope you actually need. No obligation, nothing to install first, and no pressure to decide on the call. Reach out and tell us what you are trying to fix.
Related: business management platform · inspection management software · choosing the right category of software · modules · by industry · asset integrity platform. Book a free consultation.