Logo

Cable Tool

Help & Documentation — Full Build Reference
Updated 2nd Apr 2026 ← Return to Tool

Start here

Cable Tool is a deterministic patch-lead length calculator with a full floor plan editor, rack builder, BOM generator, and patching assigner built in. This page covers every part of the current build.

What the tool does

Models a physical route between two endpoints using cabinet spacing, tray height/routing, and port positions — then outputs a realistic cable length for scheduling.

Outputs: "From", "To", route type, and length. Ready for Excel/Sheets.

Major modules

  • Patch Panel → Switch (WPT workflow)
  • Device → Switch (DC / DCIM workflow)
  • Floor Plan editor with tray drawing
  • BOM & Materials generator
  • Rack Builder
  • Patching Assigner with VLAN support
Most "wrong" results come from one of three things: cabinet spacing, tray routing, or endpoint selection. Set those correctly before scaling up.

Choose your workflow

Two calculator pages share the same layout engine but differ in their source endpoint.

CalculatorWhen to useEndpoints
Patch Panel → Switch (WPT) Traditional structured cabling — patch panels to switches, bulk schedules. Patch panel port → switch port
Device → Switch (DC) Server / appliance connectivity — device NIC or port to a switch. Device port → switch port
Bulk + Assigner Large schedules, systematic port-to-port patterns, import from spreadsheets. Ranges of either endpoint type
Floor Plan Visually position cabinets, draw cable trays, derive accurate cross-cabinet gaps. Physical layout → drives calculator

Quickstart

If you only read one section, read this.

1) Set cabinet layout

  1. Set Rack Height (U) and Number Of Cabinets.
  2. Set per-cabinet Gap (cm) — or use the Floor Plan to derive gaps automatically.
  3. Confirm cabinet names match your naming scheme.

Spacing is the biggest accuracy factor after routing choice.

2) Configure switches

  1. Pick Independent or Chassis (blades).
  2. Set port counts / blades and start U.
  3. Enable Switch ports start at 0 if your design uses 0-based labels.

Port numbering mismatch causes off-by-one errors everywhere downstream.

3) Patch and export

  1. Manual for one-offs; Bulk for schedules.
  2. Patching Assigner for systematic port-to-port patterns.
  3. Export cable list / schedule; export JSON to version the config.

Do 2–3 test runs before scaling to hundreds of cables.

Core concepts

Endpoints

  • Patch panel port — WPT workflow source
  • Device port — DC/DCIM workflow source
  • Switch port — destination on both workflows

Endpoints are validated against configured port counts. Missing endpoints produce no output.

Route composition

  • Vertical — U-position travel inside a cabinet
  • Horizontal — port offset / entry-side offset
  • Cross-cabinet — cabinet gap × number of cabinets crossed
  • Tray travel — up to tray height + along tray + back down
  • Slack — global extra and per-route additions
The routing path (internal vs via tray) is chosen per-run in Manual, per-batch in Bulk, and can be overridden in the Assigner. Assumptions apply slack consistently so all results are comparable.

Cabinet layout

Shared by all calculators, the Floor Plan, and the Rack Builder.

SettingWhat it controls
Rack Height (U)Default height of newly created cabinets. Individual cabinets can override this in the cabinet table.
Number Of CabinetsCreates (or removes) cabinets from the cabinet table. Increasing this also expands cabinet selectors throughout the UI.
Cabinet NameEach cabinet has an editable name. Used in output schedules and must match Bulk input names exactly.
Gap (cm)Centre-to-centre distance to the next cabinet in the sequence. The last cabinet always shows 0. Populated automatically when you Apply Floor Plan layout.
Length UnitsGlobal toggle between cm and inches. Affects all display values including Floor Plan labels.
Extra SlackAdditional length added on top of route slack — applied to all outputs globally.

Trays

Trays are named overhead routes. Add them in the Trays section and they appear as options in "Routing Path" selectors. When using the Floor Plan, tray lengths are measured geometrically and written back to the tray list automatically.

  • Each tray has a Name and a Length (derived from the floorplan or entered manually).
  • Pick a tray per-run in Manual, per-batch in Bulk, or globally in the Assigner.
  • Tray height (floor to tray) is set in Floor Plan settings and drives the "up and back down" component of tray routes.

