Making Contractor Thickness Data Trustworthy in an Ammonia Plant
A thickness reading is evidence only if you can say who took it, when, with which instrument, by which method, and on which CML. In an ammonia or fertilizer plant that is not housekeeping: OSHA 29 CFR 1910.119(j)(4)(iv) requires the date, the person, the equipment identifier, the test performed and the result for every mechanical integrity inspection.
Fertilizer and ammonia sites rarely carry a large in-house UT crew. Readings arrive from a rotating set of regional contractors as PDFs, spreadsheets and re-typed CML numbers, and each firm brings its own conventions: one reports the minimum of four quadrant readings, the next reports all four; one measures through coating with single-echo, the next uses echo-to-echo and appears to find 0.4 mm of loss that never happened. On a wet CO2 stripper overhead or an ammonia refrigerated storage tank shell those differences are larger than a year of real corrosion. The module's job is to refuse the flattening. Every reading is stored as its own row with the technician, their certification level and expiry as of that date, the gauge and probe serial, the calibration record, the measurement mode, the surface temperature, and the couplant. Readings that could not be taken are stored too, with the reason, so an incomplete campaign never looks complete.
Source: Written against OSHA 29 CFR 1910.119(j) mechanical integrity recordkeeping; API 510, API 570 and API 653 for inspection intervals and corrosion-rate determination; API 571 for ammonia stress corrosion cracking, carbamate corrosion, amine cracking and wet CO2 corrosion; API 941 for high-temperature hydrogen attack; API 579-1/ASME FFS-1 Parts 4 and 5 for general and local metal loss; ASME Section V Article 23 and ASTM E797/E797M for contact ultrasonic thickness practice; ASNT SNT-TC-1A and ISO 9712 for personnel qualification; API 620 Annex R and CGA G-2.1 for refrigerated anhydrous ammonia storage.
| Provenance field | What contractors typically supply | What breaks if it is missing | Basis |
|---|---|---|---|
| Date of measurement | Report issue date, often weeks after the work | Corrosion rate is computed over the wrong interval; a two-week error is noise, a two-month error on a 0.5 mm/yr carbamate line is not | 29 CFR 1910.119(j)(4)(iv) |
| Technician identity and certification state | A signature block naming the firm, not the person | No way to isolate an operator bias, and no way to find readings taken after a Level II certification lapsed | ASNT SNT-TC-1A written practice; ISO 9712 |
| Instrument and probe serial, calibration record | Gauge make and model at best | A gauge that drifted between calibrations contaminates every reading in the campaign and you cannot bound the affected set | ASME Section V Article 23; ASTM E797 |
| Measurement mode and velocity setting | Nothing; the mode is assumed | Single-echo through paint reads high, echo-to-echo reads true; carbon-steel velocity applied to 316L urea-grade pipe reads roughly 2.8% high | ASTM E797/E797M |
| Surface temperature at the reading | Nothing | Uncorrected readings on a hot CO2 stripper bottom or a -33 degC ammonia tank shell carry a systematic velocity error in a known direction | ASTM E797 temperature correction |
| Exclusion reason where no reading was taken | The CML is silently absent from the sheet | The campaign appears complete, the next inspection date is set on data that was never gathered, and the gap is invisible to the approver | 29 CFR 1910.119(j); API 510 interval setting |
Why the readings arrive from someone else
Ammonia and fertilizer complexes are capital-heavy and headcount-light. A world-scale synthesis train, a urea melt and granulation plant and a nitric acid unit are often covered by one integrity engineer and one mechanical inspector, with all UT, RT and phased array bought from regional contractors on annual frame agreements. The agreement is retendered every three to five years, and every retender resets the conventions under which your corrosion rates were built. Nobody notices, because the numbers keep arriving in the same spreadsheet template with the same column headings.
The consequence surfaces at the worst possible moment. API 510 sets the next internal inspection at the lesser of half the remaining life or ten years, and remaining life comes from a corrosion rate derived from two thickness values. When those two values were produced by different firms using different measurement modes on differently prepared surfaces, the rate is partly an artefact of your procurement calendar. A rate forty percent too high pulls a shutdown forward and burns capital you did not need to spend. A rate forty percent too low gives you an interval you cannot defend when someone asks how it was derived.
The module exists so that provenance travels with the number instead of living in the covering report that nobody opens once the campaign closes. Every field that could explain a discrepancy is attached to the reading row itself, which means it survives export, merge, migration and the next change of contractor.
The damage mechanisms that punish a flattened record
Fertilizer complexes carry an unusually wide spread of mechanisms in a small footprint. Refrigerated anhydrous ammonia storage tanks are susceptible to ammonia stress corrosion cracking, which is sensitive to oxygen contamination and water content and is a cracking problem rather than a thinning problem, so thickness history has to sit alongside crack-detection results rather than replace them. Wet CO2 corrosion in the carbon dioxide removal and stripping circuits is aggressively local and gravity-driven. Carbamate corrosion in urea high-pressure equipment is a passivation problem: lose the passivating air and stainless that has behaved for a decade begins losing wall at rates that make an annual inspection interval meaningless.
Some of what threatens these units cannot be found with a thickness gauge at all. High-temperature hydrogen attack in the synthesis loop, assessed against the API 941 curves, degrades material through the wall without producing measurable loss until very late. Metal dusting in reformed gas coolers and transfer lines produces pitting and localised holes rather than general thinning. Recording the method on every reading is what allows the integrity engineer to see that a component has a long, comfortable thickness trend and no examination at all for the mechanism that will actually take it out of service.
This is why the minimum-per-CML convention is so damaging here. Directional and weld-adjacent attack is invisible in a single minimum. Four quadrant readings trended independently expose a six o'clock rate diverging from the twelve o'clock rate years before the minimum approaches a retirement thickness, which is exactly the lead time you need to buy replacement material for a line that only comes out during a full ammonia stop.
Three arithmetic traps that manufacture corrosion that is not there
The first is coating. Insulated and painted lines in a fertilizer plant carry anything from a thin epoxy to a heavy coal-tar system. A single-echo corrosion gauge measures from the front surface of the coating and reads high; an echo-to-echo measurement between successive backwall reflections ignores the coating and reads true. Change from one contractor to the other and the wall appears to have lost the coating thickness overnight. On a 10 mm line corroding at a genuine 0.1 mm per year, a 0.4 mm mode artefact spread over a four-year gap between campaigns doubles the apparent corrosion rate and halves the remaining life.
The second is velocity. Gauges are commonly left on a carbon-steel default near 5900 m/s. Applied to austenitic stainless around 5740 m/s, the displayed thickness reads roughly 2.8% high, which on a 10 mm urea-grade line is close to 0.3 mm of phantom metal. A plant with mixed metallurgy in the same circuit will collect readings that appear self-consistent within each material and disagree at every transition. Recording the velocity setting used, not merely the material of record, is what allows the error to be found and corrected retrospectively rather than propagating forward.
The third is temperature. Sound velocity in steel falls as temperature rises, so readings taken on a hot stripper bottom without correction read thin, and readings on a refrigerated ammonia tank shell at -33 degC read thick. Neither error is random: each has a known sign, so it accumulates into the trend rather than averaging out. If the surface temperature is not on the row, the correction can never be applied after the fact, and the only honest thing to do with the reading is to distrust it.
Exclusions are data, not gaps
Every campaign in a fertilizer plant leaves readings undone. Insulation was not stripped because the scaffold went up late. A line stayed in service above the couplant's rated temperature. A CML marker was painted over during the last coating campaign and could not be found. The permit for a confined space entry was not issued in the window. In most reporting workflows those CMLs simply do not appear in the returned spreadsheet, and their absence is indistinguishable from a CML that was never on the scope.
The module treats an exclusion as a first-class record with the same weight as a measurement: the CML identifier, the date the attempt was made, the technician who made it, a coded reason, an accountable owner and a date by which it must be closed. Campaign completeness then becomes a number you can put in front of an approver. Signing an inspection as complete when eighteen percent of the scope was never touched is the kind of finding that turns a routine PSM audit into a programme review.
There is a second benefit that shows up a year later. Exclusion reasons cluster. When forty percent of a unit's misses in three consecutive campaigns are insulation-related, the fix is not a better inspection contractor; it is inspection ports, removable covers or a pulsed eddy current screening pass through the cladding. That conclusion is only available if the reasons were coded rather than written as free text in a comments column.
Whose hand held the probe, and were they certified that day
Certification is time-varying, and thickness history is not. A technician certified Level II in ultrasonic testing under a contractor's written practice holds that certification under an employer-based scheme; ISO 9712 certification is issued by a third-party body and behaves differently. Either way it has an issue date, an expiry, an annual vision test and a scope limited to specific methods. The record must hold the certification state as of the date of the reading, not the state as of the day you run the query, because the query you eventually need to run is: show me every reading taken by a technician whose qualification had lapsed.
Operator variation is also real and frequently larger than the signal you are trying to measure. Two competent technicians on the same rough, pitted CML with different couplant, different surface preparation and different gate settings can differ by more than a year of genuine corrosion. Storing the technician on the reading allows that variation to be characterised: when the same person measures the same CML at each campaign, the trend is far cleaner, and where a person changes mid-campaign the discontinuity is at least visible instead of being read as an event.
This is also the field that makes contractor performance measurable rather than anecdotal. Rejection rates at import, exclusion rates by cause, and repeat variance on control CMLs are all computable once the person and the instrument are attached to the number. That turns the next retender into a technical conversation instead of a commercial one.
What the PSM auditor and the API 510 inspector each need
The two consumers of this data want different things and both must be served from the same rows. The PSM auditor wants to see that mechanical integrity inspections and tests were performed on schedule and documented with the five elements 1910.119(j)(4)(iv) prescribes, that deficiencies were corrected before further use or otherwise managed, and that the personnel performing the work were trained for it. That is a completeness and traceability question, answered by the exclusion records, the certification snapshots and the immutable audit trail.
The API 510 or 570 inspector wants a defensible remaining life. That means short-term and long-term corrosion rates computed from named readings, a documented decision about which measurement is treated as the baseline, statistically sound treatment of the reading set, and a clear record of where a fitness-for-service assessment under API 579-1/ASME FFS-1 replaced simple minimum-thickness screening. Both of those questions collapse if the underlying rows carry no method or mode, because then the rate itself is unsourced.
A system that satisfies only one of the two forces a manual reconciliation every audit cycle. A system that satisfies both writes each answer from the same table, and every revision to a reading, an exclusion or a baseline stays in the trail with the reason and the person who made it.
How to evaluate this before you commit
Take a real contractor deliverable from your last campaign, not a sample file, and ask the vendor to import it in front of you. Watch what happens to the rows that are wrong: a duplicated CML, a reading with no instrument, a thickness above nominal, a CML that no longer exists because the spool was replaced. A system that accepts all of it silently is a system that will let a bad campaign into your trend. A system that rejects the whole file is unusable. What you want is row-level rejection with an actionable reason and a queue for the rejects.
Then ask five questions that most demos are not prepared for. Can a reading be stored with a status of attempted but not obtained, and does it appear in campaign completeness? Can an entire contractor campaign be superseded without deleting it, so the original remains visible in the audit trail? Can you show the technician's certification level and expiry as of the reading date rather than today? Can you export the mechanical integrity record with the five OSHA-prescribed fields per reading? And can you find every reading taken with a velocity setting that does not match the component material?
Finally, ask what happens on the day you change contractors. The migration of CML identity, nominal thickness, baseline selection and prior readings into a new firm's field collectors is where most thickness histories quietly lose their provenance. If the answer is a spreadsheet handover, you are about to restart the same problem you are trying to solve. Atlantis provides implementation, ASNT Level III consulting and independent report validation alongside the software; a demo or consultation can be requested at info@atlantisndt.com.
Why can't we just store the minimum reading at each CML?
Because most ammonia-plant damage is directional. Wet CO2 corrosion attacks the six o'clock position of a stripper overhead line; carbamate attack concentrates at weld heat-affected zones and liner leak paths; condensate corrosion sits at low points. A single minimum tells you the worst point exists but not where it is or whether it moved. Four quadrant readings trended separately show a bottom-of-line rate diverging from the top long before the minimum crosses t-min.
What should a contractor's UT report contain before we accept it?
At minimum: one row per physical reading with CML identifier, date, technician name and certification reference, gauge and probe serials with calibration due date, measurement mode, nominal and previous thickness as issued by you rather than as assumed by them, surface temperature, and an explicit row for every CML on the scope that was not measured with a coded reason. Anything reported as an average or a minimum of unnamed constituent readings should be rejected at import.
How do we compare readings taken by two different contractors?
You do not compare them blind. Store the mode, velocity setting, probe and coating treatment for each, then flag any pair whose apparent loss falls inside the combined method uncertainty. A 10 mm wall corroding at 0.1 mm/yr moves 0.4 mm in four years; a single-echo to echo-to-echo change moves it the same amount. Without the mode recorded the two are indistinguishable and the rate silently doubles.
Does the system have to record readings that were never taken?
Yes, and this is the field most systems omit. An exclusion needs a state, a coded reason, an owner and a due date: insulation not removed, scaffold not erected, surface too rough for a stable backwall, line above the couplant's service temperature, permit not issued. Campaign completeness is then a real percentage. An inspection signed off as complete with eighteen percent of CMLs untouched is an audit finding waiting to be written.
How does this connect to OSHA process safety management records?
An anhydrous ammonia process above the threshold quantity is a covered process, so 1910.119(j) mechanical integrity applies in full. Paragraph (j)(4)(iv) prescribes five things every inspection record must identify: date, person, equipment identifier, description of the test, and results. A thickness history that carries those five fields per reading, with an immutable audit trail, is the PSM record. One that carries them only on the covering PDF is not.
What does this change for urea and nitric acid units specifically?
Both are unforgiving of averaged data. Urea high-pressure carbamate service depends on maintaining a passive film on 316L urea grade, duplex or 25-22-2; loss of passivation air produces rates measured in millimetres per year at very local sites. Nitric acid units suffer weld-decay style intergranular attack adjacent to welds in 304L. In both cases a per-weld, per-quadrant history with method recorded is the difference between catching an excursion and discovering it.
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.