{
  "schema": "apg.specifier-product-data.v1",
  "id": "RB-900",
  "revision": "ROUNDBAR-BALCONY-SPEC-R6",
  "geometryRevision": "GUARDS-RANGE-R3",
  "asOf": "2026-10-25T23:55:11.745458+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": "RB-900",
      "sources": [
        "SOURCE-TRACE.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "description",
      "status": "supported",
      "value": "Steel roundbar infill balcony development assembly:flat posts,drilled top/carrier rails,solid round spindles,INSIDE fascia strips and top wall ties at BOTH ends.",
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "intendedUse",
      "status": "provisional",
      "value": "External straight balcony guarding development candidate;actual jurisdiction/use/occupancy/exposure and supporting structure must be confirmed.",
      "sources": [
        "evidence/GEOMETRY.json",
        "../OFFICIAL-SOURCE-RESEARCH.json#ENGLAND-K"
      ],
      "owner": "Project designer",
      "claimType": "design target"
    },
    {
      "field": "exclusions",
      "status": "supported",
      "value": "No freestanding, Juliet, stair, vehicle barrier, fall-arrest anchorage or verified load rating; no order/manufacture release.",
      "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_05",
        "label": "Balustrade and guarding systems",
        "tableVersion": "Systems v1.43 July 2026",
        "productCode": null
      },
      "sources": [
        "../OFFICIAL-SOURCE-RESEARCH.json#UNICLASS"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "dimensions",
      "status": "supported",
      "value": {
        "nominalOverallWidthMm": 900,
        "datum": "Overall kit width including endplates",
        "topAboveProposedFloorMm": 1100,
        "carrierZmm": 50,
        "bottomInfillMm": 40,
        "fasciaRowsZmm": [
          -140,
          -320
        ],
        "lowerStripNormalRangeMm": [
          60,
          70
        ],
        "reportedMeshBoundsXYZmm": [
          900.0174033029355,
          70.00870175146788,
          1460.0127417575063
        ],
        "boundsNote": "Reported approximate exported bounds are not fabrication tolerances or exact nominal datums."
      },
      "sources": [
        "evidence/BOM.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "checked source geometry"
    },
    {
      "field": "sections",
      "status": "supported",
      "value": {
        "topRailMm": [
          60,
          10
        ],
        "flatPostsMm": [
          60,
          12
        ],
        "roundSpindlesDiameterMm": 20,
        "spindleCarrierMm": [
          60,
          10
        ],
        "insideFasciaStripHeightThicknessMm": [
          80,
          10
        ]
      },
      "sources": [
        "evidence/BOM.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "checked source geometry"
    },
    {
      "field": "variants",
      "status": "supported",
      "value": "RB900/1200/1500/1800 are nominal overall widths including endplates. This record applies only toRB-900;not a verified safe span.",
      "sources": [
        "SOURCE-TRACE.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "material",
      "status": "provisional",
      "value": "S275JR candidate; mill certificates required",
      "sources": [
        "evidence/BOM.json"
      ],
      "owner": "APG manufacturing owner",
      "claimType": "candidate steel;grade/form/certificates/weldability unverified"
    },
    {
      "field": "finishAndColour",
      "status": "missing",
      "value": "Project-specific steel corrosion protection/pretreatment/coating/thickness/colour/gloss/repair and exposure schedule remains unselected. Generic stainless wording in inherited family literature does not make RB stainless.",
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG manufacturing owner",
      "claimType": "product data"
    },
    {
      "field": "construction",
      "status": "supported",
      "value": "All joints welded; face welds across flat posts at INSIDE60mmface; round rods in drilled carriers with annular fillets. Weld envelopes not a qualified resistance approval. Solid20mm round spindles remain round through20.5mm drilled top/carrier holes. Source3mm-leg underside annular fillet envelopes and top annular gap fill/flush detail require WPS/resistance qualification. Flat post face welds use twin4mm-leg72mm balcony envelopes. No midrun rail splices.",
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG guard family owner",
      "claimType": "product data"
    },
    {
      "field": "interfaces",
      "status": "supported",
      "value": {
        "postsXmm": [
          100.0,
          450.0,
          800.0
        ],
        "spindlesXmm": [
          215.33333333333331,
          334.66666666666663,
          565.3333333333334,
          684.6666666666667
        ],
        "fasciaAnchorStationsXmm": [
          60,
          255,
          423,
          645,
          840
        ],
        "fasciaRowsZmm": [
          -140,
          -320
        ],
        "topEndplate": {
          "blankMm": [
            120,
            60,
            12
          ],
          "holeDiameterProxyMm": 14,
          "holeYmm": 30,
          "holeZmm": [
            1000,
            1060
          ]
        },
        "support": "Internal fascia strips atZ-140/-320 plus BOTH top wall end ties",
        "cutBlanks": [
          {
            "part": "Top rail",
            "qty": 1,
            "blankMm": [
              876,
              60,
              10
            ],
            "holesDiaMm": 20.5,
            "holesXmm": [
              215.33333333333331,
              334.66666666666663,
              565.3333333333334,
              684.6666666666667
            ]
          },
          {
            "part": "INSIDE lower face strip",
            "qty": 1,
            "blankMm": [
              876,
              80,
              10
            ],
            "holesXmm": [
              60,
              255,
              423,
              645,
              840
            ],
            "holesDiaMm": 14,
            "centreZmm": -140
          },
          {
            "part": "INSIDE lower face strip",
            "qty": 1,
            "blankMm": [
              876,
              80,
              10
            ],
            "holesXmm": [
              60,
              255,
              423,
              645,
              840
            ],
            "holesDiaMm": 14,
            "centreZmm": -320
          },
          {
            "part": "Spindle carrier",
            "qty": 1,
            "blankMm": [
              338.0,
              60,
              10
            ],
            "startXmm": 106.0,
            "holesDiaMm": 20.5
          },
          {
            "part": "Spindle carrier",
            "qty": 1,
            "blankMm": [
              338.0,
              60,
              10
            ],
            "startXmm": 456.0,
            "holesDiaMm": 20.5
          },
          {
            "part": "60x12 flat post",
            "qty": 1,
            "blankMm": [
              1450,
              60,
              12
            ],
            "centreXmm": 100.0
          },
          {
            "part": "60x12 flat post",
            "qty": 1,
            "blankMm": [
              1450,
              60,
              12
            ],
            "centreXmm": 450.0
          },
          {
            "part": "60x12 flat post",
            "qty": 1,
            "blankMm": [
              1450,
              60,
              12
            ],
            "centreXmm": 800.0
          },
          {
            "part": "Round infill",
            "qty": 4,
            "diameterMm": 20,
            "cutLengthMm": 1060,
            "centreXmm": [
              215.33333333333331,
              334.66666666666663,
              565.3333333333334,
              684.6666666666667
            ],
            "weld": "3mm LEG annular underside fillet,20.5mm drilledhole; top annular gap fill/flush finish and qualified WPS required"
          },
          {
            "part": "Left top endplate",
            "qty": 1,
            "blankMm": [
              120,
              60,
              12
            ],
            "holesDiaMm": 14,
            "holesZmm": [
              1000,
              1060
            ],
            "holeYmm": 30
          },
          {
            "part": "Right top endplate",
            "qty": 1,
            "blankMm": [
              120,
              60,
              12
            ],
            "holesDiaMm": 14,
            "holesZmm": [
              1000,
              1060
            ],
            "holeYmm": 30
          }
        ]
      },
      "sources": [
        "evidence/BOM.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "checked source geometry"
    },
    {
      "field": "nominalMass",
      "status": "supported",
      "value": {
        "netSourceModelMassKg": 54.05281058054752,
        "densityKgM3": 7800,
        "basis": "Sum of source component net volumes at nominal density;includes modelled weld envelopes. Actual site anchors/finish/packaging excluded;not measured packed mass."
      },
      "sources": [
        "evidence/BOM.json",
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "calculated prediction"
    },
    {
      "field": "performanceCriteria",
      "status": "missing",
      "value": "Adopt project occupancy, actions/combinations, point/infill/wind/vertical actions, serviceability and durability schedule; current numerical cases are analyst sensitivities.",
      "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.",
        "baselineMode": "Gross sections and rigid welds",
        "baselineCases": [
          "normal_top_0.74Nmm",
          "normal_top_1.5Nmm",
          "vertical_1kN_at_225.0",
          "vertical_1kN_plus_memberweight_at_225.0",
          "vertical_1kN_at_450.0",
          "vertical_1kN_plus_memberweight_at_450.0",
          "vertical_1kN_at_675.0",
          "vertical_1kN_plus_memberweight_at_675.0",
          "infill_500N_x215.3",
          "infill_500N_x334.7",
          "infill_500N_x565.3",
          "infill_500N_x684.7",
          "member_selfweight"
        ],
        "sensitivityMode": "Uniform-net-section and rotation-released infill bound",
        "meshRefinementStatus": "PASS under5percent",
        "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."
        ],
        "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 preliminary sensitivities and inherited numerical checks;no safe load,rated movement,physical result or independent approval."
      },
      "sources": [
        "evidence/CALCULATIONS.json",
        "evidence/FIXING-DEMANDS.json"
      ],
      "owner": "Responsible engineer",
      "claimType": "calculated prediction"
    },
    {
      "field": "geometryChecks",
      "status": "supported",
      "value": {
        "validSolids": 34,
        "volumeErrorMm3": 1.4528632164001465e-07,
        "collisions": [],
        "toolChecks": [
          {
            "name": "Fascia_0_60",
            "hits": []
          },
          {
            "name": "Fascia_0_255",
            "hits": []
          },
          {
            "name": "Fascia_0_423",
            "hits": []
          },
          {
            "name": "Fascia_0_645",
            "hits": []
          },
          {
            "name": "Fascia_0_840",
            "hits": []
          },
          {
            "name": "Fascia_1_60",
            "hits": []
          },
          {
            "name": "Fascia_1_255",
            "hits": []
          },
          {
            "name": "Fascia_1_423",
            "hits": []
          },
          {
            "name": "Fascia_1_645",
            "hits": []
          },
          {
            "name": "Fascia_1_840",
            "hits": []
          },
          {
            "name": "LeftTop_1000",
            "hits": []
          },
          {
            "name": "LeftTop_1060",
            "hits": []
          },
          {
            "name": "RightTop_1000",
            "hits": []
          },
          {
            "name": "RightTop_1060",
            "hits": []
          }
        ],
        "nominalGapMaximumMm": 99.33333333333337,
        "boundsXYZmm": [
          900.0174033029355,
          70.00870175146788,
          1460.0127417575063
        ]
      },
      "sources": [
        "evidence/GEOMETRY.json"
      ],
      "owner": "APG CAD owner",
      "claimType": "inherited source geometry checks;not rerun in R6"
    },
    {
      "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": "Two INSIDE fascia strip fixing rows plus BOTH handrail-height wall end ties. Actual substrate/geometry/edge distances/embedment/cure/torque and anchor selection unverified. Retain each correlated force AND moment vector by its real load case;do not assemble independent maxima into a fictional case.",
      "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/RB-900.step",
        "sha256": "02cee7540c7c4826268bba8228589230aad23fe39a985e405a5abb7c40d2c34b"
      },
      "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": "R6local data/clause/method/CAD/source studies provided;public roundbar draft download publication not yet 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": 13,
        "vectors": 156,
        "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."
      },
      "sources": [
        "evidence/CALCULATIONS.json",
        "evidence/FIXING-DEMANDS.json"
      ],
      "owner": "Responsible engineer",
      "claimType": "calculated demand only"
    },
    {
      "field": "massAndHandlingReview",
      "status": "provisional",
      "value": {
        "reportedKg": 54.05281058054752,
        "reviewFlag": "RB900 reported54kg confirmed against source component volume sum;review handling/transport/finishing. Whole-range valueengineering explicitlyLATER;no geometrychange.",
        "designChanged": false
      },
      "sources": [
        "evidence/BOM.json",
        "../SOURCE-CATALOG.json"
      ],
      "owner": "APG manufacturing/handling owner",
      "claimType": "calculated mass / review flag"
    }
  ],
  "scope": "Exact steel roundbar balcony only;no flatbar/aluminium/Juliet capacity transfer."
}