Switch configuration

Switch config drives port grid creation and validation everywhere in the tool.

Independent switches

Add one or more standalone switches. Each has its own name, port count, start U, and cabinet assignment. Best for fixed 24/48/64-port switches.

  • Set Number of Independent Switches
  • Name each switch — names appear in Bulk and Assigner selectors
  • Set Ports per Switch and Start U

Chassis (blades)

A single chassis chassis containing multiple blades. Blade numbering and port-per-blade direction is controlled in Assigner settings.

  • Set Number of Switch Blades and Ports Per Blade
  • Assign the chassis to a cabinet and set Start U
  • Multiple chassis switches are supported across cabinets
Switch ports start at 0 changes display labels only — internal maths stays consistent. Toggle this to match your real-world port labels and prevent off-by-one errors in output schedules.

Rack Builder NEW

A physical device inventory for each cabinet. The Rack Builder is the source of truth for what is physically installed — switches, patch panels, cable managers, blanks, and custom devices.

The Rack Builder replaces the old "Switch Configuration" tab. Every device that will be referenced in Manual, Bulk, or the Assigner should be defined here first.

Adding items

For each cabinet, use the Rack Builder to add items at their correct U positions. Each item has:

  • Type — switch, patch panel, cable manager, blank, device, or custom
  • Start U — the U position it occupies (from top)
  • Height (U) — how many rack units it takes up
  • Template / preset — select from built-in presets (e.g. 24-port 1U patch panel, 48-port 1U switch) or define custom
  • Instance name — the label used in output schedules
  • Port count / zeroBased — for switch and patch panel items

Device presets

The tool ships with presets under assets/presets/devices/. These include common 1U patch panels and switches (24-port, GPU servers, etc.). Custom presets can be added to the same folder and become available via the template picker.

After populating the Rack Builder, devices appear in Manual's "source device" picker and switch port grids update automatically. Run the Rack Builder before starting cable calculations.

Device library

Define reusable device templates for the Device → Switch (DC) workflow. This is separate from the Rack Builder — it's a template catalogue rather than a physical placement.

Template fields

  • Template name — used in the DC page source selector
  • Total ports — port count used for the port grid
  • Device height (U) — used for vertical geometry

Best practice

  • Match template names to your BOM line items
  • Keep port counts accurate — they gate the port selectors
  • Export project JSON before editing large template sets

Project / Config

Name the configuration, manage quick saves, and export/import JSON snapshots.

  • Config Name — used in export file names and displayed in the header.
  • Quick Saves — store and recall up to several named configurations in the browser. Use before changing counts (cabinets, blades, ports) to avoid losing in-progress work.
  • Export JSON — full state snapshot for versioning or sharing with a colleague.
  • Import JSON — load a previously exported configuration. Also accessible via the file input at the top of the project panel.
Increasing cabinet or blade counts regenerates UI blocks and can overwrite un-saved work. Always quick-save before expanding a project.

Assumptions & constants

Applied globally to all route calculations. Change these to standardise across a project — not per-job.

KeyMeaningTypical impact
U_CMRack unit height (cm per U)Vertical travel
PORT_CMPort pitch (cm per port column)Horizontal travel
CROSSFixed add (cm) when crossing cabinet boundaryCross-cabinet travel
MAX_PPDefault patch panel size (24/48)Port grid + validation
SW_ZERO_BASEDDisplay switch ports 0..N-1 instead of 1..NNumbering display only
ROUTE_TRAY_SLACK_CMExtra slack for tray routes (bends, corners)Tray route totals
DEFAULT_GAP_CMDefault gap between cabinets when creating new onesCross-cabinet spacing

Manual Input

Interactive mode for one-offs, spot-checks, and visual route validation.

Connection parameters

FieldWPT pageDC page
SourcePatch Panel Cabinet / U / PortDevice template + port label
DestinationSwitch Name / Entry Side / Blade (if chassis) / Port
RoutingInternal or Via Tray + tray selector

