Last updated 30 and 31 August 2026
This page exists for one reason: so you can see whether the product is still being worked on before you put a job’s records in it. Dated, newest first, and only things you would actually notice.
No version numbers, and the releases are dated instead. Changes ship when they are ready rather than in numbered releases, so a release is identified by the day it went out. A number would imply a history that can be checked against something; a date is just the day.
This page starts where the record starts. ROW QC was built before it had a changelog, so what is below is not the whole history of the product — it is everything since there has been a file that has to agree with what shipped. Nothing has been backfilled from memory.
30 and 31 August 2026
On the weld map, Commit derived stations writes the stationing the chain works out from the scanned welds back over the typed stations. The dry run said correctly which joints would move. Pressing Commit then said "1 joint station written" and wrote nothing: every joint that needed moving was refused inside the function, and the refusal read like a legitimate one.
Fixed. A joint off its derived station now moves, and the weld behind it is re-stationed with it. The message afterwards counts only what was actually written, and says separately how many joints were refused, because a joint filed on a signed daily report is refused on purpose and is the one you need to know about.
Nothing already recorded changed. A joint already at its derived station was never touched, before or after, and the stationing of the welds and joints on every live job is exactly what it was.
Each open item now says what to do about it, not just where to go. An NDE item says to enter the result; a record-integrity item says to file an amendment rather than try to edit the report back into shape.
They still cannot be ticked off, and that is deliberate. Every item is worked out from the job as it stands, so there is nothing stored to clear: enter the NDE result and the item goes. A button that removed one would have to mean "ignore this", and this list is what goes into the client report — a progress summary that leaves out eleven welds with no NDE is worth less than no summary at all.
What was missing is the item that is never going to change: a weld cut out and replaced whose original still has no result, a crossing the operator has accepted as-built. A chief can now accept one with a reason. It stays on the list and on the client report, showing who accepted it, when and why, and it stops counting as outstanding — so the number at the top of the panel means "still to do" rather than "ever raised". An acceptance can be withdrawn, also with a reason.
Only a chief inspector can accept or withdraw. Everybody on the job can see what was accepted and why.
Typing a note on the Chief's Roll-Up and then changing the date to check yesterday's figure threw away what you had typed, with no warning. The note is the one thing on that screen that is not worked out from the job, so it was the one thing that could not be recovered.
It asks now, and leaves the date where it was if you decide to stay.
Press Read on an uploaded resume and ROW QC takes the text out of it — name, contact details, experience, certifications, education — and lays it out on its own sheet, so a resume in a turnover book matches everything around it.
Correct anything that came out wrong before you save it. One person's resume puts certifications where another puts licences, so what it reads is a starting point rather than an answer, and what you save is what the sheet prints.
The uploaded file is never changed. It stays the document of record and the ROW QC sheet is a re-issue of it.
A resume that was printed and scanned has no text in it to take, only a picture of some. ROW QC says so plainly and gives you the fields to type into, rather than producing a blank sheet without explaining why.
Upload your own workbook and ROW QC reads the labels in it and tells you, cell by cell, which of its values fits each one and the token to paste in. Your file is not changed — what comes back is a list.
Before, a workbook with no {{tokens}} in it was simply refused, which is a dead end at the moment you are trying to put your own form into the product. Now a form with forty labelled cells comes back saying how many of them ROW QC can fill.
It does not rebuild your workbook into a ROW QC report, and that is on purpose: your form is the one your clients already accept, and its formatting, formulas and print areas are most of what makes it that. Those are exactly what a rebuild would destroy.
Opening Daily Approvals on a date where no report had been filed - a Sunday, a rained-out day, or any date you happened to land on - showed "No reports filed" and nothing else. Every report on the job waiting for your signature was invisible, on the one screen whose job is to stop approvals piling up.
The list of what is waiting is now shown whichever day you are looking at, oldest first, with each line opening that day. It is shown when there is nothing waiting too, so an empty list means what it says rather than leaving you to wonder whether the screen simply did not load.
The screen is called Daily Approvals now, which is what the menu has always called it, and it says plainly that this is where a signed report is approved.
The Chief's Roll-Up already collected every inspector's delays, safety notes and visitors into a table. Draft from Reports now puts them into the note that prints on the client report, so they are edited rather than retyped.
It adds to what you have written and never replaces it, and drafting twice is refused rather than doubling the text.
The daily production table now breaks additional pay items out from the mainline activities, the way the rest of that screen and the roll-up already did. Paid footage that no percentage counts is no longer sitting in the running order reading as a step in the sequence. An extra can be added from the Production screen itself rather than only from Project Setup.
Raising an RFI emails everybody on the project. The person who can actually answer it is usually not on the project at all - the operator's engineer, the designer, the client's rep - and there was no way to put the question in front of them except to read it off the screen and retype it into a mail client.
Send on any RFI emails it to one address, with a covering note if you want one. What they receive is read from the record, so it is what is filed here. Their answer still has to be typed back in to reach the job book.
A guest may read an RFI and may not send one out.
Both forms carried the groove angle, root opening, root face and thickness as numbers, and a box to write the name of a sketch in. The section is now drawn from those numbers, so the picture and the figures cannot disagree - change a dimension and the drawing changes with it.
If any dimension is missing it says which one and gives you a box to draw in by hand, rather than drawing a joint nobody specified. A U-groove, a J-groove or a compound bevel is named as something it cannot draw, because no field on either form holds the radius or the second angle it would need.
RQ-CTR-01 covers conditions, surface preparation, application, dry film thickness and the holiday test, and gives the adhesion test strips a sheet of their own to be taped to. Print it, fill it in with a pen, and scan it back in through Files.
It is not a second copy of the field joint coating record. That is what a scan writes; this is the document that goes in the book.
A bore can record its passes. Pilot, ream, swab and pullback each go on with their reamer size, progress and date - and onto your daily report for that date, which is opened for you if you have not started one. An HDD inspector's daily report now prints the day's drilling above the narrative.
Fixed: every bore was being filed against the first alignment segment. It was never asked and never shown. On a job with more than one spread that was wrong for every crossing not on the first, and it sent "Carry as alignment exclusion" to the wrong spread - moving a percentage on a spread the bore is not on. The segment is now chosen, and fills itself in from the entry station where that is unambiguous.
Bore Contractors is a new register: the company, the people to ring, the rigs, insurance and approvals. A bore still names its contractor as text; this is where the details live.
An approved timesheet can be exported onto your company's own workbook - the form your clients already accept, filled from the week rather than retyped into it. Everything you built in it stays exactly as it is: your formatting, your formulas, your print areas.
The address approved timesheets go to is remembered instead of being typed every week by every inspector. Both are set once by an account admin, under Reporting.
Standing on the right of way, Where am I on the Maps screen takes a position and answers with the station.
You have to mark which line on the map is the alignment first. A job's KML usually carries the access road, the workspace boundary and the crossings alongside the centreline, and picking one would answer off the wrong line.
It tells you how far off the line you are alongside the station, and past a few hundred feet it gives no station at all - out there the nearest point on the alignment is a real number and a useless one. It also tells you how accurate the fix was, because a station quoted to the foot off a fix good to a hundred feet is a lie about precision.
The north arrow can be put in any of the four corners of the drawing area. Symbol legend labels and BOM descriptions are measured and made to fit their column instead of running over the one beside them, and the BOM sizes its narrow columns to what is in them and gives the room back to the description.
The client now prints in the title block. It has always had a box for it and nothing ever filled it in.
rowqc.com has a section on the joint tag system - what a scan does, what the public QR page shows and what it deliberately does not - and the right of way behind the header. There is a picture slideshow ready for photographs when there are some to put in it.
A new Concerns screen under Environmental records the things on the right of way that work has to be planned around - a stream crossing, a wetland, a cultural or historic site, a landowner restriction, a permit condition that applies in one place - against the segment and the stationing they actually occupy, together with what has to be done about them.
Anybody whose own recent work is near one is told. They get an email and a notice in the app, and both lead with the required action rather than with the description, because somebody reading it on a phone in a truck acts on the first line or on none of it. It names the concern, its stationing, how far away it is from where that person was last working, and why they were sent it.
The distance that counts as near is set on each concern, so a stream crossing can warn from further out than one run of silt fence. It defaults to 500 feet.
The notice says which side the concern is on rather than assuming which way the crew is heading. A crew tying in, or back-filling behind the ditch, is working the other way up the line, and a warning that guessed wrong about direction would quietly go to nobody. A concern three hundred feet behind still matters: somebody hauls over it, or parks on it.
It is sent once for each person and each concern, not every day. A certificate expiry approaches and is worth a reminder; a stream crossing does not move, and a daily message about one is a message people stop reading. Changing a concern sends it again, so a correction to the required action reaches the people who already had the old one.
A concern is entered against a segment and a station range rather than as a description of where it is, which is what lets the app compare it to where a crew is working. Everybody on the job can read them. Environmental inspectors and chief inspectors enter them, and one entered in error is voided with a reason rather than deleted, the same as every other record here.
A Daily Inspection Report blank joins the form pack, and the RQ-DR-01 button on a daily report prints that day onto it: the weather, the quantities with their stationing, the four narratives, and the signature.
The signature is the one that was drawn on the pad, not a typed name, and the record digest prints under it together with whether it still matches the database. If it does not, the sheet says so in those words. A report that has not been signed yet prints no digest at all, because it has none.
A quantity prints the way it was recorded. A run of stationing shows the stations and the footage between them; a count shows the count and no stations, because a count is not a footage. Entries that were voided print on their own short table rather than being left off, since they were part of what was signed.
The blank is the half that was missing. A crew with no signal writes the day up on paper and types it in later, on the same sheet the app prints.
Printing a saved record onto a two-sided form stamped the job, the job number and the client on the front and left the back page header empty. It affected the site safety plan, the welder qualification, the bell hole report, the critical lift plan, the confined space permit and the PSSR.
Blank forms were never affected, and neither was anything already printed and filed - a back page is identified by its own document number, which was always there. Every sheet carries the job now.
Every blank form in ROW QC is now a real printed form. A ruled line to write on, a tick box to tick, and a log table with cells in it, rather than a screen laid out as a form. They are the forms used on Hot Pass QA/QC, rebranded and extended, and the whole pack is on the Forms tab and on each screen's own toolbar by its controlled number.
A form is now a fixed sheet, and what you see is what comes off the printer. The paper size is declared to the printer and each sheet is drawn to fit it, so a form cannot run over onto a second page with three lines on it. Thirty-two forms come to thirty-seven sheets, three of them landscape where a log needs the width.
Sixteen sheets came across from the Hot Pass pack: the WPS, the welder qualification and continuity log, the welding parameter record, the bell hole report, NCR, RFI, JSA, the hot work, confined space and critical lift permits, the SWPPP inspection, the BMP, dust control and waste logs, and a pressure test record that goes to the hold. Sixteen more were written in the same style for safety, environmental, quality, commissioning, corrosion and survey work, including a near miss report, a stand down with a crew sign-on, a SWPPP plan amendment, a permit condition compliance sheet, a final stabilisation inspection, an audit report, a pre-startup safety review, and five cathodic protection sheets.
Stamp a stack with the job and print as many copies as you want in one pass. There is still a box for an unstamped copy to hand to a subcontractor. A two-sided form prints as complete sets, so ten copies is ten fronts and ten backs in reading order.
Where a screen is covered by the pack, its Blank Form button now gives the pack sheet by its number, so there is one blank per form and not two. The screens that print a register rather than a form, like the contact list and the as-built index, are unchanged.
The WPS and the welder qualification carry no job header, on purpose: a procedure is qualified once and used across jobs, and a qualification belongs to the welder. Stamping either with one job would be a claim that is not true.
Press the form code on any record and the record prints onto its own blank, filled in. The tick boxes are ticked rather than the words written out again, so a printed record and one somebody completed by hand are the same document.
Tables print in their proper columns, a description keeps its line breaks, and the job and your company are stamped at the top. The file is named from the record, so saving it as a PDF gives something you can file rather than another copy of the blank.
A field the form asks for that ROW QC does not store is left blank rather than filled with something else. Several of the safety permits ask for more than the app keeps, and the pre-startup safety review's two checklists are answered with a pen. A blank line on a printed form is a line for somebody to complete, which is what it looks like.
A new Site Safety Plan screen at the top of Safety, and a three-sided form behind it. It is the plan the rest of the section is written under: the JSA works a task inside it, the permits are the ones it says are required, and the muster point on those forms is the one named here.
The emergency information is on the first side, not behind the scope. Somebody reads it out at a tailgate and somebody else reads it to a dispatcher, so the 911 address, the muster points, the nearest hospital with its distance and directions, the air ambulance landing zone and the first aid and AED locations are on the face of the sheet. The 911 address is recorded separately from the location description, because the address a dispatcher can find is not always the one on the drawings.
The second side carries key personnel, a twelve-row hazard analysis, the PPE this job requires, the permits it needs and the training behind them. The third carries site rules, spill, severe weather and line strike procedures, the subcontractors working under the plan, and an acknowledgement everybody signs.
The report an HDD inspector is asked for, printed from the crossing itself: entry and exit stations and angles, the pipe and the mud, the drilling contractor and rig, and a pass log with a line for the pilot and each ream.
The design length and the actual length print side by side, with the difference between them. That is the number argued about on a crossing, and it is usually settled from memory. A crossing with no frac-out prints "No" rather than a blank, because to a regulator those are different answers and only one of them was given.
A punch list printed every item on a single page however many there were. With forty items that page was over twenty inches long, so the printer broke it wherever it happened to land, usually through the middle of a row.
It now breaks into sheets the way the weld map and the daily reports already did, numbered straight through so item thirty-one is not a second item one, and the signature blocks print once at the end rather than on every sheet.
The offline page shown when ROW QC cannot reach the network had a Try again button that did nothing when pressed. The page looked completely normal, which is the worst way for it to be broken, and it is the page you see when something has already gone wrong. It works now.
30 August 2026
Turning the joint tag system off left the coating screen with a button that asked you to scan two tags the job does not have - so there was no way to record a field joint coat at all. That was a gap the on/off switch opened, and it is closed.
A job with tags off now picks the weld off its own weld map instead. Everything else is identical: the same dew point worked out from the air temperature and humidity, the same check that the steel was far enough above it, the same coating daily report opened for you. Nothing on the record, the exceptions or the coverage counts can tell which way it was entered.
Jobs that use tags are unchanged - scanning still works exactly as before, and still logs the scan.
Every form now has a Fill Form button, and every record a Form button. It opens the actual sheet with a box to type in where the blank line is: the same bands, the same order, the same paper. Press Save Form and it is recorded, then prints with what you typed in exactly the places you typed it.
The entry form you already had has not gone anywhere. A modal is quicker for a register; the sheet is right for a permit, where the order and the tick boxes are the procedure rather than a list of fields.
Sixteen of the thirty-five forms ran over letter paper, the worst at nearly 20 inches on a single sheet. On screen that looks like a long page; on paper the printer breaks it wherever it lands - through the middle of a signature block as readily as between sections.
The main cause was checklists whose text was crammed into the narrow numbering column, so every line wrapped to three. Those now get a column of their own, the way the fillable PDFs always did. The rest took page breaks in sensible places.
All 35 now fit, blank and fillable, across 92 sheets. Nothing was removed from any form; two tables print fewer blank lines a sheet and continue on the next.
Client Specs, Permits, Procedures, Drawings, Alignments and Isometrics each have a Transmittal button. It prints a covering sheet for everything on that register - who it is going to, why it is being issued, how it was sent - with every document listed at its current revision and a receipt to sign and return.
One sheet, many documents, one receipt. A signature against forty separate pages says nothing about whether the set arrived, which is the whole thing a transmittal is evidence of.
Nothing is written back to the register. Who you sent a drawing to and why belongs to the sending rather than to the drawing, and a drawing is issued more than once.
Commissioning, Audits, Survey Production, As-Builts, Engineering, Contact List and Technician Certifications now print blank for the field, print filled from a record, and download as fillable PDFs - the same as every other form. That takes the pack to 35 forms, all of them on the Forms tab.
The audit form carries a findings table, because an audit with one box for findings is an audit with one finding. Raise them as punch items from the audit record and the wording travels across word for word.
The sidebar has a Find a screen box at the top. Type three letters and the menu filters to what matches, with the section headings kept so you can tell a Near Miss under Safety from anything else with a similar name.
Sections open themselves while you are searching, and the count beside each heading is the number of matches under it rather than the number the section holds. Opening a screen clears the box, because arriving somewhere is the end of looking for it.
Like the collapsed sections and the light theme, what is typed there is not remembered between visits - this app stores nothing in your browser.
Badges on the Onboarding screen prints an ID card for everybody in the company: their photograph, their name, the company, and the job mark - the same mark the hard hat stickers carry, so a crew is not looking at two different marks for one job.
They are cut to CR80, 3.375 by 2.125 inches, which is the size every badge holder and lanyard clip is made for. Eight to a sheet.
Somebody with no photograph on file still gets a badge, with their initials in place of the picture. The people who most need identifying are usually the ones who joined this week and have filed nothing yet, and the modal says how many are missing a photograph so you can chase them.
The identifier on the card is derived and deliberately means nothing - it is stable for a person and readable over a radio, and worth nothing to whoever finds a dropped badge in a car park.
Every item on the punch list has a Form button. It prints that one item on a page: what was found at the top, and the rest blank for somebody to write on at the ditch, sign, and upload back through the new Files button on the same row.
What was FOUND is printed and what was DONE is not. A punch item whose wording changes between raising and closing is one nobody can audit, so the finding is never retyped. If a correction has already been recorded in the app it prints too, so the sheet is the record rather than an invitation to write it again differently.
The whole-list sheet is unchanged; this is a second document, not a replacement.
Audits, Observations, NCRs and RFIs each have a Punch button. It opens the punch item with the finding already in it, word for word, referenced by its own number, with the station and the craft carried across.
Who owns it and when it is due are still yours to set, because the punch list is the one place in ROW QC where an item aimed at nobody is refused outright.
An observation is the thing you raise before it becomes an NCR, and until now raising one wrote a row and told nobody. It now emails the job, and shows in the notification bell.
There is a Tell field on the form: leave it blank and everybody on the project is told, or pick a crew and only they are. Either way the person who raised it is not emailed about their own.
Editing an observation afterwards does not send it again, so correcting your own wording does not mail the spread twice.
Every entry on the project calendar has an Invite button. It downloads a standard calendar file that Outlook, Google Calendar, Apple Calendar and every phone will open - so an inspection date can be put in somebody's own diary, or forwarded to a contractor who is not on ROW QC at all.
The reminder set on the entry travels with it, so an entry with a month of notice reminds them a month ahead in their own calendar too. An entry set to give no reminder carries none, rather than one that fires on the day.
It works for the environmental entries as well as the project ones, and the file is named after the entry so a folder of them is readable.
Project Setup lists each segment with the HDD crossings on it, indented underneath and in station order, with the design length beside what was actually pulled and the difference between them.
The crossings are still recorded on the HDD screen; this is where they sit on the line. A 900 ft bore is not ordinary right of way, and somebody reading a segment length had no way to see how much of it goes underground.
Design against actual is the number most often argued about on a crossing, and both have been recorded since the beginning without ever being shown side by side. A crossing that came out to length is marked as such; one that did not shows the difference with its sign.
An NDE technician certificate or a permit with an expiry date now warns the job before it passes: 45 days ahead for a certificate, 60 for a permit. Everybody on the project gets it, because a lapsed certificate stops the technician working and a permit condition binds the whole spread.
It stops the day the date passes. A certificate that has already expired is a state you can see on its own screen, and mailing about it every day would only teach people to ignore the sender. Renewing the date re-arms the warning, so a certificate renewed twice is warned about twice.
The Calendar button on a permit or a technician certificate opens a calendar entry already filled in: the expiry date, a month of notice, and the permit's own conditions copied into the notes. That last part is the point. A date on its own is a diary note; "straw wattles across the ROW at 123+45" is what the crew has to do when they reach it, and it was previously readable only by opening the permit.
The entry keeps a link back to the record it came from, so somebody reading "Permit P-1042 expires" can get to the document rather than searching for it.
Two activities added to the standard list, between Pressure Testing and Clean-Up, which is where they fall on a line. Existing jobs pick them up when somebody presses Restore Defaults on Project Setup; nothing already booked moves.
Pipe, Fitting, Valve, Flange, Bolting, Gasket, Coating, Electrical, Instrumentation, Consumable or Other, beside the description. The description is still free text and still says what it actually is; the type is there so a question like "how much pipe has arrived" can be answered without reading every line. Deliveries already recorded keep no type and are unaffected.
Adding photographs now asks what they are OF - welding, coating, environmental, and so on - so a chief looking for the coating crew's field joints is not scrolling the whole job. A photograph attached to a record already knew, and is unchanged.
Welding Procedures says *Create new WPS* rather than *Add Record*, which is what authoring a procedure actually is.
Reader Sheets and NDE Procedures no longer offer a blank form. Both are produced by the third-party inspection company on their own paperwork, and a blank here would put a second version of a controlled document into the job book. Uploading their PDF is unchanged.
A new Forms tab, beside Reference under Documents and Drawings, lists all 28 blank forms with a Print and a Fillable PDF button against each. Printing a hot work permit used to mean finding the Hot Work Permit screen first, and printing fifteen for the door pocket of a truck meant doing that fifteen times.
Pick how many copies you want and they come out in one pass, each sheet stamped with the job at the top so a stack in a truck cannot end up filed against the wrong one. There is a box for an unstamped copy to hand to a subcontractor who is not on this job.
Nothing about the forms themselves changed, and there is no second set to keep in step: these are the same definitions that print filled from a record on each form's own screen, listed in one place rather than copied.
SWPPP prints a plan amendment record. It captures the date the change happened as well as the date the plan was amended, because the gap between the two is the thing a permit puts a limit on — commonly seven days. It also asks whether the site map was updated: a plan amendment that leaves the map showing the old controls is half an amendment.
Env Permits prints a condition compliance record. A permit is a list of conditions, and this is the sheet that shows each one being met — what it requires, how it is demonstrated, and where the evidence is. A second table tracks reporting and monitoring obligations with their next due date, because a missed submittal is the most common permit breach and the easiest to prevent.
Reclamation prints a final stabilisation inspection. Cover is measured along transects rather than judged from the truck, and bare ground and weeds are recorded beside it — a stand of noxious weeds is cover and is not stabilisation. The stabilisation criteria are ticked off, and there is a block for the agency or landowner release: coverage is not terminated until that is held, and a completed status without one is work finished rather than a job closed.
Env Calendar deliberately has no form. A calendar entry is a reminder, and the useful printed thing is the schedule — which is a list the screen and the job book already produce. A one-entry sheet would be paper for its own sake.
That is every environmental screen that warrants a form, and 28 forms in the app altogether.
Three environmental sheets, brought across from the Hot Pass forms pack:
Env Inspections now prints a SWPPP Inspection Report — the trigger, the rainfall, a line for every control on the site whether or not anything was wrong with it, discharge observations, corrective actions and the certification block.
BMPs prints a BMP Installation and Maintenance Log — one line per action rather than per control, so a control installed in March and repaired in May is two lines, which is what a regulator asks to see.
Air & Waste prints a combined Dust Control and Waste log — watering and surface stabilisation by area on one side, what left the site under whose manifest on the other, and a spill record.
Welding Certifications gained a continuity log on the back of the certificate. A qualification lapses if the welder goes long enough without using the process, and every weld made after a lapse is unqualified — the remedy being to cut them out of a system that is already tested and painted. Record a date each time the welder uses the process, and check the page before they come back after time off.
All four print blank for the field and download as fillable PDFs.
Reference under Documents and Drawings holds field sheets you look things up in rather than fill in. They carry no project information and nothing on them is stored, so a printed copy stays good until the standard behind it changes.
Pressure Testing — the test multiple and hold each code requires, the working-pressure formula, static head at 0.433 psi per foot and why a gauge reading is not the answer, flange class shell tests, and the limits a gas test is read against.
Pipe Data and Flange Bolting — dimensions, weight and water volume by schedule, and the bolt count, diameter and wrench size for a raised-face flange.
Material Specs and Grades — which pipe, fitting, flange, stud and nut specs belong together, the grades you will see, and what to check on an incoming mill certificate.
Every sheet says on its face that it is a navigation aid and not a specification. The line class, the project specification and the governing code decide what is correct for a job, and where a sheet here and the mill certificate disagree, the certificate is right.
Three permits a right of way runs on, and ROW QC had none of them. They are under Safety, and they are the same sheets Hot Pass publishes — the same bands, the same fields — rather than a second opinion about what belongs on a hot work permit.
Hot Work Permit carries the fourteen precautions answered Yes, No or N/A before work starts, a gas test log, the fire watch and the emergency block, and a closure block: the permit is not complete until that is signed.
Confined Space Entry Permit carries the space and its classification, the hazards, the isolations applied, atmospheric testing at every level top to bottom, the PPE and entry equipment, an entry log of who went in and came out, and the rescue arrangement.
Critical Lift Plan carries why the lift is classified critical, the crane configuration, the A-to-H load calculation ending in percent of chart capacity, the radii, the ground bearing, the rigging list and the weather limits.
All three print blank for the field and download as fillable PDFs, like every other declared form.
Engineering under Projects and Data records what engineering has issued for the job — the design basis, the calculations, the hydrotest engineering design, the stress work — with its revision, who issued it and whether it is approved. The document itself is attached under Files.
It is a register, not a calculator. The pressure test calculation is on Test Engineering under Pressure Testing.
Adding a new item on six screens filled the form in, said nothing, and saved nothing. It affected Raise a Punch Item, a calendar entry, an HDD bore, a glossary term, a schedule task and a test design. Editing an existing one always worked; it was only the "new" path.
Nothing was lost, because nothing was ever written. If you filled a form in and it appeared to do nothing, it did nothing — enter it again and it will save.
The punch list is worth calling out: this is why it has always been empty, and why a job book compiled with no punch items would not mark itself as a complete book. Both work now.
Test Engineering under Pressure Testing is now a calculator rather than a list. Enter the pipe, the governing code and the ground profile, and it works out what the test has to reach — then prints a plan for the field.
It calculates from the codes that govern pressure testing: 49 CFR 192 and ASME B31.8 for gas, where the class location sets both the design factor and the test multiple; 49 CFR 195 and ASME B31.4 for liquid; and ASME B31.3 for process piping, which works from design pressure and the allowable stress ratio at test temperature. MAOP is derived from the pipe when you have not entered it. The welding code the line was built to — API 1104, ASME Section IX — is printed on the plan as a citation; neither contains a test-pressure formula, so neither feeds the arithmetic.
The three elevations are the point. A gauge reads the pressure at the gauge. Enter the high point, the low point and where the deadweight sits, and the plan tells you what the gauge must read so the *high* point still makes the code minimum, and what the *low* point will then see against the SMYS cap. A test set from the gauge alone is under-tested at the top of a hill or over-stressed at the bottom, and neither shows up on the chart. Leave all three blank on a flat run and the plan says outright that the gauge is being treated as the reference.
Where something is missing, it prints nothing and says why. A grade the app cannot read produces no pressures at all and the plan states the reason, rather than printing zeros or empty boxes. A plan with a blank where the test pressure goes is one somebody completes at the ditch.
The plan also carries the pressurisation steps, the hold the code requires, the leak-check pressure, and any cautions the design raised — freezing below 35 F, a pneumatic test on a code that restricts it, a low point over the cap.
Two things worth knowing. Only a chief inspector can author a design; the increments and the hold at each step are yours, not the code's, and the plan says so where it prints them.
The old Test Engineering screen was an index of test packages. It held no records on any job, so nothing was filed there and nothing was lost.
Schedule is a new screen under Projects and Data. Put the contractor's schedule on it — task by task, with the dates they gave you — and it draws as a Gantt with what has actually happened underneath each bar.
A task tied to an activity works its own progress out. Point "Clear and grade" at Clearing and its percent, its start date and its finish come from the daily reports your crew already filed. There is no box to type a percent into, because there is nothing to type: the number is the one the job knows. Those tasks are marked auto on the screen. A task tied to nothing — mobilising, a client walk-down — is typed as before.
When a schedule gets reissued, the first one is kept. You can update the contractor's dates as often as they send them, and the original dates are held underneath and shown on the task. A schedule that quietly moves to meet the work makes every job look on time, which is the one thing a schedule must not do.
A finish date is projected only when there is enough behind it to project from. Below ten percent, or fewer than three days worked, the app says it is too early rather than giving you a date off the first morning. Where it does project, the overrun is drawn on the bar and counted in days.
Everybody on the job can see the schedule — the crew being measured against it are the people who most need to look at it. Only the owner and a chief can change it.
Download the blank template and the tasks come back in one press. It is a real Excel file with the columns ROW QC expects; send it to whoever keeps the contractor’s schedule, and import what they return. Import takes that file directly, or a CSV, or a schedule pasted in.
Dates come back the way Excel stores them, so a date typed into the sheet arrives as a date rather than as a blank. A date ROW QC cannot make sense of is left empty and the row still imports, and the screen says how many tasks came in with no finish date — a task quietly dropped would be worse than one you can see is incomplete.
Keep the schedule the contractor actually issued under Files, where it opens in the viewer. The import brings in the rows so they can be tracked against; it does not replace the document they sent.
Onboarding is a new screen under Projects and Data, for the owner and company admins. It holds the paperwork a person arrives with — resume, driver's licence, orientation certificate, drug screen, whatever your clients ask for — and the certifications that expire: CWI, OQ, API 1169, first aid, H2S.
A certificate with an expiry date is chased for you. ROW QC emails a warning before it lapses, to the office and to the person holding it, by default 30 days out and adjustable per certificate. There is nothing to remember and nothing to check: an expired card shows on the screen as expired, and one coming up shows how many days are left.
Somebody can be onboarded before they have an account. File their paperwork against the email address you invited, and it attaches to them when they sign up. That is the order onboarding actually happens in — the resume arrives before the account does.
Every document and every certificate is voided with a reason rather than deleted, like every other record in ROW QC, so what was on file at the time is still answerable a year later.
Job logos were added yesterday and the upload was refused every time. Fixed. The company logo, which uses a different path, was never affected — anything already uploaded there is untouched.
Cover Pages sits beside Spine Labels on the Progress screen. Print as many covers as you need, on card, for the front of a binder.
They can be numbered as volumes — Volume 1 of 3, Volume 2 of 3 — which is usually what an additional book means. Turn that off for plain spares, and give them a different title if a binder holds a subset: "Welding Records", "Pressure Testing".
A spare cover says nothing about what is inside it, deliberately. The job book's own cover records when it was compiled and how many signed reports and record sheets it holds. A spare goes in front of a book somebody assembles later — so it carries the job's identity and stops there. A cover claiming a report count it cannot know is worse than one that claims nothing, because it is the page a client reads first.
It is the same cover otherwise: the job name and number, AFE, operator, contractor and location, laid out exactly as the book's own, because it is literally the same one.
Water already logged where test water came from, under which permit, how much, and where it went. What it could not record was the test itself — the sample, the results, and the limits they were judged against.
It now has a full form: sample identification (number, date, time, who took it, where), source and authorisation, a thirteen-row analysis table with the parameters a crew actually measures on test water — pH, turbidity, chlorides, total suspended solids, iron, residual chlorine and the rest — each with its result, unit, limit and method, a table for treatment and additives, the discharge details, the laboratory and its report number, and signature lines.
The limit sits beside the result, because a number with nothing to judge it against is not a test — and the discharge is usually the permitted half, so an exceedance recorded here is the one somebody has to answer for.
Leave a parameter blank if it was not measured rather than writing a zero. A zero is a result.
Like every other controlled form in ROW QC it prints blank for the field, prints filled from a record, and downloads as a fillable PDF you can type into in any PDF reader. Lab reports still attach with Files.
Open a pressure test and there is a Blank Field Log button beside Print Field Log. It prints the sheet you take to the hold: one ruled line per reading, for the whole of that test’s required hold, with a column for the gauge, pipe and ambient temperature, initials and a note.
The lines are worked out from the test, not from a fixed number. A four-hour hold gets nine lines at half-hour intervals and a twenty-four hour hold gets twenty-five, so there is a line for every reading and no more — a sheet you run out of, or one you pad, is a log a reviewer stops trusting. Pick 15, 20, 30 or 60 minutes and it tells you how many lines that is before you print.
Elapsed time is printed; the clock is left for you unless the test already records when it started. The specification is written in elapsed time, and a clock time printed against a hold that actually begins two hours late is a sheet that argues with itself.
Fill it in with a pen, then enter the readings or upload the finished sheet against the test with Files — the columns are the fields the app stores, so nothing written on it has nowhere to go.
A new Calendar tab under Projects and Data, for everybody on the job.
Meetings, inspections, milestones, deliveries, time off — put them on the month grid and the whole crew sees them. Underneath the grid is the same month in date order, which is what you will actually read on a phone.
Your environmental dates are already on it. Anything on the Env Calendar shows on the same grid without being entered twice. Those entries still live on their own screen and open there — nothing was moved, copied or duplicated.
A chief schedules for anybody; an inspector schedules their own discipline. That is how an environmental inspector can put their own inspection dates on the calendar without being able to book the welding crew's week.
Entries can remind people, and the notice is per entry. A permit renewal wants a month's warning; a site meeting wants a day. Set it to 0 and it says nothing at all. The reminder goes to the people it concerns — an entry marked for one discipline does not nag the rest of the job — and arrives both as an email and in your notification bell.
Ranges are inclusive. "Off Monday to Friday" covers the Friday, and shows on all five days of the grid.
Removing an entry asks why, and keeps the record of it — the same as every other correction in ROW QC.
Every file you have uploaded now has a View button beside Open. It opens in ROW QC rather than in a browser tab, and what you can do there depends on what it is.
PDFs display page by page, with zoom and a page count.
Drawings can be marked up. Pick a tool, pick a colour, and mark the drawing:
Seven colours. Every mark records who made it and when, and the marks list shows all of them so you can find one without hunting for it on the page.
A mark is a correction, not a new file. Marking a drawing does not replace it and does not produce a second copy — the drawing on file stays exactly as it was uploaded, and the marks sit on top of it. Remove one and it stops showing; the record of it, and who made it, is kept. Nobody has to work out which of three files is the current one.
Marks land where you put them, on any screen. A mark placed on a laptop is in the same place on a phone, at any zoom, because it is stored relative to the page rather than in pixels.
You can remove your own marks; a chief can remove anybody's. The person at the ditch is who knows which weld it is, so marking a drawing does not go through the office.
Download Redlined PDF gives you a flattened copy with the marks burned in, for sending to somebody who does not have ROW QC. The drawing on file is unchanged.
The viewer has a Find box. Type a word and it tells you which pages carry it and how many times, and takes you to them — so finding clause 5.2 in a two-hundred-page specification is a search rather than a scroll.
A .docx opens as readable text, and the Find box searches it too. It is not a faithful copy of the formatting — for that, Download still gives you the original exactly as it was uploaded — but it means you can read a procedure or check a clause without leaving the app or waiting for Word to open.
A scanned drawing or a photograph of one opens in the viewer and can be redlined exactly like a PDF, which is what most marked-up drawings actually are.
29 August 2026
Open any form — the blank one from a record screen, or a record you have already filed — and there is a new Download Fillable PDF button beside Print.
It is a real fillable PDF. Every box on the form is a field: open it on a laptop, a tablet or a phone in any PDF reader, type into it, and save or print it. Print / Save as PDF beside it still does what it always did and gives you a flat sheet to fill in with a pen — both are there because both get used.
It is the same form. The PDF is built from the same definition as the printed sheet, so the bands, the ruled tables, the tick boxes, the sign-on lines and the form number in the footer are all the ones you already know. Nothing had to be redrawn, and nothing can drift out of step: change a form and both the printed sheet and the PDF change together.
A record you have already filed downloads pre-filled — with its values in the fields rather than printed on top of them, so you can still correct one before printing.
The project details fill themselves in. Project, job number and client come off the job rather than being typed onto every sheet.
Then the loop closes the way it always has: fill it in, and use Files on the record to upload the completed sheet back. That is what puts your signed paper into the job book.
Two deliberate details:
Signature lines are ruled lines, not boxes. A typed name in a PDF is not a signature. Sign it by hand on the printed sheet, or use the signature pad on a daily report — a box that looked like a place to sign, and carried none of that weight, would be worse than a line.
Every record screen has one, not only the eighteen controlled forms. A module without a designed form still gives you a tidy fillable sheet of its own fields rather than nothing.
Company report templates and Tokens you can use have moved off the Reporting screen and onto Project Setup, alongside the job logo.
They are there because that is where they can be read against a real job. The token list tells you which words you can type into your own spreadsheet and whether each one has a value — and on the Reporting screen it could only ever say "open a project to see". Now it always has one.
The token list starts shut. Press Show the token list when you are building a template; it is a reference for that job, not something you need on screen every time you open the page.
Which reports this company files is now shown in both places. It stays on Reporting because it belongs to the company rather than to any one job — and a company on its first day, with no project yet, still has to be able to set it. On Project Setup it says plainly, above the control, that changing it changes what every job in your company files under. It is not a per-job setting and it never was.
Who can change what has not changed, and is now stated where you can see it. A chief inspector runs the job and sees all of this; uploading a template, removing one, or switching which reports the company files stays with an owner or an administrator, and the screen says so rather than offering a control that would be refused.
Nothing was deleted and no template moved. If you had templates uploaded, they are the same templates, in a different place.
Until now a logo was set once for the whole company and every job printed it.
Project Setup now has a Job Logo panel. A logo uploaded there overrides the company logo on that job only — so a book going to one operator can carry their mark while the rest of your work carries yours. The panel says plainly which one is in force, and a job you have not given one to keeps inheriting the company's, exactly as before. Clearing a job logo puts the company one back; it never leaves a printed page with an empty corner.
Only a chief inspector or an administrator can set it, because which mark a job files under is a decision about that job — routing it through the office is how it never gets made.
And every job now has a mark whether or not anybody uploaded one. ROW QC draws one from the job's own name — its initials on a coloured plate — and the new Hard Hat Stickers button prints a sheet of them, twelve to a page, to cut out and stick on hats so anybody can see at a glance which job a crew is on. If the job has a logo, the stickers use that instead.
Two deliberate details:
The same job is always the same colour. The plate is worked out from the job name, so it does not change between sheets, between machines or between people — a crew who learn they are the green one stay the green one.
It prints on a mono printer. Only the colour changes from job to job; how dark the plate is never does, so the letters read in greyscale as well as in colour. Half the printers on a right of way are black and white.
Nothing on a printed report changed. A company that has uploaded no logo still gets the ROW QC mark at the top of its pages, as it always has — the drawn mark is for the stickers and for the setup screen.
Until now a notification only arrived as an email. If you were already in ROW QC you found out by checking your inbox in another window.
A bell at the top of the screen carries a count of anything unread. Open it and you get the list — who assigned you a punch item, who answered your RFI, who decided on your timesheet — each with a button that takes you to the thing it is about. Opening one marks it read; there is a Mark all read if you would rather clear the lot.
The email still goes. Nothing about that changed, and it should not: an inspector who is not in the app that day still needs telling.
Two things worth knowing:
The bell does not interrupt you. The count appears and pulses once. It never opens anything by itself, and it never covers what you are typing — nobody half-way through a daily report on a truck wants a box in front of them about a timesheet.
Invitations do not appear here, because an invitation goes to somebody who does not have an account yet — there is nobody to show it to. Those are still email only, and the Notifications screen under Projects and Data still shows every message the system has sent and whether it went, which is the screen to check when somebody says they never received one.
Daily Approvals has always told a chief how many reports across the whole job are waiting on a signature they can give, and how long each has been sitting. Now each of those lines is a link: click it and the screen jumps to that day.
Coming back from two days off used to mean typing three dates.
Open Items lists what is still unresolved on the job — a weld with no NDE result, a heat with no MTR, a report nobody signed. Each row now has an Open button that takes you to the screen where you can resolve it.
There is still no way to tick one off, and that is deliberate. Open items are not a task list somebody maintains — they are worked out from the record every time you look. An item disappears when the thing that caused it changes: record the NDE result and it is gone, for everybody, without anyone deciding it should be. A button that cleared them would let a real defect be dismissed from a list that goes into your client's report.
If something genuinely needs to be accepted rather than fixed — a deviation the client has agreed to — raise an NCR and record the disposition. That leaves who agreed and why on the record, which is the point.
Billing was visible to owners and admins. It is the owner's only now: an admin runs the jobs, and the card on file and what it is charged are the account holder's business.
Nothing else changed. Admins keep every other permission they had — Project Setup, Reporting, inviting people, the lot. This is one tab.
Not every job tags its joints. Project Setup → Options now has a switch for it, alongside man-hours, timesheets and equipment tracking.
Turning it off hides Joint Tags from the menu and does not delete anything — the batches you have minted, the tags already on steel and every scan in the log stay exactly where they are. Turn it back on and they are all still there.
It is on by default, on every job, which is what every job had before the switch existed.
Between Firing Line and Repairs, under the same Welding bar as Pipe Gang and Firing Line, measured in feet like the crews either side of it.
Existing projects pick it up from Project Setup → Activities → Restore Defaults, which adds what is missing and leaves anything you have switched off switched off.
Three Overview tabs are gone — NDE, Welding and Quality Assurance. They listed the screens under them, which the menu beside them already does. Safety, Pressure Testing, Corrosion, Environmental, Survey and Documents keep theirs.
Isometrics has moved to Documents and Drawings, beside Drawings, which is where somebody looks for one. Who may file one has not changed — it is still the welding crew's.
Commissioning is its own section now rather than a line under Pressure Testing, and PSSR has moved into it from Quality Assurance. PSSR is the walkdown that proves the scope is complete and commissioning is what follows; neither is a pressure test.
Import CSV is no longer offered on twelve screens where it was never used — Drawings, NDE Reader Sheets, NDE Procedures, Welding Procedures, Welding Certifications, Parameters, all five Corrosion screens and NCRs. Those records arrive as a PDF from somebody else, or get typed once. Export is untouched everywhere.
A turnover book does not only go to people who build pipelines. It goes to a landowner's solicitor, an insurer, somebody in the operator's office three years from now — and it is full of MAOP, HAZ, holiday test, cutback, pig.
The book now ends with a glossary, and Project Setup → Glossary is where you keep it. Press Load Standard Terms to bring in 44 pipeline definitions written for somebody outside the trade, then edit any of them into your own words, switch off the ones you do not use, or add your own.
A term can belong to one job. If an operator uses a word differently from everybody else you work for, add it on that job and it overrides the company definition there — and the book marks it, so a reader knows the meaning is particular to this line.
Loading the standard terms again later is safe. It adds only what is missing: anything you have rewritten stays rewritten, and anything you have switched off stays off.
A job book is not read front to back. It gets opened because somebody has a number in their hand — an NCR raised against a weld, a heat number on a mill certificate, an X-ray report that references a shot. The contents page tells you where the weld map starts. It does not tell you where W-014 is.
The book now ends with a reference index: every weld, joint, heat number, X-ray report, daily report, record and punch item printed anywhere in it, with the page it appears on.
> Heat numbers > H4471082 — 12, 13, 14
A number that appears on several pages is one line listing all of them, so tracing a heat through the book is one lookup rather than a search.
Stations are not listed, on purpose. The weld map is already printed in station order, so it is already the answer to that question, and an entry for every station would run to thousands of lines.
Untick Reference Index in the compile window to leave it out — like the chapter tabs, it is a finding aid rather than part of the record, so a book without it is not missing anything.
If you leave ROW QC open — and most people do, all day — the tab keeps running the version it loaded when you opened it. A fix published at lunchtime does not reach you until you reload, and until now nothing said so.
A bar now appears at the top when a newer version has been published:
> A newer version of ROW QC has been published. This tab is still running > the version it loaded. Reload to pick it up.
Reload picks it up. Not now dismisses it and stops asking — it comes back the next time you open the app, which is when you would have acted on it anyway.
It is a bar rather than a pop-up on purpose. It appears on a timer you did not ask for, and a dialog in front of somebody halfway through a daily report, about a change they did not request, is worse than the thing it is reporting.
Compile Job Book now opens with a line about the copy on file. If nobody has ever compiled this job's book it says so. If somebody has and nothing has happened since, it says when and by whom. And if the job has moved on, it says what moved:
> Last compiled in full 27 Aug 2026, 16:12 by Sam Ochoa. 8 reports signed, > 3 reports approved and 2 punch items since — the copy on file is out of date.
The counts are named rather than added up, because "12 changes" is exactly the question the line is meant to answer.
A partial compile does not count. Exporting only the punch list is a useful thing to do and it does not bring the job book up to date, so it leaves the line alone. What it does do is get recorded: the book now keeps a note of every compile — whole or partial, when, and by whom — so the question "who produced the copy we handed over in August" has an answer.
Changes are counted from the moment a compile started, not when it finished. A report signed while the book was building is not in that book, and counting from the finish would have quietly left it out of both.
28 August 2026
Pressing Compile Job Book did nothing. The button was live, the picker opened and the sections were counted correctly, and then the view sat on "Compiling…" with no error and no explanation. It had been that way since 8 August, and it was reported rather than found.
Four pieces of information the book displays — the punch list, the approved timesheet weeks, the count of open punch items and the total hours booked to the job — were being read while the book was assembled but never actually gathered for it. The first one reached stopped the compile dead. Nothing was wrong with the data and nothing was lost; the book simply could not be built.
It builds again, from the same button, with nothing to reinstall.
The book has always opened with a contents page. It listed the sections and not the pages they start on, and no page carried a number — so a client handed the binder had an index nobody could follow.
Every page now reads Page 12 of 63 in its footer, and every line of the contents gives the page its section begins on. A section spanning several sheets is listed at its first one. A section that produced no pages leaves the cell blank rather than printing a number that leads nowhere.
The numbers are in the pages themselves, so they survive into the merged PDF exported with attachments as well as into anything printed from the browser.
Two things a job book needs when it stops being a file and becomes a binder on a shelf.
Chapter tabs are divider sheets, one in front of each section, carrying the section number, its title and its one-line note, with a tab bleeding off the right edge so it can be found with the binder shut. Successive tabs step down the page rather than stacking, so a closed binder shows a staircase. The contents page points at the tab rather than at the sheet behind it, because flipping to the tab is what somebody actually does. A tab is counted in the page total — it is physically there — but carries no page number of its own: a divider stamped "Page 7 of 63" reads as part of the record instead of as furniture.
Tabs are ticked on by default in the picker and can be unticked like any other section.
Spine labels print the project name, number, operator and date range at either of the two common binder widths, four or three to a sheet, with the count you need as a number in a box. They are deliberately not part of the book: a label belongs on card, cut out and slid into a spine pocket, not numbered into the middle of the PDF a client is sent. So they have their own button on the job book toolbar, and building one does not disturb a book you have already compiled.
Alignments — the alignment sheet set, in sheet order. Found by station rather than by name, because that is how somebody looks for one: the match line says where a sheet hands over to the next.
Isometrics — iso drawings and their revisions, with the field and shop weld counts each one carries. Kept by the welding inspector rather than the office, because they are usually who finds out a revision has landed.
Test Engineering — the test packages and the limits they were engineered to: medium, test pressure, hold time, and who approved it. The test itself, with its field log, stays under Pressure Tests.
Water — test water from withdrawal to discharge. Source or destination, permit, volume, what was done to it, and whether it came back within limits.
Commissioning — what happens to the line after it passes: dewatering, cleaning and gauging, drying, purging, and the tie-in that hands it to operations. Each step is its own record, because each is accepted or rejected on its own. Drying records its dew point, since that is the number somebody will be asked for a year later.
Audits — internal, client, third party and regulatory audits: what was audited, against which standard, and what came out. Major and minor findings are counted separately, and a finding that becomes a non-conformance is raised as an NCR and referenced here rather than written down twice.
All six take attachments with Files, export to CSV and print like every other record screen.
Alignment sheets and isometrics have come off the Drawings type list, so each drawing now has one place it belongs rather than two. Nothing moved and nothing was lost — no drawing on any project had been filed as either.
On fourteen screens the Add Record button was drawn only for chiefs and administrators: NCRs, RFIs, Observations, all four Safety sheets, both Pressure Testing sheets and PSSR among them.
Anyone assigned to the job was always meant to be able to raise those — it is what the screens say, and what the database has always permitted. The button simply was not there, so an inspector who saw something worth writing down had to find a chief to write it. It is there now for everyone on the project.
Nothing became less private. The screens read by the crew and kept by the office — Contact List, Client Specs, Permits, Procedures, Drawings and the new Alignments — are unchanged.
There is a Daylight button at the foot of the sidebar, beside Sign Out. It turns the whole app light — dark text on a pale ground, for a truck window at noon. Press it again for Low light and the original palette comes back.
To start with it follows the device: a phone set to light mode opens light, one set to dark opens dark. The button overrides whichever it chose.
The choice lasts until the page is reloaded. ROW QC deliberately keeps nothing in the browser, so there is nowhere to store it that would not be a change of policy — worth knowing before you set it and expect it to stay set.
The printed job book does not follow the app. It is a document rather than a screen, and it prints the same whichever palette you happen to be working in.
Text sizes are on one scale throughout, so labels that used to differ by a pixel from one screen to the next now match.
Buttons, fields, tabs and list rows are all at least 44px tall — the size a thumb in a work glove can hit without aiming at it. Nothing was removed to make room; the targets around the same controls grew.
Twelve actions that void or delete something used to raise the browser's own grey box — the one headed "rowqc.com says", which cannot say much more than a line and on some phones opens at the top of the screen, nowhere near the button that was pressed.
They now ask inside the app, in the app's own type, with the destructive answer in red and the safe one already focused, so pressing Enter cancels rather than confirms.
Five of those questions are asked while a form is already open — saving an entry over one already filed, importing a tally, importing a module, turning a bore into an exclusion, and forgetting a stored signature. The question now appears over the form instead of replacing it, so the form is still there underneath and still holding what you typed.
Eighteen of the record forms — the WPS at 96 fields, the pressure test, the coating report — were one long run of boxes. They are now grouped under the same headings their printed version has always used, and each heading stays in view while you work down its section.
The short forms are unchanged. Every one of them is ten fields or fewer, and putting headings on those would have organised something already readable at a glance.
The two libraries that build a PDF are 707 KB, and they were downloaded every time anybody opened ROW QC — including the great majority of visits that never export anything. They are now fetched the first time somebody presses Download with Attachments on a job book, which takes about a fifth of a second on a working connection and does not happen twice.
Opening the app is now 262 KB over the wire rather than 501 KB. On a phone on a right-of-way, that is the difference worth having.
27 August 2026
The bars on the Progress screen are in the order a spread runs: ROW Staking, Clearing, Grading, Stringing, Bending, Ditching, Welding, Tied-In Footage, Coating, Lowering-In, Padding, Backfill, Pressure Testing, Clean-Up, Restoration. Bending, Tied-In Footage and Pressure Testing are new to the standard list.
Welding is one bar with its crews under it. The pipe gang and the firing line each keep their own bar, and repairs are counted beside them. The Welding figure above is the average of the two footage crews — a count of repairs is not a percentage of anything, so it is shown rather than folded in.
Additional pay item footage sits below a break, and is not counted toward completion. Double Ditching, Line Crossings, Fencing, Flowable Fill, Rock Shield, Silt Fence and Buoyancy Control are paid work, but none of them is a step the job has to reach the end of — so reading them in the same list as the mainline made a job look further behind than it was.
The same break is on the Chief's Roll-Up, where the day's production is now grouped rather than one flat list. In the Cumulative Workbook it is a Section column on the Progress sheets rather than a divider row — a drawn break row is counted by a spreadsheet, survives a filter as a stray and lands inside anything summed over it, whereas a column sorts, filters and pivots.
A job can add its own pay item. Project Setup → Activities → Add Pay Item: name it, say whether it is measured by station or counted, and it appears under Additional Pay Items. Restoring the defaults leaves it alone. It can be removed again as long as nothing has been booked against it; once something has, it is switched off rather than removed, so the footage already filed still has a name.
Nothing was reclassified that carried numbers. Tie-Ins stays a count of tie-ins and keeps every entry already booked against it; the new Tied-In Footage line is a separate measure.
One thing to do by hand: a job that already existed does not automatically gain the three new activities, because a new activity arrives switched on and would sit at 0% until somebody noticed. Project Setup → Activities → Restore Defaults adds them, and leaves whatever you have switched off switched off.
The list of tabs down the left had grown to the point where finding a screen meant reading all of it. It is now grouped under headings — Projects and Data, Documents and Drawings, Chief Data, Environmental, Materials Data, Field Data, Safety, NDE, Welding, Coating, Corrosion, Pressure Testing, Quality Assurance, Punch List.
The sections open and shut, and the one you are working in is already open. Follow a link from an email into a screen and its section opens with it. Open a second by hand and the first stays open — nothing snaps shut behind you. Every heading shows how many screens are under it, so a closed section still tells you what it holds.
Daily Report and Progress sit above the first heading and are never hidden.
The tab names are larger, bolder and brighter. They were mid-grey, which is comfortable enough at a desk and hard work on a laptop screen in daylight — and this menu is read outdoors at least as often as indoors. The section headings above them carry the difference in weight instead, so the list still reads as grouped rather than as one long column of shouting.
Which sections you left open is not remembered across a reload; you come back with whatever screen you land on opened, which is usually the one you wanted.
Nothing was removed. Every screen that was there is still there, and every link in a notification email still lands where it always did. Two things changed name, and they are the only ones worth knowing about:
What you see still depends on what you are on the job. A welding inspector gets nine headings rather than fourteen, and a section whose screens are all outside your disciplines does not appear at all rather than sitting there empty.
The Chief's Roll-Up builds one Excel file covering every discipline on a job. Eight of its sheets were being left out: Progress, Progress (counts), Unit Items, Gaps, Weld Statistics, Weld Exceptions, Bores and Bore Passes. They are in every workbook from now on.
They were not missing quietly. The workbook's Summary sheet listed each one as "not migrated on this database yet", so a file built yesterday said on its first page exactly what it did not contain. That was the honest behaviour and it is why nothing has to be re-checked — a workbook you already have is still a true account of what it claims to cover.
What the new sheets add is worth knowing before you read one:
Progress counts footage two ways. "Covered" is the length of ground actually worked. "Reported" is the sum of the daily entries, which counts ground worked twice as two. Where a crew went back over a reach, those two numbers differ, and the difference is printed beside them as re-work rather than folded into either. Most operator forms want the summed figure; the covered figure is the one that is true. You get both.
Gaps lists stationing in scope that nobody has reported, and separates the kinds: ground with worked reaches on both sides of it, which somebody has to go back for, from ground simply not reached yet.
Upload an .xlsx with {{tokens}} typed into its cells, assign it to a job, and ROW QC fills it in — your formatting, your formulas, your print areas, returned as the file you gave us with some cells filled. Remove one you no longer use.
Every button on that screen failed until today. The screen shipped this morning and the database behind it did not, so uploading, assigning and removing a template each ended in an error. Nothing was saved and nothing was lost; there was simply no way to complete any of it.
Removing a template still refuses while a job is filing under it, which is deliberate: the alternative is a job pointing at a template that is no longer there, discovered the next time somebody exports.
Pressing Void on a record — an NCR, an RFI, a WPS, a JSA, a drawing, a permit — failed with a database error about row-level security, naming a restriction on a row the person pressing it was plainly allowed to change. So did Void on a weld or a pipe joint on the weld map. Both work again.
Nothing was lost while it was broken. A void that failed simply did not happen and the record stayed exactly as it was; there is no case where something disappeared without saying so.
It is worth naming the cause, because refusing to delete anything is a promise this product makes. Records are voided rather than deleted so that a correction is part of the history instead of a hole in it — and voiding was the one thing that had stopped working, which meant there was no supported way to withdraw a record at all.
The way voiding a quantity, a weld, a joint or a file already did. The reason becomes part of the record and it is not optional.
Records voided before today carry no reason, because until now there was nowhere to put one. They are unchanged and still voided; only the explanation is missing, and it is missing honestly rather than filled in after the fact.
24 August 2026
Two shapes that both get called "a project inside a project", and they are not the same thing, so they behave differently.
A program groups several separate jobs under one engagement — a client with three pipelines running at once. It is a folder: it holds no reports of its own, and it never adds its jobs together. Each job keeps its own figures, side by side. Two pipelines of different lengths do not average into a percentage that means anything, and their footage does not add up to a distance, so neither is offered.
A spread is part of one job. It shares that job's stationing, segments and activity list, and reports against them — so the job's progress is its own work plus every spread's, counted as one line rather than added up. A stretch two crews both reported is still covered once. Each spread is measured against its own portion, so a spread that has finished everything asked of it reads as finished, not as a fraction of the whole line.
Put somebody on a program and they are on every job and spread inside it, in the same discipline, without being added three times. It does not run the other way: being on a spread gives nobody access to the job above it or to the spread alongside it.
Nothing changes for a job that has neither. Every existing project is a job, and reads exactly as it did.
The printed job safety analysis had room for eight steps, and a ninth had nowhere to go — which meant a hazard with no control written against it. It now continues onto as many sheets as the job needs, numbered straight through, the same way the crew sign-on already did.
20 August 2026
Cut a length off a tagged joint and Record Cut-Off now does the whole thing in one go: the joint's length comes down, the piece you cut off becomes its own joint, and the tag that was physically on that end moves with it. The stationing of everything ahead follows automatically, because it is worked out from joint lengths rather than typed.
The piece you cut off keeps the heat number of the joint it came from — it is the same steel and the same mill certificate, so it is copied rather than asked for. A joint with no heat number on it cannot be cut at all, because that would turn one untraceable joint into two.
The fresh bevel is left without a tag on purpose, and the exceptions list says so until somebody tags it. Until then it cannot be scanned into a weld, which is the point: the weld map should not be able to record a joint end nobody has identified.
Choosing Scrapped or Returned does not create a new joint, so cut-offs that never go in the line stay off your footage.
19 August 2026
Add an inspector to your company and they get an email saying so, from the company that invited them. Until now the invitation was recorded and the person was never told, so it only worked if you rang them afterwards.
The email names the address to sign up with, because the invitation is matched to it — sign up as anything else and it will not be found. It also says to click the confirmation link before signing in, which is the step that actually attaches the invitation to the new account.
Somebody already in your company who gets put on a job is told about the job instead, by name and job number. Somebody new gets one email, not two.
Invitations sent before today are not affected — the people already waiting were not mailed retrospectively.
Sign in after an update and ROW QC shows what has changed since the last time you were here — and only that. If two releases went out while you were away, you get both; if nothing has changed, you get nothing.
The version at the bottom of the menu opens the full history at any time.
It remembers per person, not per device, so signing in on the truck laptop and then on your phone does not show you the same notes twice.
The list of screens on the left collapses, from the button beside the page title. It gives a laptop back about an inch and a half of width for a weld map or a tally, and on a phone it hands back the whole block. The same button brings it back, and it stays where it is when the menu is hidden.
The menu reopens on its own when the page is reloaded.
The condition of an arriving delivery — accepted, damaged, short — is a receiving inspector's judgement, and the list offered no way to decline to make one. Every delivery filed through the form said Accepted, whether anybody had looked at the pipe or not. Not recorded is now the first choice and the one it starts on.
Recording a delivery now takes the MTR as a file. It used to ask for a storage path in a text box, which looked like the place to put the certificate and did not put a document anywhere.
Choosing a file uploads it and files it against that delivery, which is what the MTR button on the row has always done — so the traceability table, the joint tag record and the public tag page all agree that the certificate is on file. Attaching it afterwards from the row still works exactly as before, and a delivery is still recorded even if its MTR fails to upload; the app says which of the two happened.
Both are recorded against a fixed list — shrink sleeve, liquid epoxy, tape, wax, mastic — and the coating screen now offers that list instead of an empty box. Typing anything else was refused, and the refusal named a database constraint rather than the field it came from.
An uploaded file whose size was never recorded showed as 0 B — the app asserting a file was empty when it simply did not know. It now shows nothing at all, which is the honest answer, and a genuinely empty file still reads 0 B.
An empty file could also render as NaN undefined. Both came from the same place: the size is a 64-bit number and arrives as text, and the old check could not tell an unknown size from a zero one.
Open a tag batch's roll and there are two downloads on it.
CSV is the variable-data file a tag vendor prints from - the serial, its printed form, and the URL that goes inside the QR code - and it is what you send with a purchase order.
ZPL drives a Zebra printer directly. The printer draws the QR code itself, so there is no artwork to generate and nothing to go wrong between the serial in the database and the one on the tag.
A tick box exports only the serials not yet applied to a joint, so topping a batch up and printing again does not reprint tags that are already on the pipe.
Worth knowing which to use: a tag printed in the field on direct-thermal stock is rated about six months outdoors, where vendor-printed photo-anodised aluminium lasts years. Print in the field for tie-ins and repairs; order the spread.
18 August 2026
Every joint can now carry a foil tag with its own serial, and scanning that tag brings back everything behind it: the joint number, the heat, the size, wall and grade, where it sits in the line, its girth welds and their NDE results, and whether the mill test report for that heat is on file.
That last one is the point. A tagged joint with no heat number, or a heat number with no mill test report, is raised as an exception while the crew is still on site rather than found by an auditor a year later.
Scan the tag on the joint already in the ditch, then the tag on the joint going in. That single action writes the weld, its place in the weld map, and its line on today's daily report. Behind first, then ahead - the order is what tells the system which joint is upstream and which is downstream.
Because the order comes from the scans, the tally is worked out rather than entered: each joint begins where the last one ended, from an anchor. A cut-off re-stations everything downstream on its own.
The derived tally sits on the Weld Map screen beside the map, showing the drift between what was worked out and what was typed. Committing it shows you exactly which joints would move, and by how much, before anything is written. Joints on signed reports are listed and refused - a signed record does not get quietly re-stationed.
Where a GPS fix was taken at the scan, the tally is cross-checked against it, and welds sitting more than 25 feet from where the tally says are flagged. That disagreement is usually a joint length typed wrong or a joint missed altogether.
Field joint coating now attaches to the weld itself rather than to a stretch of stationing: product and batch, surface preparation, cutback, ambient conditions, film thickness and the holiday test. The dew point is worked out from the air temperature and humidity, and steel too close to it is flagged on the record rather than quietly accepted.
Typing the eight-character serial is the normal way in - it is short, it has a check digit, and it can be read off a muddy tag wearing gloves. Where a device has a built-in barcode reader the camera is offered as well, never instead.
A daily report is signed by the inspector who filed it, as before. Now a chief or assistant chief approves it with their own signature, and the approval carries its own date and its own digest.
An auditor can sign off on top of that. It is an attestation rather than a gate: a report approved by the chief is complete, and an auditor sign-off records that somebody outside the crew read it. Both dates show on the report and in the day's list.
Reports waiting on a signature you can give are listed at the top of the Reports screen, across the whole job rather than just today - an approval that sits for a week is how a job book ends up being assembled from memory at turnover.
Once approved, a report cannot be edited by anybody, including the person who approved it. If it needs correcting, an amendment is opened: the original keeps its signature, its digest and its place in the job book, and gains a pointer to the correction. The correction points back.
Both are readable, and the amendment shows field by field what changed - what the crew size was and what it is now, what the weather said and what it says now. The amendment takes its own report number, the original's with a revision suffix, so no two sheets in a binder ever share a number.
Quantities are deliberately not carried across. Correcting a quantity is done the way it always has been - void the wrong one on the original, which stays permitted after signing precisely for this, and file the right one on the amendment. Copying them would count the same footage twice on the progress dashboard.
17 August 2026
A job book compiled out of ROW QC now carries the version of the software that assembled it, printed small on the cover. That is the answer to the question an auditor asks when a document is challenged a year later: which build produced this, and can it be reproduced.
The same version is published at /version.json, so what is deployed can be checked from outside the app rather than taken on trust.
Dated entries, newest first, generated from a changelog in the repository rather than edited by hand. The point of generating it is that the page, the version printed on your documents, and the version the deployed site reports cannot disagree with each other - a test fails if they ever do.
Nothing before today has been written up. ROW QC was built before it had a changelog, and reconstructing a release history from memory would be inventing one.
Only user-visible change is listed — something you could notice using the product, or a resource we published. Off the list: infrastructure, documentation, test work, mail and DNS setup, and internal refactoring that changed no behaviour. There has been a lot of all of it.
Saying so matters, because a changelog that filters silently reads as a complete history when it is not. If you want to know whether something specific shipped or is planned, ask.
Release notes — rowqc.com/release-notes