Back to projects
Live System

Henry-Griffitts Custom Golf Fitting

Interactive Fitting Calculator & Distributor Order Routing

LaravelPHPMySQLCustom WorkflowsREST API
Fitting Profiles
2K+generated
Distributor Partners
40+connected
Routing Accuracy
99.9%
Configuration Combos
500+supported

Custom golf club fitting and equipment specification system built with interactive fitting calculations, distributor order routing, and custom product configuration. Translates biomechanical swing measurements into precise, orderable club specifications.

Architecture & System Design

A rules-engine fitting calculator sits between the questionnaire intake and the product configurator, decoupling recommendation logic from controllers. Confirmed configurations are routed to the correct distributor using a weighted, stock-aware algorithm.

Request Flow
Fitting Questionnaire
Biomechanical Calculation Engine
Club Spec Recommendation
Dependent-Option Configuration
Distributor Routing Algorithm
Order Confirmation
  • Rules-engine fitting calculator driven by swing speed, height, and wrist-to-floor measurements
  • Dynamic product configurator with dependent-option validation (e.g. shaft flex tied to swing tier)
  • Weighted distributor routing considering proximity, stock, and load balancing
  • Full audit trail retained for every fitting recommendation generated

Engineering Challenges

Encoding Fitting Logic Correctly

Problem

Club specification recommendations depend on multiple interacting biomechanical measurements that needed to match professional fitter standards.

Solution

Built a Specification-pattern rules engine decoupled from controllers, allowing each fitting rule to be tested and validated independently.

Result

Recommendations validated against professional fitter benchmarks with consistent, repeatable output.

Accurate Distributor Order Routing

Problem

Orders needed to reach the correct regional distributor based on proximity and live stock, with no manual dispatching.

Solution

Implemented a weighted routing algorithm scoring distributors by proximity, current inventory, and existing order load.

Result

99.9% correct first-time routing across 40+ distributor partners.

Configuration Dependency Rules

Problem

Certain configuration options (like shaft flex) are only valid for specific swing-speed tiers, and invalid combinations were slipping through.

Solution

Added a dependent-option validation layer that disables or hides invalid combinations at configuration time.

Result

Eliminated invalid configuration submissions entirely.

Core Features

Fitting Calculator Engine

Rules-based recommendation engine translating swing measurements into club specifications.

Clean Code

FittingCalculator — Biomechanical Rules Engine
1<?php
2
3namespace App\Services\Fitting;
4
5class FittingCalculator
6{
7 public function recommend(array $measurements): array
8 {
9 $shaftFlex = match (true) {
10 $measurements['swing_speed'] >= 100 => 'stiff',
11 $measurements['swing_speed'] >= 85 => 'regular',
12 default => 'senior',
13 };
14
15 $lieAngle = round(
16 (($measurements['wrist_to_floor'] - $measurements['height'] * 0.01) * 2) + 60,
17 1
18 );
19
20 return [
21 'shaft_flex' => $shaftFlex,
22 'lie_angle' => $lieAngle,
23 'club_length' => $this->clubLength($measurements['height']),
24 ];
25 }
26
27 private function clubLength(float $height): float
28 {
29 return round(35 + (($height - 68) * 0.1), 2);
30 }
31}