Entry-side selector

The switch has a configurable entry side (left / right / centre). This adds an offset to horizontal travel. Pick the side that matches how the switch is physically cabled in your design.

Click port "bubbles" in the port grid sections to auto-fill cabinet/port fields. This is the fastest way to validate maths with real examples — avoids typos and instantly shows the visual route.

Port selection grids

Clickable grids eliminate manual port entry and drive the visual route instantly.

Patch panel / device ports

On the WPT page: patch panel ports, sized by MAX_PP or the device preset. On the DC page: device ports, sized by the selected template. Clicking a port updates the "From" field.

Switch ports

Generated from switch configuration — one grid per independent switch or blade. Shows 0-based labels when SW_ZERO_BASED is on. Clicking a port updates the switch port field and triggers a recalculate.

Visual route

A live SVG diagram of the calculated cable path. Use it to sense-check routing and explain results to others.

  • Immediately updates when any input changes.
  • Displays route type (internal vs tray), cabinet crossing points, and the component lengths.
  • Catches wrong cabinet selections quickly — the visual makes cross-cabinet routing obvious.
  • In the Floor Plan, the last-calculated route is also overlaid on the canvas in colour (green = floor plan route, amber = tray, cyan = centre).

Bulk Input

Paste many runs at once — ideal for schedule generation and importing from spreadsheets.

Bulk workflow

  1. Select Input Format (see formats below).
  2. Paste rows into the bulk input textarea.
  3. Set Routing Path (bulk) and tray (if used).
  4. Click Generate and review any validation warnings.
  5. Copy or export the cable list.

Input formats

FormatColumn structureUse when
Simple CabName, U, Port, SwitchName, Port Independent switches, one connection per row
Chassis style CabName, U, Port, SwitchName, Blade, Port Chassis switches with blade column
DCIM / device style Device name + port → switch + port DC page bulk operations

Excel / patching schedule import NEW

The Excel Import feature in the Assigner section allows you to upload an XLSX file containing an existing switch port map (e.g. an occupied-port schedule from a live site). The importer:

  1. Reads switch blocks and a legend from the XLSX.
  2. Identifies occupied ports per switch and blade.
  3. Computes free ports per VLAN/service and populates the Switch Port Map in the Assigner automatically.
  4. Shows a summary of imported results and any warnings.
The API endpoint /api/excel/parse handles server-side XLSX parsing. Port ranges are output as compact range strings (e.g. 1-3,5-6,9) ready to paste into VLAN port range fields.

To use: go to the Patching Assigner tab → scroll to the Excel Import section → upload your XLSX → click Import. Review the results table, then use the populated port ranges in the Switch Port Map.

Bulk assumes naming is consistent. If results look wrong: check cabinet names exactly match the cabinet table, switch names exactly match configured switches, and port numbering mode matches your input.

Bulk add-ons (extra calculators)

The Bulk section includes routing-toggle helpers for specific connection types:

TogglePurpose
MGMTManagement cabling route mode
CONSConsole cabling route mode
PDUPower distribution unit cabling
AECActive Ethernet copper
SM / MMSingle-mode / multi-mode fibre routing

A rack-count input drives derived cable count tables — useful for modelling a hall before the full assigner is populated.

Patching Assigner

Fast range-to-range assignment with patterns. Use when the schedule is systematic.

Patterns & directions

Port assignment direction

  • Low to high — ports assigned ascending (1, 2, 3…)
  • High to low — ports assigned descending

Port assignment pattern / mode

  • 1:1 (sequential) — port 1 → port 1, port 2 → port 2, etc.
  • Center-out — assigns from the physical centre of the switch outward to both sides simultaneously
  • Outside-in — assigns from both edges inward; the switch is split at midpoint into left and right halves, each filled toward centre
  • Offset — applies a fixed numeric offset to destination ports
  • Split — splits source across multiple switches or blades

Chassis-specific rules

Blade number direction

Controls the order blades are filled. Low to high fills blade 1 first; High to low fills the highest blade first.

