KerykBOM Estimator
Keryk · BOM Estimator

Address in, bill of materials out.

For estimating AWP's jobs, not for producing plans. Type a location and a TA number, get the cones, signs and devices. Quantities drive the labour estimate later.

50 of 50states covered
58jurisdiction overlays
18TA templates
2TAs validated on real jobs

The last number is the one that matters. Only Arizona TA-33 and TA-30R are checked against real exports. The other 16 templates are federal figures wearing state numbers, and every response says so by returning declared fallback.

Cone counts are fitted to two jobs with no held-out test. Signs and devices derive exactly; cones are 44–64% derivable and the rest is a rate. Coverage is breadth, not accuracy.

Watch

Two and a half minutes for both. The first is the tool; the second is the reason it exists.

85 seconds Get a number

A job in, a bill of materials out — and the three cone numbers on the answer, only one of which is safe to quote.

66 seconds Why the state matters

One job run in federal, Maryland, Kansas and Nevada. 36 devices becomes 80, cones become drums, and one state returns the federal number unchanged.

1Run it

Three ways in. All of them reach the same engine.

Command line — no key, no network

python3 bom/bom_estimate.py --ta ta-33 --speed 55 --zone-length 2000 \
    --jurisdiction maryland --summary

Drop --summary for JSON. --ta, --speed and --zone-length are the job; everything else has a default that prints in the assumptions block. Useful extras: --night, --duration-hours and --road-type freeway, because those are what the device gates read.

HTTP

curl -s -u name:password -X POST https://bom-dev.apps.keryk.ai/estimate \
  -H 'Content-Type: application/json' \
  -d '{"ta":"ta-33","jurisdiction":"maryland","speed_mph":55,"zone_length_ft":2000}'

Pass address instead of speed_mph and it geocodes, which is the only path that needs the key. speed_mph overrides the geocoder when you already know the posted speed.

The page

Same host, root URL. The bill of materials is the page; everything justifying it hides behind one disclosure. Every page and every API call needs a username and password.

Tests

./run-tests.sh

Under a second, stdlib only, nothing touches the network. It runs the engine-gap tests, the spot snapshot, the two Arizona calibrations and the coverage count.

2Read the answer

Four numbers come back for channelizing devices. They are not interchangeable and the difference between them is the honest part of this tool.

Derived from the standard line_devices
Pure algebra off the standard. This is the defensible number. Diff against the ta-bom track using this one, never the point estimate.
Likely on site estimate_low / estimate_high
Line devices plus the site allowance band — driveways, side streets, the funnels a real job grows. This is the range that prints on the BOM line, not the number above it.
Point estimate point_estimate
A rate fitted against two real jobs. Read it as "the fit", never as "the accuracy".
Load the truck order_quantity
The high end rounded up to ten. This is what to put on a truck.
Share that is algebra derivable_share
Read this first. What fraction of the estimate is algebra rather than allowance. 64% on the Gilbert job, 44% on Chandler.

Governing sheet — read it backwards

The word governing is not the good outcome. It appears only on a federal run, which means no state ruleset was applied at all. A state run reads declared fallback: the component list is the federal figure, and only the numbers — taper, buffer, sign spacing, device type — are that state's. Both are honest. Neither is a state's own drawing. None has been transcribed yet.

When it will not answer

Two refusals, and they are the product working, not the product failing.

no speed limit available
The map lookup came back without a speed. Type the posted speed and run it again. The tool never invents one, because the speed band moves every quantity on the page.
no jurisdiction available
The address did not resolve, so nobody's rules can be chosen. Fix the location or pick the state. It will not quietly fall back to federal — federal is a different rulebook, not a safe default.

A third case is not a refusal and is easy to miss: a state with no overlay answers normally, as plain federal, with an orange banner. Do not present that as the state's standard.

Where the speed came from

Every answer now names its speed source on the surface. Best first:

state DOT / local GIS road-attributes layer
A published record. Measured.
the road's own OpenStreetMap speed tag
A real value someone entered, and it can be years out of date. Measured.
the national HPMS road inventory
A published record, Federal-Aid roads only. Measured.
OSM highway-class default table
Estimated.
lookup by highway tag plus urban/rural
Estimated, and not tuned against production data.

