Source: https://guthlabs.ai/docs/instruments/bolt-group-eccentric-fastener-pattern-solver/implementation/

instrument implementation / implementation-contract

# Bolt Group / Eccentric Fastener Pattern Solver implementation

A source-bound implementation contract for Bolt Group / Eccentric Fastener Pattern Solver; deployment and executable qualification remain separate.

Status: **VERIFIED_WITH_ERRATA**Lifecycle: **implementation-contract**

## Binding contract

This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.

**Record owner**: Guth Instruments

**Lifecycle**: verified-with-binding-errata

**Evidence ID**: t6-099

**Effect**: Computation or source lookup only

## Input and validation requirements

The solver has an undefined-result failure for coincident bolt coordinates because the polar sum J becomes zero. It also has a convention-sensitive result: reversing the eccentricity sign or interpreting units differently reverses or rescales the torsional distribution and can change the critical bolt.

## Required corrections

````
[
  {
    "vector": "1,2,3",
    "field": "per_bolt_resultants/magnitudes (and J in v3)",
    "wrong": "near-side bolts 1000 N / far-side 2236 N (v1); [0,2000] (v2); J=4, 901.39 (v3)",
    "correct": "torsional force = (M/J)*(-y, x): near-side bolts carry 2236 N, far 1000 N (v1); [2000,0] (v2); J=Σ(x²+y²)=8, mags [559.0,559.0,250,250]-family recompute (v3)",
    "cause": "systematic: torsional shear direction transposed (F_t=(My/J,-Mx/J) instead of (M/J)(-y,x)) — physically backwards (bolts nearer the eccentric load must carry MORE); v3 additionally computes J as Σx² only"
  }
]
````

## Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

````
{
  "inputs": {
    "units": "N, mm",
    "bolt_coordinates_mm": [
      [
        50,
        50
      ],
      [
        50,
        -50
      ],
      [
        -50,
        50
      ],
      [
        -50,
        -50
      ]
    ],
    "applied_force_N": [
      0,
      -4000
    ],
    "eccentricity_mm": [
      100,
      0
    ]
  },
  "expected_outputs": {
    "J_mm2": 20000,
    "moment_Nmm": -400000,
    "direct_shear_per_bolt_N": [
      0,
      -1000
    ],
    "per_bolt_resultants_N": [
      [
        -1000,
        0
      ],
      [
        1000,
        0
      ],
      [
        -1000,
        -2000
      ],
      [
        1000,
        -2000
      ]
    ],
    "per_bolt_magnitudes_N": [
      1000,
      1000,
      2236.067977,
      2236.067977
    ],
    "critical_bolts": [
      3,
      4
    ],
    "critical_force_N": 2236.067977
  },
  "working": "n=4, so F_d=P/n=(0,-4000)/4=(0,-1000) N. J=4(50²+50²)=4(5000)=20000 mm². M=e_xP_y=100(-4000)=-400000 N·mm. For each bolt F_t=(M y/J,-M x/J)=(-20y,20x) N. Bolt 1 (50,50): F_t=(-1000,1000), total=(-1000,1000)+(0,-1000)=(-1000,0), magnitude=√(1000²)=1000 N. Bolt 2 (50,-50): F_t=(1000,1000), total=(1000,0), magnitude=1000 N. Bolt 3 (-50,50): F_t=(-1000,-1000), total=(-1000,-2000), magnitude=√(1000²+2000²)=√5000000=2236.067977 N. Bolt 4 (-50,-50): F_t=(1000,-1000), total=(1000,-2000), magnitude=2236.067977 N."
}
````

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/bolt-group-eccentric-fastener-pattern-solver/>)[02**Mechanism**](<https://guthlabs.ai/docs/instruments/bolt-group-eccentric-fastener-pattern-solver/mechanism/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/bolt-group-eccentric-fastener-pattern-solver/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche6/tranche6-results.json`

- `tranche errata record`