Port assignment per blade

For center-out and outside-in patterns, the blade midpoint is the physical switch midpoint (e.g. port 24 on a 48-port blade). Left ports = 1–24; right ports = 25–48.

Distribution mode

Controls how ports are spread across multiple switches when more than one switch is assigned to the assigner:

  • Fill first — exhausts ports on the first switch before moving to the next
  • Round-robin — distributes one port at a time across all configured switches

VLAN port maps NEW

The Patching Assigner supports per-VLAN port allocation. Each switch or blade entry can have a VLAN map — a set of VLANs, each with an explicit port range. The assigner then:

  1. Builds a VLAN queue per switch/blade: an ordered sequence of {switchName, blade, port} tuples.
  2. For outside-in mode, splits each VLAN range into left and right halves at the switch midpoint, building separate queues for each side.
  3. Processes source ports in order, pulling from the VLAN queue that matches the connection's VLAN tag.

Port ranges follow compact notation: 1-4,6,8-10 = ports 1,2,3,4,6,8,9,10.

The Excel Import feature populates these VLAN port ranges automatically from an existing patching schedule.

If the assigner output is empty or shorter than expected, check that the VLAN port ranges cover sufficient ports and that the source port count doesn't exceed the VLAN queue depth.

Floor Plan FLOOR PLAN

An interactive canvas for physically laying out cabinets, drawing cable trays, importing a building plan as a PDF overlay, and deriving accurate cabinet gap distances for the calculator.

The Floor Plan is bidirectionally linked to the rest of the tool. Cabinets placed in the Floor Plan appear in the calculator, and gaps derived from their positions are written back as cabinet spacing values. Trays drawn on the canvas are written back as named tray routes with measured lengths.

Tools & modes FLOOR PLAN

Select tools from the toolbar at the top of the Floor Plan panel:

ToolWhat it does
PanClick and drag to pan the canvas. Also activated by holding Space.
Place CabinetClick on the canvas to place a cabinet at that position. Cabinets snap to a configurable grid.
Draw TrayClick to place tray waypoints; double-click or close the loop to finish. Each click creates a polyline segment. Trays snap to cabinet connection points.
ConnectDraw a connection between a cabinet and a tray segment (attaches a "drop line" for vertical runs).
MeasureClick two points on the canvas to measure the real-world distance between them (uses current scale calibration).
Select / MoveClick to select cabinets or trays; drag to reposition. Cabinet names and gap handles update live.
Scale CalibrateClick two known points, then enter the real-world distance to set the scale. Required for accurate measurements when importing a PDF background.

Zoom & pan

  • Scroll wheel to zoom in/out (centred on cursor).
  • Click + drag in Pan mode, or hold Space and drag in any mode.
  • The grid scales automatically with zoom level.

Placing & configuring cabinets FLOOR PLAN

Cabinets placed in the Floor Plan are linked to the cabinet list in the main configurator by name. The workflow is:

  1. Ensure the main configurator has the correct number of cabinets defined (and named).
  2. Switch to Place Cabinet tool and click positions on the canvas. Cabinets appear as labelled rectangles (23.75″ wide, 60 cm deep at default scale).
  3. Drag cabinets to fine-tune positions. Gap handles appear between adjacent cabinets — drag them to adjust spacing in 5 cm increments.
  4. Click a cabinet to see its config (name, U height, assigned rack config).

Row detection

The Floor Plan groups cabinets into rows automatically using a Y-position threshold (~0.8 m). Cabinets within 0.8 m of each other vertically are considered the same row, sorted left-to-right within each row. This drives the linear ordering used when syncing gaps back to the calculator.

Gap handles & spacing mode

In Spacing Mode, interactive handles appear between adjacent cabinets. Drag a handle horizontally (or vertically for same-column gaps) to adjust the centre-to-centre gap. The gap label updates in real time. Snap resolution is 5 cm.

Reference walls

A left reference wall (vertical line) and top reference wall (horizontal line) can be placed to measure cabinet-to-wall distances. Gap handles also appear between the wall and the first cabinet in each row/column.