Nothing in this tool reads a posted sign. Every speed is either a record or an assumption. Check it against the sign before you order.

3The jurisdiction layer

This is the part a federal-shaped engine does not have, and the reason the tool is worth keeping. The same job, run in every jurisdiction, on a TA-33 at 55 mph over 2,000 ft.

41 come in above federal, 9 match it exactly, and 7 come in under. The matches are a finding, not a failure — those states genuinely defer, and each one says so in its sources rather than inventing a deviation.

jurisdictiondevicesvs fedtaper ft buffer ftsign A fttangent spdevice
hawaii220+184700335100055cone
arkansas100+64660500100025cone_28in
new-york89+5368049550040cone
florida88+5266049550050cone
alabama86+5066049550050drum
charlotte83+4735035035040cone
maryland80+4466049580040drum
mesa63+27660050050vertical_panel
south-carolina63+2770040050050cone
iowa60+247706001000100channelizer_42in
kentucky60+2468049550080cone
nevada58+22660495100055cone
south-dakota58+2266049575080cone_42
tennessee57+21780495100080drum
kansas55+19660495500110cone
georgia54+1866030050080drum
louisiana54+18660495100080drum
ohio54+1866049550080cone
virginia53+17660495100080cone
washington53+1768049550080drum
connecticut52+16800500100080drum
arizona48+12660050080vertical_panel
tempe48+12660066080vertical_panel
west-virginia48+12660495500100cone
wisconsin48+126604951000100drum
montana47+11960495500110drum
maricopa46+10660050080vertical_panel
pennsylvania46+10660495350110cone
illinois44+86605001500100cone_28in
indiana42+6660495500100cone
michigan42+6660329550100drum
mississippi42+66604951000110cone
massachusetts41+56604951000110cone
nebraska40+46604951000110drum
utah39+3660495500110drum
vermont39+36604951000110cone
colorado38+26604951000110cone
minnesota38+2660495750100cone_28in
new-jersey38+2660100500110cone
oregon38+2660250500110cone_28in
rhode-island38+2660340500110cone
alaska360660495500110drum
federal36—660495500110cone
idaho360660495500110cone
maine360660495500110drum
missouri360660495500110cone_42
new-hampshire360660495500110drum
new-mexico360660495500110drum
north-carolina360660290500110drum
north-dakota360660495750110cone
wyoming360660495500110cone
delaware35-166001000110cone
oklahoma35-1660495500100cone
california34-2660495500100cone_28in
gilbert34-26600500110vertical_panel
texas34-26602951000110cone
chandler33-36600660110vertical_panel
phoenix33-36600660110vertical_panel

Where a gate fires

Tell the engine a job runs at night and for four days and these states change what you are pricing. The count barely moves; the unit cost does.

  • alabama drum
  • alaska drum
  • arizona vertical_panel
  • arkansas cone_28in
  • california cone_28in
  • chandler vertical_panel
  • colorado cone_36in
  • connecticut drum
  • georgia drum
  • gilbert vertical_panel
  • illinois drum
  • indiana drum
  • iowa channelizer_42in
  • kansas drum
  • kentucky drum
  • louisiana drum
  • maricopa vertical_panel
  • maryland drum
  • mesa vertical_panel
  • michigan drum
  • minnesota cone_42
  • missouri cone_42
  • montana drum
  • nebraska drum
  • new-jersey drum
  • new-mexico drum
  • north-carolina drum
  • ohio drum
  • oregon cone_28in
  • pennsylvania drum
  • phoenix vertical_panel
  • south-carolina cone_42
  • south-dakota cone_42
  • tempe vertical_panel
  • tennessee drum
  • utah drum
  • washington drum
  • west-virginia drum
  • wisconsin drum
  • wyoming cone_42

The number to lead with

Maryland more than doubles the federal device count on that job, 80 against 36. Illinois is higher still at 89. Those are the ones to put on a slide.

Quick reference