{
  "schema": "apg.specifier-product-data.v1",
  "id": "HR-ST-900-35",
  "revision": "HANDRAIL-STEEL-STAIR-SPEC-R9",
  "geometryRevision": "GUARDS-RANGE-R3",
  "asOf": "2026-10-26T02:54:48.150033+00:00",
  "releaseStatus": "CHECKED_DRAFT_FOR_TECHNICAL_REVIEW_NOT_FOR_CONSTRUCTION",
  "NBSReady": false,
  "NBSStatus": "APG-owned structured draft; gaps prevent submission/use readiness. No NBS approval, listing or Chorus integration.",
  "fields": [
    {
      "field": "manufacturer",
      "status": "supported",
      "value": "Architectural Products Group Ltd (published business identity);exact manufacturing entity/factory address to confirm.",
      "sources": [
        "../SOURCE-CATALOG.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "published business identity only"
    },
    {
      "field": "technicalContact",
      "status": "missing",
      "value": null,
      "sources": [
        "No verified named technical contact in inspected variant sources"
      ],
      "owner": "APG business owner",
      "claimType": "product data"
    },
    {
      "field": "productCode",
      "status": "supported",
      "value": "HR-ST-900-35",
      "sources": [
        "SOURCE-TRACE.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "description",
      "status": "supported",
      "value": "35degree stair steel tubular wall handrail development assembly with welded saddle/stem brackets,wall plates and two returned ends. Returned ends carry NO support credit.",
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "intendedUse",
      "status": "provisional",
      "value": "Wall-mounted illustrative35degree stair handrail development candidate;actual jurisdiction,use/route,height,continuity,grip/clearances and substrate require project review.",
      "sources": [
        "evidence/GEOMETRY.json",
        "../OFFICIAL-SOURCE-RESEARCH.json#ENGLAND-K"
      ],
      "owner": "Project designer",
      "claimType": "design target"
    },
    {
      "field": "exclusions",
      "status": "supported",
      "value": "No guarding/barrier capacity,fall-arrest anchorage,level or stainless performance transfer. No freestanding/returned-end support or manufacture/construction approval.",
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "jurisdiction",
      "status": "missing",
      "value": "No actual project jurisdiction selected. England guidance researched only; Wales/Scotland/NI and overseas need their own review.",
      "sources": [
        "../OFFICIAL-SOURCE-RESEARCH.json#ENGLAND-K"
      ],
      "owner": "Project designer",
      "claimType": "product data"
    },
    {
      "field": "classification",
      "status": "supported",
      "value": {
        "systemCode": "Ss_25_60_05_35",
        "label": "Handrail systems",
        "tableVersion": "Systems v1.43 July2026",
        "productCode": null
      },
      "sources": [
        "../OFFICIAL-SOURCE-RESEARCH.json#UNICLASS-HANDRAIL"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "dimensions",
      "status": "supported",
      "value": {
        "nominalLengthAlongRailMm": 900,
        "angleDegrees": 35,
        "datum": "Nominal length along illustrative35degree rail,not straight tube cut length or exact mesh extent",
        "tubeCentreStandOffMm": 75,
        "wallClearanceMm": 53.8,
        "underGripStemClearanceMm": 56.3,
        "illustrativeHeightAboveRouteMm": 1000,
        "heightNote": "Study datum only;no accessibility/code-compliance height established",
        "reportedApproximateBoundsXYZmm": [
          745.093290636004,
          96.33865916038252,
          558.0780875445917
        ]
      },
      "sources": [
        "evidence/BOM.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "checked source geometry"
    },
    {
      "field": "sections",
      "status": "supported",
      "value": {
        "tubeODmm": 42.4,
        "tubeWallMm": 2.6,
        "bracketStemDiameterMm": 25,
        "wallPlateDiameterThicknessMm": [
          90,
          10
        ],
        "tubeAndElbowBlank": {
          "part": "Tube with2returned90degreeends",
          "ODmm": 42.4,
          "wallMm": 2.6,
          "straightLengthMm": 762.6,
          "returnStraightEachMm": 27.5,
          "bendCentrelineRadiusMm": 47.5,
          "elbowQty": 2,
          "weldedBendStockCompatibility": "47.5mm CLR geometry candidate based on DC Iron WB42; wall/grade of actual fitting must be matched; stainless elbow not assumed interchangeable."
        }
      },
      "sources": [
        "evidence/BOM.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "checked source geometry"
    },
    {
      "field": "variants",
      "status": "supported",
      "value": "35degree stair steel handrail nominal along-rail lengths900/1200/1500/1800mm at illustrative35degrees. This record onlyHR-ST-900-35;level and stainless need separate records.",
      "sources": [
        "SOURCE-TRACE.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "material",
      "status": "provisional",
      "value": "S275/S235 tube+S275 solid bracket candidates, certificate and welding compatibility required",
      "sources": [
        "evidence/BOM.json"
      ],
      "owner": "APG manufacturing owner",
      "claimType": "mixed candidate steel product forms;certificates/compatibility unverified"
    },
    {
      "field": "finishAndColour",
      "status": "missing",
      "value": "Project steel corrosion/coating/preparation/thickness/colour/gloss/repair/exposure schedule and tube vent/drain/finish sequence unverified. Generic inherited stainless cleaning text does not classify ST as stainless.",
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG manufacturing owner",
      "claimType": "product data"
    },
    {
      "field": "construction",
      "status": "supported",
      "value": "42.4x2.6mm tube with two90degree returned ends;welded/coped saddle/stem brackets and90x10mm wall plates. Source candidate47.5mmCLR bought-elbow geometry requires exact wall/grade/stock/WPS compatibility;no stainless-elbow interchange assumption. Returned ends carry NO support credit. No invented joint capacity.",
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "interfaces",
      "status": "supported",
      "value": {
        "bracketStationsAlongRailMm": [
          150.0,
          750.0
        ],
        "localPlateAnchorPitchMm": 64,
        "globalUpperMinusLowerAnchorVectorMm": [
          -36.70889192646695,
          0,
          52.425730834495475
        ],
        "anchorDatumNote": "64mm pitch is local to rotated plate,not global vertical spacing",
        "wallPlateDiameterThicknessMm": [
          90,
          10
        ],
        "holeDiameterProxyMm": 11,
        "support": "Wall brackets only; returned ends carry no support credit",
        "modelRootResultantPositionsMm": [
          [
            174.49468591494292,
            10.0,
            1012.3127814666476
          ],
          [
            665.985912488338,
            10.0,
            1356.4586432772753
          ]
        ],
        "rootResultantNote": "Model bracket-root resultants,not individual selected-anchor forces",
        "cutBlanks": [
          {
            "part": "Tube with2returned90degreeends",
            "ODmm": 42.4,
            "wallMm": 2.6,
            "straightLengthMm": 762.6,
            "returnStraightEachMm": 27.5,
            "bendCentrelineRadiusMm": 47.5,
            "elbowQty": 2,
            "weldedBendStockCompatibility": "47.5mm CLR geometry candidate based on DC Iron WB42; wall/grade of actual fitting must be matched; stainless elbow not assumed interchangeable."
          },
          {
            "part": "Wall plate",
            "qty": 1,
            "blank": "90diameterx10",
            "holesDiaMm": 11,
            "holeCentresVerticalMm": 64,
            "stationMm": 150.0
          },
          {
            "part": "Bracket stem",
            "qty": 1,
            "diameterMm": 25,
            "bendCentrelineRadiusMm": 50,
            "copingRadiusMm": 24.2
          },
          {
            "part": "Saddle",
            "qty": 1,
            "lengthMm": 50,
            "insideRadiusMm": 21.2,
            "thicknessMm": 3,
            "arcDegrees": 90
          },
          {
            "part": "Wall plate",
            "qty": 1,
            "blank": "90diameterx10",
            "holesDiaMm": 11,
            "holeCentresVerticalMm": 64,
            "stationMm": 750.0
          },
          {
            "part": "Bracket stem",
            "qty": 1,
            "diameterMm": 25,
            "bendCentrelineRadiusMm": 50,
            "copingRadiusMm": 24.2
          },
          {
            "part": "Saddle",
            "qty": 1,
            "lengthMm": 50,
            "insideRadiusMm": 21.2,
            "thicknessMm": 3,
            "arcDegrees": 90
          }
        ]
      },
      "sources": [
        "evidence/BOM.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "checked source geometry"
    },
    {
      "field": "nominalMass",
      "status": "supported",
      "value": {
        "netSourceModelMassKg": 4.386260972659891,
        "densityKgM3": 7800,
        "componentReimportMassKg": 4.386261207481167,
        "sourceRoundTripVolumeErrorMm3": -0.03010532062035054,
        "basis": "Source model mass;component reimport mass reconciles with reported volume roundtrip delta. Actual anchors/coating/packing excluded,not measured shipped mass."
      },
      "sources": [
        "evidence/BOM.json",
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "calculated prediction"
    },
    {
      "field": "performanceCriteria",
      "status": "missing",
      "value": "Adopt actual jurisdiction/use/route actions/combinations/deflection,grip/continuity/end treatment,height,wall/undergrip clearance,accessibility and durability criteria. Existing sensitivities are not adopted requirements.",
      "sources": [
        "evidence/CALCULATIONS.json",
        "evidence/CALCULATIONS.json"
      ],
      "owner": "Responsible engineer",
      "claimType": "product data"
    },
    {
      "field": "performanceEvidence",
      "status": "provisional",
      "value": {
        "analysis": "Linear elastic3D Euler Bernoulli sensitivities. No adopted code action combination/resistance schedule. No physical validation.",
        "mode": "3D curved member ideal clamped bracket roots; returned ends unsupported. Arc discretisation 12",
        "cases": [
          "wall_normal_line_0.74Nmm",
          "vertical_line_0.74Nmm",
          "wall_normal_line_1.5Nmm",
          "vertical_line_1.5Nmm",
          "along_wall_1kN_node0",
          "wall_normal_1kN_node0",
          "vertical_1kN_node0",
          "along_wall_1kN_node14",
          "wall_normal_1kN_node14",
          "vertical_1kN_node14",
          "along_wall_1kN_node15",
          "wall_normal_1kN_node15",
          "vertical_1kN_node15",
          "along_wall_1kN_node16",
          "wall_normal_1kN_node16",
          "vertical_1kN_node16",
          "along_wall_1kN_node30",
          "wall_normal_1kN_node30",
          "vertical_1kN_node30",
          "member_selfweight"
        ],
        "limitations": [
          "Ideal rigid welded joints/supports; actual anchors, plate prying, weld resistance/qualifications and local bearing/tube shell effects unverified.",
          "Saint-Venant torsion only; no warping, buckling or fatigue proof. Gross/net normal stresses are not a regulatory approval.",
          "Selfweight covers beam members only; no automatic corrosion/temperature/wind certification."
        ],
        "meshRefinementStatus": "PASS under5percent",
        "sourceLocalWallPlateAnchorGeometry": {
          "twoVerticalAnchorsSpacingMm": 64,
          "plateDiameterMm": 90,
          "point": "Root force/moment demands saved; stiffness idealised. Actual anchorage and plate-contact/prying must be designed. End returns not credited."
        },
        "globalAnchorVectorMm": [
          -36.70889192646695,
          0,
          52.425730834495475
        ],
        "datumWarning": "Source vertical pitch is local,whole assembly rotates35degrees",
        "fixingBasis": "Unfactored separate sensitivity cases; reactions at ideal restraints. Retain each correlated force/moment vector. Do not combine component maxima as a real load case.",
        "meaning": "Existing linear-elastic model sensitivities;no handrail/guarding rating,physical or independent verification."
      },
      "sources": [
        "evidence/CALCULATIONS.json",
        "evidence/FIXING-DEMANDS.json"
      ],
      "owner": "Responsible engineer",
      "claimType": "calculated prediction"
    },
    {
      "field": "geometryChecks",
      "status": "supported",
      "value": {
        "validSolids": 11,
        "volumeErrorMm3": -0.03010532062035054,
        "collisions": [],
        "toolChecks": [
          {
            "name": "Bracket0_bolt878",
            "hits": []
          },
          {
            "name": "Bracket0_bolt942",
            "hits": []
          },
          {
            "name": "Bracket1_bolt878",
            "hits": []
          },
          {
            "name": "Bracket1_bolt942",
            "hits": []
          }
        ],
        "boundsXYZmm": [
          745.093290636004,
          96.33865916038252,
          558.0780875445917
        ]
      },
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "inherited source geometry checks;not rerun in R9"
    },
    {
      "field": "testedResults",
      "status": "missing",
      "value": null,
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "Authorised test provider",
      "claimType": "tested result"
    },
    {
      "field": "independentVerification",
      "status": "missing",
      "value": null,
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "Competent independent checker",
      "claimType": "independently verified claim"
    },
    {
      "field": "tolerances",
      "status": "missing",
      "value": "No fabrication/installation/coating/fit tolerances accepted; model nominal dimensions only.",
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG manufacturing owner",
      "claimType": "product data"
    },
    {
      "field": "substrateAndFixings",
      "status": "missing",
      "value": "Wall brackets ONLY at exact source stations. Actual wall substrate/condition,edge/spacing/embedment,anchors,plate contact/prying,packing and installation access require design. Two64mm-pitch local plate anchor centres rotate with the assembly and are geometry,not selected anchor capacity. Keep each root force/moment vector correlated;returned ends have no support credit.",
      "sources": [
        "evidence/GEOMETRY.json",
        "evidence/FIXING-DEMANDS.json"
      ],
      "owner": "Project engineer and anchor designer",
      "claimType": "product data"
    },
    {
      "field": "installation",
      "status": "provisional",
      "value": "Draft hold-point sequence supplied separately; competent installation method and temporary edge protection/lifting plan required.",
      "sources": [
        "evidence/GEOMETRY.json",
        "INSTALLATION-MAINTENANCE-DRAFT.txt"
      ],
      "owner": "APG installation owner",
      "claimType": "design target"
    },
    {
      "field": "maintenanceAndCleaning",
      "status": "provisional",
      "value": "Inspect welds, corrosion, coating damage and fixings; isolate unsafe guard after impact/movement. Cleaning chemistry, intervals and repair system depend on selected coating and exposure; no interval or chemical compatibility claimed.",
      "sources": [
        "INSTALLATION-MAINTENANCE-DRAFT.txt"
      ],
      "owner": "APG technical owner",
      "claimType": "design target"
    },
    {
      "field": "durabilityAndWarranty",
      "status": "missing",
      "value": "No verified service life, exposure category, warranty terms or exclusions supplied.",
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG business/manufacturing owner",
      "claimType": "product data"
    },
    {
      "field": "environmental",
      "status": "missing",
      "value": "No product-specific EPD, recycled-content percentage, embodied-carbon assessment or end-of-life route verified. Steel recovery potential is not a quantified product claim.",
      "sources": [
        "No evidence in inspected source pack"
      ],
      "owner": "APG sustainability owner",
      "claimType": "product data"
    },
    {
      "field": "CAD",
      "status": "supported",
      "value": {
        "format": "STEP",
        "revision": "GUARDS-RANGE-R3",
        "filename": "evidence/HR-ST-900-35.step",
        "sha256": "011fb7648f5bfe36fb06eebe30334c3e58d4c701e335dcd60b23ea6026164013"
      },
      "sources": [
        "SOURCE-TRACE.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "drawings",
      "status": "missing",
      "value": "Nominal source STEP and cut-blank data supplied;no accepted production/installation drawing set or manufacturing tolerances.",
      "sources": [
        "evidence/BOM.json"
      ],
      "owner": "APG drawing owner",
      "claimType": "product data"
    },
    {
      "field": "BIM",
      "status": "missing",
      "value": "No native Revit/IFC object supplied or validated. STEP does not establish BIM delivery.",
      "sources": [
        "../SOURCE-CATALOG.json",
        "source pack inspection"
      ],
      "owner": "APG BIM owner",
      "claimType": "product data"
    },
    {
      "field": "literatureAndDownloads",
      "status": "provisional",
      "value": "LocalR9exact stairsteel handrail data/clause/method/STEP and source studies provided;no public handrail specifier download release performed.",
      "sources": [
        "SOURCE-TRACE.json"
      ],
      "owner": "Existing website owner",
      "claimType": "product data"
    },
    {
      "field": "origin",
      "status": "missing",
      "value": "Manufacturing country not established for this kit; do not infer from site badge.",
      "sources": [
        "No matching origin evidence inspected"
      ],
      "owner": "APG manufacturing owner",
      "claimType": "product data"
    },
    {
      "field": "commercial",
      "status": "provisional",
      "value": "Finished assembly price,availability and lead time require APG confirmation.",
      "sources": [
        "SOURCE-TRACE.json"
      ],
      "owner": "APG pricing owner",
      "claimType": "product data"
    },
    {
      "field": "generalEnquiryRoute",
      "status": "supported",
      "value": "enquiries@architecturalproducts.uk;general enquiry route,named technical engineer remains unconfirmed.",
      "sources": [
        "../SOURCE-CATALOG.json"
      ],
      "owner": "APG business owner",
      "claimType": "published contact data"
    },
    {
      "field": "correlatedFixingVectors",
      "status": "supported",
      "value": {
        "cases": 20,
        "vectors": 40,
        "schedule": "evidence/FIXING-DEMANDS.json",
        "basis": "Unfactored separate sensitivity cases; reactions at ideal restraints. Retain each correlated force/moment vector. Do not combine component maxima as a real load case.",
        "meaning": "Bracket root resultants,not individual anchor forces."
      },
      "sources": [
        "evidence/CALCULATIONS.json",
        "evidence/FIXING-DEMANDS.json"
      ],
      "owner": "Responsible engineer",
      "claimType": "calculated demand only"
    },
    {
      "field": "massAndHandlingReview",
      "status": "provisional",
      "value": {
        "reportedKg": 4.386260972659891,
        "reviewFlag": "Handling/packing/finish requires product-specific confirmation. RB90054kg flag belongs to another product. ValueengineeringLATER.",
        "designChanged": false
      },
      "sources": [
        "evidence/BOM.json",
        "../SOURCE-CATALOG.json"
      ],
      "owner": "APG manufacturing/handling owner",
      "claimType": "calculated mass / review flag"
    },
    {
      "field": "routeAndElbowCompatibility",
      "status": "missing",
      "value": "Illustrative35degree stair route; actual angle/nosing line must be measured. Qualified welded/coped saddle/stem/end return details, bought elbow compatibility, actual wall anchors/plate prying, tube vent/drain/finish sequence and site route/clearances. No handrail-to-guarding load capacity transfer. Global roots derived from rotation about (0,0,1000);local anchor pitch64mm projects to X/Z. Confirm actual actual stair route and nosing line/height/grip continuity/clearances and elbow grade/wall/geometry compatibility.",
      "sources": [
        "evidence/GEOMETRY.json",
        "evidence/BOM.json"
      ],
      "owner": "Project designer / manufacturing owner / responsible engineer",
      "claimType": "unresolved application/manufacturing criterion"
    }
  ],
  "scope": "Exact 35degree stair steel wall handrail;not guarding or stainless capacity;35degrees is illustrative,actual route must be measured."
}