Drawing cable trays FLOOR PLAN

Cable trays are drawn as polylines at a configurable height above the floor (the tray height setting). Each tray segment is labelled with its total length.

  1. Select Draw Tray tool.
  2. Click to place waypoints along the tray route. You'll see a preview line tracking the cursor.
  3. Hover near an existing tray endpoint to snap to it (junction dots indicate connection).
  4. Double-click or click a snapped close-point to finish the tray. The tray is named automatically and its length is calculated from the polyline.

Tray colours

Each tray path has a configurable colour (defaults to purple). Hidden trays render grey and non-interactive — useful when you need to draw a new tray on top of existing ones. Toggle Hide Trays in settings to enter overlay drawing mode.

Tray height & slack

  • Tray height from floor (m) — the physical height of the cable tray. Adds a "rise + return" component to every tray-routed cable.
  • Tray slack (cm) — additional allowance for bends, corners, and dressing. Added to tray-routed cable lengths on top of route slack.

Drop lines (cabinet-to-tray connections)

Use the Connect tool to draw a connection from a cabinet attachment point to a tray. This models the vertical drop from tray height down to the cabinet. Drop lines are shown as dashed lines on the canvas.

Scale calibration FLOOR PLAN

Before measurements mean anything, you need to calibrate the scale — especially important when working with a PDF background overlay.

  1. Select Scale Calibrate tool (or click the calibrate button in settings).
  2. Click the first known point on the canvas (e.g. one end of a scale bar on your floor plan).
  3. Click the second known point.
  4. Enter the real-world distance between those points in the prompt.
  5. The tool calculates pixelsPerMetre and applies it globally.
All tray lengths, gap measurements, and the Measure tool depend on accurate calibration. Re-calibrate if you zoom or resize the canvas window after importing a PDF.

The grid display updates to reflect the new scale — each cell shows its real-world size (metres or inches, matching the global unit setting).

PDF background overlay FLOOR PLAN NEW

Import a building floor plan, CAD export, or architect's drawing as a PDF and overlay it on the canvas to trace cabinet positions and tray routes accurately.

Importing a PDF

  1. In the Floor Plan settings panel, click Choose PDF / Image file.
  2. Select a PDF or image file from your computer. The file is rendered using PDF.js (up to 2048 px on the longest dimension).
  3. The overlay appears on the canvas. Use the controls to adjust its position, scale, rotation, and opacity.

Overlay controls

ControlFunction
Scale sliderResize the PDF overlay relative to its base size. Combine with calibration to get an accurate fit.
Rotation sliderRotate the overlay in degrees. Useful when a scanned plan isn't perfectly aligned.
Opacity slider0–1 opacity control. Reduce opacity so the overlay doesn't obscure your cabinet placements.
Edit Mode toggleWhen on, the overlay becomes draggable (blue border). Drag to reposition it on the canvas.
Visibility toggleShow or hide the overlay without unloading it.

Workflow: trace from a floor plan

  1. Import the PDF and set opacity to ~0.45.
  2. Use Scale Calibrate against a known dimension on the plan (scale bar, grid, room dimension).
  3. Resize and position the PDF overlay to match. Enable Edit Mode and drag the overlay to align it.
  4. Switch to Place Cabinet and click to position cabinets on top of the floor plan room/hall markers.
  5. Draw trays along the cable tray routes shown on the plan.
  6. Apply the layout back to the project.
The PDF is stored in browser IndexedDB (not localStorage) to support large files. It persists between sessions and is restored automatically when you reopen the tool.

Syncing floor plan to project FLOOR PLAN

The Floor Plan and the main calculator are linked. Sync happens in two directions:

Main → Floor Plan

When you change cabinet count or names in the configurator, the Floor Plan's cabinet list is updated to match. New cabinets appear at a default position; existing ones retain their placed positions.

Floor Plan → Main (Apply Layout)

Clicking Apply Floor Plan Layout writes cabinet gap distances (derived from their world positions) back to the cabinet table in the main configurator. Trays drawn on the floor plan are also synced back as named tray routes with measured lengths.

