"""The Q.C. ITP template, ITP_Generation_Revised_2. Copied verbatim from the old build's src/js/itp.js line 4 (ITP_TMPL), which Q.C. took from the workbook ITP_Generation_Revised_2.xlsm (COP Template sheet). Starting an ITP freezes a copy of it into itps.template, so a later change here never alters an ITP already in use. Sections: n, t (title), page (WP Weld Parts, C Code, FA Final Assembly), sig (a QN # / remarks / PESCO Q.C. signature block follows the section), final (the last block, COP complete) and items. Items: n, t (title), code (the PESCO code), cust (the customer code), crit (acceptance criteria). """ from __future__ import annotations from typing import Any ITP_TEMPLATE: dict[str, Any] = { "ver": "ITP_Generation_Revised_2", "legend": "O = Observe R = Review A = Approve I = Inspect AU = Audit W = Witness (Hold) " "H = Hold NA = Not Applicable", "sections": [ { "n": "1", "t": "GENERAL FABRICATION and DATA", "page": "WP", "sig": False, "items": [ { "n": "1.1", "t": "Material Test Reports", "code": "R", "cust": "R", "crit": "MTR chemistry and mechanical properties meet PO/material spec; heat " "numbers on MTR match material received. (API Q1 5.5.3, 5.6.5 / ISO 9001 " "8.4.2, 8.5.2)", }, { "n": "1.2", "t": "Welding Procedures", "code": "A", "cust": "R", "crit": "WPS/PQR qualified per ASME IX and approved before use; current revision " "matches the weld map assignment. (API Q1 5.6.3 / ISO 9001 8.5.1)", }, { "n": "1.3", "t": "Welder Qualifications Records", "code": "A", "cust": "R", "crit": "Welder current on the qualified welder log for the process, position and " "material used; qualification not expired. (API Q1 4.3.2 / ISO 9001 7.2)", }, { "n": "1.4", "t": "QA/QC Manual", "code": "A", "cust": "R", "crit": "Manual reflects current API Q1 / ISO 9001 requirements and is the " "controlled, released revision. (API Q1 4.4 / ISO 9001 7.5.3)", }, { "n": "1.5", "t": "Weld Map(s)/Fabrication Drawings", "code": "A", "cust": "R", "crit": "Released revision used; as-built weld numbers, WPS and welder ID recorded " "on the map before the final documentation package is assembled. (API Q1 " "5.6.3, 5.6.5 / ISO 9001 8.5.2)", }, { "n": "1.6", "t": "Radiographic Testing and Reports", "code": "R", "cust": "R", "crit": "RT reports reference weld map location and heat number; results accepted " "to governing code/spec; technician currently certified. (API Q1 5.6.9.4 / " "ISO 9001 7.1.5, 8.5.2)", }, { "n": "1.7", "t": "Ultrasonic Testing and Reports", "code": "R", "cust": "R", "crit": "UT reports reference weld map location and heat number; results accepted " "to governing code/spec; technician currently certified. (API Q1 5.6.9.4 / " "ISO 9001 7.1.5, 8.5.2)", }, { "n": "1.8", "t": "Hydrostatic Testing and Reports", "code": "A", "cust": "R", "crit": "Test pressure and hold time meet code/spec; no leaks or pressure drop; " "gauges in current calibration. (API Q1 5.6.9.3, 5.8)", }, { "n": "1.9", "t": "Pneumatic Testing and Reports", "code": "R", "cust": "R", "crit": "Used only where hydrotest is not permitted by code/client spec; test " "pressure and hold time meet code/spec; mark NA if hydrotest performed.", }, { "n": "1.10", "t": "Insulation Application and Test Reports", "code": "O", "cust": "R", "crit": "Insulation type and thickness per spec; test reports (where required) " "meet the acceptance values in the spec.", }, { "n": "1.11", "t": "Nonconformance Reports (NCR/QN Log)", "code": "R", "cust": "R", "crit": "All QNs/NCRs from this build are dispositioned and closed, or carried to " "the customer as an open item before shipment; concessions are " "customer-approved. (API Q1 5.9 / ISO 9001 8.7)", }, { "n": "1.12", "t": "Export Packing Plan", "code": "R", "cust": "R", "crit": "Packing plan meets PO, ISPM-15 and destination country requirements.", }, { "n": "1.13", "t": 'Certified "As-Built" Data and Drawings', "code": "A", "cust": "R", "crit": "As-built drawings match the final fabricated configuration; all field " "changes/redlines incorporated and approved.", }, { "n": "1.14", "t": "Nameplate/Tagging Etching/Stenciling", "code": "R", "cust": "R", "crit": "Nameplate data matches the approved drawing/data sheet and code stamp (if " "applicable); stamped/etched by a qualified person.", }, ], }, { "n": "2", "t": "STRUCTURAL", "page": "WP", "sig": False, "items": [ { "n": "2.1", "t": "Structural Fit-up/Dimensional Check prior to Weldout", "code": "I", "cust": "R/AU", "crit": "Fit-up dimensions per approved drawing tolerance; heat numbers " "transferred from mill cert to cut members; welder ID/WPS recorded against " "the weld map before weld-out. (API Q1 5.6.5 / ISO 9001 8.5.2)", }, { "n": "2.2", "t": "Post Welding Dimensional Check", "code": "I", "cust": "R/AU", "crit": "Final dimensions within drawing tolerance; visual weld quality meets AWS " "D1.1 (or governing code) acceptance criteria.", }, { "n": "2.3", "t": "Interface Structural and ICP Dimensional Locations", "code": "I", "cust": "R/AU", "crit": "Interface/ICP dimensional locations within drawing tolerance; verified " "and recorded before release to the next department.", }, ], }, { "n": "3", "t": "PIPING", "page": "WP", "sig": True, "items": [ { "n": "3.1", "t": "Visual Quality Inspection", "code": "O", "cust": "R/AU", "crit": "Welds free of surface defects (undercut, porosity, cracking) per code " "acceptance criteria; weld map and heat numbers current.", }, { "n": "3.2", "t": "Post Welding Dimensional Check", "code": "O", "cust": "R/AU", "crit": "Dimensions and alignment per isometric/drawing tolerance.", }, { "n": "3.3", "t": "Ultrasonic, Radiographic and Magnetic Particle Testing and Reports", "code": "R", "cust": "R/AU", "crit": "NDE method and extent per code/spec; results reference weld map location " "and welder ID; NDE technician currently certified. (API Q1 5.6.9.4 / ISO " "9001 8.5.2)", }, { "n": "3.4", "t": "Final inspection/Hydrostatic test", "code": "A", "cust": "W", "crit": "Test pressure and hold time per code/spec; no leaks or pressure drop; " "witnessed where required by the PO. (API Q1 5.6.9.3)", }, ], }, { "n": "4", "t": "VESSELS", "page": "C", "sig": True, "items": [ { "n": "4.1", "t": "Seam/Joint Fit-up and Dimensional Check prior to Weldout", "code": "O", "cust": "R/AU", "crit": "Fit-up/gap/alignment per WPS and drawing; heat numbers transferred to " "shell/head components; welder ID/WPS recorded against the weld map.", }, { "n": "4.2", "t": "Prior to vessel closing Heads Fit-up and Weldout (Internal Inspection)", "code": "O", "cust": "H", "crit": "Internal surfaces, welds and attachments accepted before the vessel " "becomes inaccessible. Hold point justified: internal access is " "permanently lost after closure.", }, { "n": "4.3", "t": "Prior to Stress Relieving", "code": "O", "cust": "R/AU", "crit": "Vessel meets drawing configuration and code requirements before heat " "treatment; PWHT procedure/chart approved.", }, { "n": "4.4", "t": "Final Inspection/Pre-hydrotest", "code": "O", "cust": "H", "crit": "All welds, NDE and dimensional checks complete and accepted before the " "vessel is pressurized. Hold point justified: an unverified vessel " "presents a personnel-safety risk under test pressure.", }, { "n": "4.5", "t": "Hydrostatic Testing and Reports", "code": "A", "cust": "H", "crit": "Test pressure and hold time per ASME code/spec; no leaks, no permanent " "deformation; customer witness where required by the PO. (API Q1 5.6.9.3)", }, { "n": "4.6", "t": "Ultrasonic, Radiographic and Magnetic Particle Testing and Reports", "code": "R", "cust": "R/AU", "crit": "NDE method/extent per code; results reference weld map location, heat " "number and welder ID. (API Q1 5.6.9.4 / ISO 9001 8.5.2)", }, ], }, { "n": "5", "t": "INTERNAL COATING", "page": "C", "sig": True, "items": [ { "n": "5.1", "t": "Post Surface Preparation/Blasting", "code": "W", "cust": "W", "crit": "Surface profile and cleanliness (e.g., SSPC-SP/NACE) meet the coating " "spec. Witness point justified: surface condition cannot be re-verified " "once coated.", }, { "n": "5.2", "t": "Post Application of Primer Coat", "code": "W", "cust": "R/AU", "crit": "DFT within spec range; no holidays, runs or contamination before overcoat.", }, { "n": "5.3", "t": "Post Application of Intermediate Coat(s)", "code": "W", "cust": "R/AU", "crit": "Cumulative DFT within spec range; recoat window per data sheet met.", }, { "n": "5.4", "t": "Post Application of Top Coat", "code": "A", "cust": "R/AU", "crit": "Total DFT, color and finish per coating spec/data sheet.", }, { "n": "5.5", "t": "Holiday Testing", "code": "H", "cust": "H", "crit": "Holiday (spark) test at voltage per NACE SP0188/coating data sheet; zero " "holidays before service. Hold point justified: final acceptance test for " "lining integrity.", }, ], }, { "n": "6", "t": "EXTERNAL COATING", "page": "C", "sig": True, "items": [ { "n": "6.1", "t": "Post Surface Preparation/Blasting", "code": "W", "cust": "W", "crit": "Surface profile and cleanliness meet the coating spec. Witness point " "justified: surface condition cannot be re-verified once coated.", }, { "n": "6.2", "t": "Post Application of Primer Coat", "code": "W", "cust": "R/AU", "crit": "DFT within spec range; no holidays, runs or contamination before overcoat.", }, { "n": "6.3", "t": "Post Application of Intermediate Coat(s)", "code": "W", "cust": "R/AU", "crit": "Cumulative DFT within spec range; recoat window per data sheet met.", }, { "n": "6.4", "t": "Post Application of Top Coat", "code": "A", "cust": "R/AU", "crit": "Total DFT, color and gloss per coating spec/data sheet.", }, { "n": "6.5", "t": "Final External Coating Inspection", "code": "A", "cust": "R/AU", "crit": "Visual inspection (holidays, runs, mechanical damage) and DFT survey meet " "spec; touch-ups accepted before release.", }, { "n": "6.6", "t": "Holiday Testing Under Insulation (If Applicable)", "code": "H", "cust": "H", "crit": "Low-voltage holiday test per spec where insulation is applied over " "coating. Hold point justified: coating is inaccessible once insulated. " "Mark NA if not insulated.", }, ], }, { "n": "7", "t": "INSTRUMENTATION, ELECTRICAL and CONTROLS", "page": "FA", "sig": True, "items": [ { "n": "7.1", "t": "Verify Component Parts and Model Numbers to Specs/Data Sheets", "code": "R", "cust": "R/AU", "crit": "Model, range, materials and area classification match the approved " "instrument data sheet, cross-checked to the instrument index.", }, { "n": "7.2", "t": "Contractor's Inspection Records", "code": "R", "cust": "R", "crit": "Sub-tier inspection records complete and signed; sub-tier NCRs closed " "before acceptance. (API Q1 5.6 / ISO 9001 8.4)", }, { "n": "7.3", "t": "Calibration Verification โ€“ Test/Measuring Equipment Used", "code": "R", "cust": "R", "crit": "Megger, torque wrench and other test/measuring equipment used for " "acceptance are within current calibration; cal-due dates recorded on the " "inspection record. (API Q1 5.8 / ISO 9001 7.1.5)", }, { "n": "7.4", "t": "Verify Grounding and Design Documents/Specs", "code": "R", "cust": "R/AU", "crit": "Grounding installed per design/one-line drawing and NEC Article 250; " "ground resistance recorded.", }, { "n": "7.5", "t": "Megger / Insulation Resistance and Continuity Check of Cables", "code": "W", "cust": "R/AU", "crit": "Continuity end-to-end, cores correctly identified, insulation resistance " "within limits. (Ref: NETA ATS; cable test schedule)", }, { "n": "7.6", "t": "Static checks of control switches (as required)", "code": "O", "cust": "R/AU", "crit": "Switch actuation and fail-safe position verified against the loop " "diagram; set points and fail-safe action per data sheet. (Static check " "record)", }, { "n": "7.7", "t": "Verify Nameplate Layout, Lettering and Size", "code": "I", "cust": "R/AU", "crit": "Text, size, material and mounting per client labeling spec. (Nameplate checklist)", }, { "n": "7.8", "t": "Verify Wire Size, Terminations and Tagging", "code": "I", "cust": "R/AU", "crit": "Wire size per load and NEC Art. 310; terminations torqued; tags match " "wiring drawings. (Termination check sheet)", }, { "n": "7.9", "t": "Electrical Motor Testing", "code": "W", "cust": "R/AU", "crit": "IR, winding resistance and rotation within NEMA MG-1/NETA ATS limits. (Motor test report)", }, { "n": "7.10", "t": "Instrument loop checks", "code": "I", "cust": "R/AU", "crit": "Signal proven at 0/50/100% of range; alarms and trips actuate at set " "point per loop diagram/C&E. (Signed loop check sheets)", }, { "n": "7.11", "t": "Factory Acceptance Test (FAT)", "code": "W", "cust": "W", "crit": "All FAT steps pass per the approved FAT procedure; A-items cleared before " "shipment. (API Q1 5.6.9.3 / signed FAT report)", }, ], }, { "n": "8", "t": "FINAL ASSEMBLY", "page": "FA", "sig": True, "items": [ { "n": "8.1", "t": "Equipment Assembly, Mounting and/or Alignment", "code": "I", "cust": "R/AU", "crit": "Alignment within vendor/GA drawing tolerance; mounting hardware and " "anchor bolts torqued to spec. (Alignment record)", }, { "n": "8.2", "t": "Functional Testing and Reports", "code": "O", "cust": "R/AU", "crit": "All functions operate per the approved functional test procedure with no " "defects. (Functional test report)", }, { "n": "8.3", "t": "Full Operation Testing and Reports (PRESSURE UP CONNECTIONS)", "code": "O", "cust": "R/AU", "crit": "System holds test pressure with zero leaks at all connections per the " "approved test procedure. (ASME B31.3 ยง345 / operational test report)", }, { "n": "8.4", "t": "Stud Bolt & Nut Torqueing", "code": "I", "cust": "R/AU", "crit": "Torqued in pattern to the specified value with a calibrated wrench. (ASME " "PCC-1 / torque record)", }, { "n": "8.5", "t": "Stud Bolt Length & Grade", "code": "I", "cust": "R/AU", "crit": "Correct grade marks; minimum 2 threads past the nut. (ASME B16.5, " "A193/A194 / bolting checklist)", }, { "n": "8.6", "t": "Relief Valve(s) Set Pressure", "code": "I", "cust": "R/AU", "crit": "Set pressure verified per vendor data sheet / ASME Section VIII (or API " "526 for PRVs) on a calibrated test bench; seal/wire intact after test. " "(PRV test/certification record)", }, { "n": "8.7", "t": "Weir Nipple Installation", "code": "O", "cust": "R/AU", "crit": "Weir nipple size and orientation per P&ID and vendor requirement; " "installed per manufacturer instructions.", }, { "n": "8.8", "t": "Pressure Gauge Inspection", "code": "O", "cust": "R/AU", "crit": "Gauge range 25โ€“75% of span at normal operating pressure; gauge in current " "calibration. (ASME B40.100 / gauge list + certs)", }, { "n": "8.9", "t": "Regulator(s) Set Pressure", "code": "I", "cust": "R/AU", "crit": "Outlet pressure within the stated tolerance of the vendor data sheet. (Set-point record)", }, { "n": "8.10", "t": "Pressure Controller(s) Set Pressure", "code": "I", "cust": "R/AU", "crit": "Set point and control action per the approved instrument data sheet. (Set-point record)", }, { "n": "8.11", "t": "Flow Direction of all Valves, etc.", "code": "I", "cust": "R/AU", "crit": "Flow arrows and valve orientation match the approved P&ID. (P&ID walk-down checklist)", }, { "n": "8.12", "t": "Gasket Specification", "code": "I", "cust": "R/AU", "crit": "Gasket type, material, rating and size per spec; never reused. (ASME " "B16.20/B16.21 / gasket verification record)", }, { "n": "8.13", "t": "Valve Actuation", "code": "O", "cust": "R/AU", "crit": "Full stroke, travel time and fail position per the vendor manual/C&E " "matrix. (Valve stroke record)", }, { "n": "8.14", "t": "Nonconformance Check โ€“ Final Assembly", "code": "R", "cust": "R/AU", "crit": "No open QNs/NCRs from the assembly stage before release to Paint/Final " "Inspection. (API Q1 5.9)", }, ], }, { "n": "9", "t": "FINAL INSPECTION/ SHIPPING PREPARATION", "page": "FA", "sig": True, "items": [ { "n": "9.1", "t": "Verify Tagging/Markings are complete", "code": "I", "cust": "R/AU", "crit": "Everything tagged per the index; legible and permanent. (Client tagging " "spec, UG-116 / tagging checklist)", }, { "n": "9.2", "t": "Flange Face Protection", "code": "I", "cust": "R/AU", "crit": "All flanges protected, threaded connections plugged; lifting points and " "shipping restraints verified per the packing plan. (API Q1 5.6.8; PO " "packing spec / ISO 9001 8.5.4 / preservation checklist)", }, { "n": "9.3", "t": "Verify Punch List Items are complete", "code": "I", "cust": "R/AU", "crit": "All A-items closed; B/C items agreed in writing with the customer. " "(Client punch list procedure / signed punch list)", }, { "n": "9.4", "t": "Packing of Ship Loose Items", "code": "I", "cust": "R/AU", "crit": "Ship-loose items tagged, protected and listed on the packing list. " "(Approved packing plan, ISPM-15 / signed packing list)", }, { "n": "9.5", "t": "Final Pre-shipping Inspection", "code": "A", "cust": "R/AU", "crit": "Every ITP line signed off; no open holds or QNs. (API Q1 5.6.9.3, 5.7 / " "final inspection report)", }, { "n": "9.6", "t": "RELEASE TO SHIP (RTS)", "code": "A", "cust": "H", "crit": "Written release issued by PESCO QA and the client; QN register closed " "with all concessions customer-approved before shipment. (API Q1 5.7, 5.9 " "/ ISO 9001 8.6, 8.7 / signed RTS certificate)", }, { "n": "9.7", "t": "DATABOOK SIGNED OFF BY QA", "code": "R", "cust": "H", "crit": "Data book complete and indexed per PO requirements. (API Q1 4.5 / ISO " "9001 7.5.3 / signed data book)", }, ], "final": True, }, ], }