The replacement-cost service estimates what it costs to act on a pole — replace it, raise an attachment, swap an insulator, transfer comms. It reads the fix proposals already on a Universal Pole Model (produced by the clearance, classification, and loading analyzers) and returns a costed scope of work.
Direct REST access requires Tier B onboarding. URLs and bearer-token credentials are issued during embedder onboarding — until then, route equivalent calls through the Overhead gateway →. Email hello@epcstudio.io to start.
Endpoints
POST /estimate
Estimate cost for a single pole’s worth of fix proposals.
curl https://$VERTICAL_AI_BASE_URL/estimate \
-H "Authorization: Bearer $VERTICAL_AI_KEY" \
-H "Content-Type: application/json" \
-d '{
"pole_model": { ... },
"labor_rates": "default | utility-specific",
"region": "us-west | us-southeast | ..."
}'
Returns:
{
"pole_id": "demo-pole-001",
"scope": [
{ "action": "replace_pole", "from_class": "5", "to_class": "3", "material_usd": 1280, "labor_usd": 1820 },
{ "action": "transfer_comm", "count": 2, "labor_usd": 640 }
],
"totals": { "material_usd": 1280, "labor_usd": 2460, "total_usd": 3740 },
"confidence": "high | medium | low"
}
POST /estimate/batch
Same shape, repeated. Returns a per-pole estimate keyed by pole_id.
POST /split/cost-causation
Apply FCC §224 cost-causation rules to split the cost across the pole owner and each attacher, based on which finding triggered which work item.
{
"splits": [
{ "payer": "pole_owner", "usd": 1280, "reason": "end-of-life replacement" },
{ "payer": "telco-x", "usd": 1820, "reason": "new attachment driving height upgrade" },
{ "payer": "isp-y", "usd": 640, "reason": "comm transfer" }
]
}
This is the call that drives BEAD per-payer appendices.
How rates are set
The default rate book ships with regional defaults appropriate for sandbox use. Production callers usually supply a utility-specific rate book (per-hour labor, per-unit material) — email hello@epcstudio.io to wire one in. The service treats your rate book as input, not as something we configure for you.
See also
- Joint-Use API → — consumes cost numbers for FCC filings
- Replacement Planning API → — sequences replacements across a portfolio
- BEAD → — workflow that uses cost-causation splits