Row ordering and gap logic

When applying to the project, cabinets are ordered by their floor plan position (top-to-bottom rows, left-to-right within each row). The gap written for each cabinet is the centre-to-centre distance to the next cabinet in this linear sequence. Cross-row transitions use a configurable row gap.

The Apply Layout button does not reorder the cabinets in the project — it preserves the order in the cabinet table and updates only the gap values. If cabinet names don't match between the floor plan and the configurator, gaps for unmatched cabinets will not be updated.

SU Configurator (Scalable Units) FLOOR PLAN NEW

An SU (Scalable Unit) is a predefined cabinet group that repeats as a unit — for example, a standard 4-cabinet compute row with a fixed rack config. SUs let you deploy a repeating layout across multiple rows without re-configuring each row manually.

Creating an SU template

  1. In the SU Configurator panel, click New SU Template.
  2. Name the template and define its slots — each slot is a cabinet with an assigned rack config (from the rack configs list).
  3. Set the rows this SU applies to. Rows can be specified as a list (A, B, C) or a range (A-F).

Deploying an SU

  1. Select a template and click Deploy.
  2. The tool checks which target rows already exist in the floor plan.
  3. For each target row, cabinets are placed (or matched by name) and assigned the rack config from the corresponding SU slot.
  4. Existing cabinets in the row are overwritten with the SU layout.
Deploy replaces existing cabinets in the target rows with the SU layout. Export your project JSON before deploying into an existing layout.

Rack configs

Rack configs (used within SU slots) define a named cabinet configuration — switch type, patch panel layout, cable management — that can be applied to any cabinet in the floor plan. Edit rack configs in the Rack Configs section of the Floor Plan settings.


Power Load Letter NEW

A server room capacity planning tool that models device power consumption per rack, calculates IT and facility loads, and exports a professional PDF load letter for client delivery or M&E design.

Access it via the Calculator dropdown at the top of the tool — select Server Room Load Letter.

The Load Letter tool is backed by its own API and database (/loadletter-api). It requires the API container to be running in self-hosted deployments. The device library is shared across all projects and is admin-managed.

Projects

Each engagement is a project. A project stores the client name, site name, racks, and all rack items. You can have multiple projects and switch between them. Projects are saved server-side and persist across sessions.

  • New project — creates a blank project with a name you choose
  • Export project — downloads the full project as a JSON file for backup or sharing
  • Import project — restores a previously exported JSON
  • Delete project — removes all racks and items permanently

Device library LOAD LETTER

The device library is a shared catalogue of hardware with known power figures. Each device entry contains:

FieldMeaning
Vendor / ModelMake and model string used when searching and displaying in racks
CategoryDevice type (server, switch, storage, PDU, UPS, etc.)
RU HeightRack units the device occupies — used for RU consumption tracking
Typical wattsExpected real-world idle/typical draw
Max wattsPeak/nameplate draw — used for worst-case load calculations
Confidence / SourceNotes on where the power figures came from and how reliable they are
Adding, editing, and deleting devices requires admin login. Regular users can search and use the device library but cannot modify it. This protects shared power figures across all projects.

Search the device library by vendor or model name. Select a device to add it to a rack — quantity and U position can be set at the time of adding.

Building racks LOAD LETTER

Within a project, add as many racks as the design requires. Each rack is named and holds an ordered list of devices.

  • Devices are displayed top-to-bottom matching the physical rack layout (highest U at top).
  • Each rack shows its typical kW, max kW, and RU used pulled from the report cache.
  • Items can be repositioned by U, have their quantity changed, or be deleted individually.
  • The rack view updates totals live as items are added or removed.
Devices are added from the shared device library — you can't enter ad-hoc wattages directly. If a device isn't in the library, an admin needs to add it first, or use the closest equivalent and note the variance.

Summary & report LOAD LETTER

The summary panel shows the rolled-up power and cooling figures for the entire project across all racks:

FigureHow it's calculated
IT Load (kW / W)Sum of all device watts ÷ 1000
Facility Load (kW)IT load × facility multiplier (accounts for UPS, PDU, and distribution losses)
Cooling (BTU/hr)Total watts × 3.412
Cooling (tons)BTU/hr ÷ 12,000

Both Typical and Max figures are shown side by side — typical for operational planning, max for circuit sizing and worst-case design. The rack count is also summarised.

If any rack exceeds the per-rack kW threshold a warning is flagged in the summary. Review these before submitting a load letter to an M&E engineer.

PDF export LOAD LETTER

Clicking Generate PDF produces a formatted A4 load letter suitable for client delivery or inclusion in an M&E design pack. The PDF includes:

  • Project name, client name, and site name in the header
  • Your company logo (upload via the logo uploader in the tool — stored in browser localStorage)
  • A summary table of typical vs max IT load, facility load, cooling (BTU/hr and tons)
  • A per-rack breakdown showing device list, RU usage, and typical/max kW per rack
  • Date stamp

Logo upload

Upload a company logo via the logo uploader in the Load Letter settings. The logo is stored in browser localStorage and applied to all PDFs generated from that browser. To use a default branding logo server-side, place it in assets/branding/ — the tool will fall back to it if no user logo is uploaded.


BOM / Materials Tool NEW

Generate structured bills of materials for cabling projects across floors and infrastructure types. The BOM tool is separate from the cable-length calculator but shares the same project state.

The BOM tool has four tabs:

Cable Count tab

Tracks cable consumption per floor and infrastructure type. You define:

  • Floors — add one per project floor or zone
  • Infrastructure types — e.g. Cat6A outlets, Cat6A patch panels, fibre backbone
  • Cable count per floor × infra combination — enter outlet counts; cable per outlet is calculated from run assumptions

Total cable quantities are summed at the bottom. Results are ready for export or copy-paste into a procurement sheet.

Materials BOM tab

Generates a full bill of materials per floor and infrastructure type using the brand catalog. For each infrastructure entry, the BOM produces:

  • Cabling (cable reel quantities, jack quantities)
  • Outlets (surface mount boxes, faceplates — 1/2/4/6 port)
  • Patch panels (24/48 port, straight or angled, Cat6 or Cat6A)
  • Infrastructure items (cable management, racks, fibre enclosures)
  • Power items (UPS, PDU, ATS)

Supported brands

BrandCoverage
Commscope / SystimaxFull catalog: cable, jacks, outlets, patch panels, fibre
NetconnectCable, jacks, patch panels (Cat6A and Cat6)
PanduitCable, jacks, outlets, patch panels
GenericPlaceholder entries for unbranded items

Brand can be set per-infrastructure type. Part numbers and descriptions pull from the catalog automatically. Catalog entries with no part number show as blank (editable in the Catalog tab).

Currency

A currency selector at the top of the BOM tool controls the symbol used in any price columns. Currently supports GBP, USD, EUR.

Patch Leads tab

A dedicated section for modelling patch lead quantities — typically the output of the cable length calculator fed back into a BOM context. Enter quantities per length band (0.5m, 1m, 1.5m, 2m, 3m, 5m) and the tool summarises totals by colour/type for ordering.

Catalog tab

View and edit the full product catalog inline. Each row shows:

  • Brand, category, part number, and description
  • A quick search link (opens manufacturer/distributor search in a new tab)
  • Editable fields — changes apply for the current session and are saved to project JSON on export

The catalog also supports plex variants (simplex / duplex for fibre, single/two-gang for outlets) and cat spec variants (Cat6 vs Cat6A per infrastructure type).


Saving & exporting

MethodWhat it savesUse for
Quick SavesFull project state in browser localStorageIteration — fast, stays in-browser
Export JSONFull state snapshot as a downloadable .json fileVersioning, sharing, backup before big changes
Import JSONLoads a previously exported JSON fileRestoring a config or loading a colleague's setup
Copy tableCable list / schedule to clipboardPasting into Excel, Sheets, or a deliverable doc
Export CSVCable list as CSV downloadImporting into DCIM / cable management systems
Before increasing cabinet count, blade count, or port counts — do a quick save. Those operations regenerate UI blocks and can overwrite in-progress inputs.

Troubleshooting

Nothing generates / blank output

  • Check endpoint exists — port count / blade count must cover the selected port number
  • Check switch name in Bulk matches the configured switch exactly (case-sensitive)
  • Confirm port numbering mode (0-based vs 1-based) matches your input values

Lengths look wrong

  • Confirm cabinet gap (cm) is set correctly — it's the biggest variable
  • Confirm route type (internal vs tray)
  • Check tray height is set to the physical tray height above the floor
  • Reset assumptions to defaults and re-test one connection

Bulk results are inconsistent

  • Test with 3 rows before pasting 300
  • Standardise cabinet and switch names — one typo breaks an entire block
  • Try the other input format (simple vs chassis style)
  • Check that all source ports exist within the configured port count

Floor Plan gaps not updating

  • Confirm cabinet names in the floor plan match the cabinet table names exactly
  • Click Apply Floor Plan Layout — sync is not automatic after dragging
  • Check that cabinets are placed (not just listed) — an empty floor plan produces no gap data

PDF overlay not showing

  • Check browser IndexedDB is not blocked (private/incognito windows may restrict it)
  • Toggle visibility on in the PDF overlay panel
  • Re-upload if the file was from a previous session on a different device

Assigner output shorter than expected

  • Check that VLAN port ranges cover enough ports for the source count
  • Verify blade ranges in chassis entries cover the blades you intend to use
  • Check distribution mode — Fill First exhausts one switch before moving; Round-Robin spreads evenly

Excel import returns no results

  • Confirm the /api/excel/parse endpoint is reachable (self-hosted Docker deployments may need the API container running)
  • The XLSX must contain switch port blocks and a legend — check the expected format matches your file layout
  • Try uploading a smaller test file (one switch block) to isolate parsing issues

BOM shows missing part numbers

  • Blank part numbers are intentional placeholders — edit them in the Catalog tab
  • Part numbers marked N/A indicate the selected brand has no product in that category
  • Use the quick search link to find the correct part and update the catalog

FAQ

Do I need to use the Floor Plan?

No — you can enter cabinet gaps manually in the cabinet table and skip the floor plan entirely. The Floor Plan is most useful when you have a building plan to work from, or when cabinets are arranged in multiple rows with varying gaps.

Do I need trays?

No — internal routing works without trays. Trays matter when you want the model to include overhead travel: up to the tray, along the tray run, and back down.

Why is there a "ports start at 0" option?

Some designs label switch ports 0–47 instead of 1–48. The toggle makes the UI labels match your real-world port labels to prevent off-by-one mistakes in output schedules.

Is DC the same as DCIM?

DC refers to the Device → Switch calculator page.

What's the difference between Rack Builder and Device Library?

The Rack Builder is a physical placement registry — it records what is installed at which U position in which cabinet. The Device Library is a template catalogue for the DC page — it defines device types (name, port count, U height) that you select when picking a source device on the Device → Switch calculator.

Can I import an existing patching schedule?

Yes — the Excel Import feature in the Patching Assigner reads an XLSX with switch port maps, identifies occupied ports, and populates free port ranges by VLAN/service into the Switch Port Map. This requires the API container to be running if self-hosting.

Can the tool do full rack placement?

The Rack Builder handles physical device placement at U positions. Full "per-port geometry from rack placement" is the direction this is heading — the Device Library + DC workflow and the Rack Builder lay the groundwork.

How do I self-host?

The repo includes Docker files under docker/. The main app is a static site served via nginx. The BOM and Excel features use an optional API container (Node.js) and a PostgreSQL database — see docker/docker-compose.snippet.yml and bom/api/ for configuration. The bom/db/init/ folder contains schema and seed SQL.

What units does the Floor Plan work in?

Internally all floor plan distances use metres. Cabinet gaps and tray slack are kept in centimetres to match the main calculator state. All UI labels follow the global length unit toggle (cm / inches). When you switch units the Floor Plan re-converts all visible inputs automatically without changing the underlying world values.

Contact

For bugs, feature requests, or questions, reach out to my self directly here .