autotelic.build(720) 287-7958

Where every project starts

The feasibility study — where every Autotelic project starts

What a feasibility study is, what it should include, and how Autotelic runs one today for an ADU, a remodel, a new build, a commercial tenant finish, or a venue.

live

Back to the galaxy

A feasibility study answers one question before anyone commits real money: can this project actually happen, on this site, for something close to this budget? Done well, it checks the zoning and code constraints that could block a project outright, sizes what is realistically buildable, and gives a cost range grounded in the site's specific conditions rather than a generic average. Skipping it doesn't remove the risk; it just moves the same questions later in the process, where a wrong assumption costs a redesign, a change order, or a permit rejection instead of an afternoon of research.

Historically that meant a site visit, measurements, a zoning lookup, and a written report days or weeks later. The information itself — lot size, setbacks, zoning district, code requirements — has always existed in public records; the slow part was always someone finding it, cross-referencing it by hand, and writing it up.

For an ADU, Autotelic runs a public tool that does that lookup live: enter an address, and it resolves the building envelope from municipal zoning data, runs a gated feasibility study against it, and opens a floor-plan playground to explore what actually fits. When the tool can't verify something — a parcel it doesn't recognize, a jurisdiction it hasn't been taught, a district it can't confirm — it says so plainly instead of guessing, and that answer is cached so a second look at the same address doesn't wait on a fresh lookup.

For a home remodel, the instant estimate wizard doubles as the feasibility door — it verifies the property and grounds the range in the same catalog and code data described on the estimate side. Every other project type — a new build, a commercial tenant finish, or a venue and hospitality project — starts the same way every feasibility study always has: a scoped consult, then a site meeting, then a concept and a feasibility retainer set up in the client portal. That is a real, live path today; a fully self-serve feasibility tool for every project type is on the roadmap, not a claim made here.

Whichever door applies — an ADU, a home remodel, a new build, a commercial tenant finish or a venue — feasibility is the first stop, because every one of those project types needs the same question answered first: does this actually work, here, before anyone designs or prices anything.

What it does

  • The ADU lot tool resolves a building envelope from municipal zoning data for a given address.
  • It runs a gated feasibility study against that envelope and opens a floor-plan playground to explore what fits.
  • Every lookup returns one of four honest outcomes — resolved, or one of three specific refusals — never a guess.
  • A verified result is cached for 24 hours; a miss is cached for 5 minutes, so a retry doesn't wait as long.
  • A home remodel's feasibility door is the instant estimate wizard itself, verified against the property.
  • Every other project type routes to a scoped consult, then a site meeting, then a concept and feasibility retainer in the portal.

What it sees

The example lot, resolved by the lot tool · live from POST /api/v1/public/adu-explainer/resolve, captured through the app on 2026-09-08 for the example lot; the address is not rendered
{
 "request": {},
 "status": 200,
 "response": {
  "success": true,
  "data": {
   "status": "resolved",
   "districtCode": "E-SU-DX",
   "district": {
    "label": "Urban Edge Single-Unit Dx",
    "bulkPlane": {
     "startHeightFt": 10,
     "angleDeg": 45,
     "sides": [
      "side_interior"
     ],
     "label": "side-interior",
     "cite": "DZC §13.1.4.2"
    },
    "maxHeightFt": 30,
    "setbacks": {
     "frontFt": 20,
     "frontBasis": "block_default",
     "frontNote": "Front setback here is block-contextual (DZC §13.1.5.9): shown is the 20 ft code default that applies when qualifying reference lots are absent. Blocks with established homes may require matching their existing fronts.",
     "sideFt": 5,
     "rearFt": 12,
     "sideCornerFt": 5,
     "frontStatus": "default"
    },
    "adu": {
     "allowed": true,
     "maxSqft": 1000,
     "verified": false,
     "note": "GFA of the ADU use: 864 sf on zone lots ≤7,000 sf, 1,000 sf above — DZC §11.8.2.1.B.2. Building footprint: 864 sf/unit on zone lots ≤7,000 sf, 1,000 sf/unit above — DZC Table §4.3.4.5.A. Permitted by right under Denver's 2024 ADU reform for this district; confirm specifics with a hand-checked review.",
     "rearSetbackFt": 5,
     "rearLabel": "no-alley DADU rear default",
     "rearBasis": "no_alley_default",
     "setbackNote": "DADU form rear is 5 ft, the no-alley default (DZC §4.3.4) — not the Urban House 12 ft primary rear. 0 ft is the alley-access rear rule only when an alley is known to abut and garage doors do not face it.",
     "rearSource": "dzc_no_alley_default",
     "rearCitation": "DZC §4.3.4",
     "alleyAbutsRear": null,
     "maxHeightFt": 24,
     "maxStories": 2,
     "form": "detached_adu",
     "formLabel": "Detached ADU",
     "footprintRule": {
      "lotAreaThresholdSqft": 7000,
      "maxSqftAtOrBelow": 864,
      "maxSqftAbove": 1000
     },
     "gfa": {
      "applicable": true,
      "maxSqft": 1000,
      "lotAreaThresholdSqft": 7000,
      "maxSqftAtOrBelow": 864,
      "maxSqftAbove": 1000,
      "label": "GFA of the ADU use",
      "cite": "DZC §11.8.2.1.B.2",
      "line": "GFA of the ADU use: 864 sf on zone lots ≤7,000 sf, 1,000 sf above — DZC §11.8.2.1.B.2."
     },
     "footprint": {
      "maxSqft": 1000,
      "lotAreaThresholdSqft": 7000,
      "maxSqftAtOrBelow": 864,
      "maxSqftAbove": 1000,
      "maxStories": 2,
      "maxHeightFt": 24,
      "label": "Building footprint",
      "cite": "DZC Table §4.3.4.5.A",
      "line": "Building footprint: 864 sf/unit on zone lots ≤7,000 sf, 1,000 sf/unit above — DZC Table §4.3.4.5.A."
     },
     "heightMaxFt": 24
    },
    "lotCoverageMaxPct": 45,
    "capReference": "grade_at_point",
    "provenance": {
     "source": "denver_zoning_code via Autotelic corpus",
     "confidence": "medium",
     "pulled": "2026-09-08",
     "districtConfidence": "high",
     "fields": {
      "district": "verified",
      "frontSetback": "default",
      "lotArea": "verified"
     }
    }
   },
   "lot": {
    "areaSqft": 7500,
    "source": "assessor",
    "note": "Lot area from the Denver official parcel record (assessor). Width × depth is a rectangle derived so it equals recorded area — not a surveyed lot.",
    "widthFt": 86,
    "depthFt": 87.2,
    "dimsEstimated": true,
    "areaStatus": "verified"
   },
   "buildings": [
    {
     "kind": "primary",
     "type": "Residential",
     "heightFt": 13,
     "stories": null,
     "source": "denver_building_outlines",
     "note": "Denver official building outline (ODC_PROP_BUILDINGOUTLINES_A). Height is GIS BLDG_HEIGH, not a permit.",
     "ring": [
      [
       36.8,
       66.4
      ],
      [
       16.4,
       66.1
      ],
      [
       16.3,
       73.9
      ],
      [
       16.2,
       75.1
      ],
      [
       2.7,
       74.9
      ],
      [
       3.2,
       43.4
      ],
      [
       18.9,
       43.7
      ],
      [
       21.6,
       43.8
      ],
      [
       23.9,
       43.8
      ],
      [
       23.8,
       49.5
      ],
      [
       37.3,
       49.7
      ],
      [
       37.5,
       37.9
      ],
      [
       41.3,
       38
      ],
      [
       47.5,
       38.1
      ],
      [
       51.4,
       38.1
      ],
      [
       51,
       63.7
      ],
      [
       51,
       66.7
      ],
      [
       36.8,
       66.4
      ]
     ],
     "bbox": {
      "x0": 2.7,
      "z0": 37.9,
      "widthFt": 48.8,
      "depthFt": 37.2
     }
    },
    {
     "kind": "accessory",
     "type": "Garage/Shed",
     "heightFt": 17,
     "stories": null,
     "source": "denver_building_outlines",
     "note": "Denver official building outline (ODC_PROP_BUILDINGOUTLINES_A). Height is GIS BLDG_HEIGH, not a permit.",
     "ring": [
      [
       3,
       123.6
      ],
      [
       2.7,
       86.2
      ],
      [
       33.4,
       85.9
      ],
      [
       33.7,
       112.9
      ],
      [
       33.8,
       123.3
      ],
      [
       29.9,
       123.3
      ],
      [
       5.4,
       123.6
      ],
      [
       3,
       123.6
      ]
     ],
     "bbox": {
      "x0": 2.7,
      "z0": 85.9,
      "widthFt": 31.1,
      "depthFt": 37.7
     }
    },
    {
     "kind": "accessory",
     "type": "Garage/Shed",
     "heightFt": 12,
     "stories": null,
     "source": "denver_building_outlines",
     "note": "Denver official building outline (ODC_PROP_BUILDINGOUTLINES_A). Height is GIS BLDG_HEIGH, not a permit.",
     "ring": [
      [
       70.9,
       97.6
      ],
      [
       70.3,
       97.6
      ],
      [
       70.4,
       99.3
      ],
      [
       70.5,
       103.7
      ],
      [
       70.6,
       108.2
      ],
      [
       58.5,
       108.5
      ],
      [
       58.5,
       107.7
      ],
      [
       58.5,
       105.4
      ],
      [
       58.4,
       103.6
      ],
      [
       58.3,
       99.1
      ],
      [
       58.3,
       97.2
      ],
      [
       58,
       83.8
      ],
      [
       58.5,
       83.8
      ],
      [
       59.8,
       83.8
      ],
      [
       59.8,
       83.2
      ],
      [
       62.6,
       83.1
      ],
      [
       85.7,
       82.6
      ],
      [
       85.9,
       92.3
      ],
      [
       86,
       97.3
      ],
      [
       70.9,
       97.6
      ]
     ],
     "bbox": {
      "x0": 58,
      "z0": 82.6,
      "widthFt": 28,
      "depthFt": 25.8
     }
    }
   ],
   "disclaimer": "Illustrative only — not a code determination or permit approval.",
   "overlays": [],
   "overlayStory": "none",
   "overlayNote": "No verified zoning overlay at this address."
  },
  "message": "District resolved."
 }
}
An honest miss: outside the service area · live from POST /api/v1/public/adu-explainer/resolve, captured 2026-09-08 for a civic address in Colorado Springs
{
 "request": {},
 "response": {
  "success": true,
  "data": {
   "status": "refused_outside_denver",
   "disclaimer": "Illustrative only — not a code determination or permit approval.",
   "message": "That address is outside the Castle Rock–Boulder service area.",
   "cta": {
    "tel": "tel:+17202877958",
    "path": "/estimate"
   }
  },
  "message": "That address is outside the Castle Rock–Boulder service area."
 }
}
The example lot in the floor-plan playground · live from Floor-plan playground state on the example lot, built in the live tool on 2026-09-08 (one-bed preset)
{
 "district": "E-SU-DX",
 "capSqft": 1000,
 "capCite": "GFA of the ADU use: 864 sf on zone lots ≤7,000 sf, 1,000 sf above — DZC §11.8.2.1.B.2",
 "heightFt": 16,
 "loftNote": "Loft, not a second floor, at 16 ft: about 48 sq ft has 5 ft of headroom. It is not planned here; dormers in the study grow it.",
 "totalsLine": "Total 528 sf of ≤ 1,000 sf",
 "roomsShown": [
  "Living 240 sf",
  "Kitchen 108 sf",
  "Bedroom 120 sf",
  "Bath 60 sf"
 ],
 "planSummary": {
  "preset": "one_bed",
  "floors": 1,
  "totalSqft": 528
 },
 "sessionStore": {
  "plan": {
   "preset": "one_bed",
   "floors": [
    {
     "level": "ground",
     "rooms": [
      {
       "id": "ground-living-17",
       "kind": "living",
       "label": "Living",
       "x": 0,
       "y": 0,
       "w": 10,
       "d": 24
      },
      {
       "id": "ground-kitchen-16",
       "kind": "kitchen",
       "label": "Kitchen",
       "x": 10,
       "y": 0,
       "w": 12,
       "d": 9
      },
      {
       "id": "ground-bed-15",
       "kind": "bed",
       "label": "Bedroom",
       "x": 10,
       "y": 9,
       "w": 12,
       "d": 10
      },
      {
       "id": "ground-bath-14",
       "kind": "bath",
       "label": "Bath",
       "x": 10,
       "y": 19,
       "w": 12,
       "d": 5
      }
     ]
    }
   ]
  },
  "outline": {
   "widthFt": 22,
   "depthFt": 24
  },
  "activeFloor": 0
 }
}

What it replaced

Old phase: Site Survey

We document what actually exists before we promise anything.

Today that walk-through starts as a lot resolve or a scoped consult — the ADU tool pulls the same site facts automatically for a Denver parcel, and every other project type still starts with a real site visit.

This is where /process/site-survey used to point.

Old phase: Scope of Work

Needs, budget, and opportunities aligned before a dollar is committed.

Today the scope conversation happens with Chloe or on the phone, and for remodels the instant-estimate wizard turns it into a live, catalog-grounded range instead of a written memo.

This is where /process/scope-of-work used to point.

Proof

The system layer

The system behind a feasibility study: how an address becomes a building envelope, a study, and a floor plan — or an honest refusal.

Topology

  • Address resolver
  • Muni knowledge (Node C)
  • Building envelope engine
  • Feasibility gate
  • Floor-plan playground
  • Resolve cache (24h verified, 5min miss)
  • Instant estimate door
  • Scoped consult intake
  1. Address resolverMuni knowledge (Node C)
  2. Muni knowledge (Node C)Building envelope engine
  3. Building envelope engineFeasibility gate
  4. Feasibility gateFloor-plan playground
  5. Address resolverResolve cache (24h verified, 5min miss)

The one-day clock

  1. 02:30Trade knowledge writes
  2. 03:00Citation checks
  3. every 15 minutesMuni knowledge drain

One replay

The example lot, resolved by the lot tool · live from POST /api/v1/public/adu-explainer/resolve, captured through the app on 2026-09-08 for the example lot; the address is not rendered
{
 "request": {},
 "status": 200,
 "response": {
  "success": true,
  "data": {
   "status": "resolved",
   "districtCode": "E-SU-DX",
   "district": {
    "label": "Urban Edge Single-Unit Dx",
    "bulkPlane": {
     "startHeightFt": 10,
     "angleDeg": 45,
     "sides": [
      "side_interior"
     ],
     "label": "side-interior",
     "cite": "DZC §13.1.4.2"
    },
    "maxHeightFt": 30,
    "setbacks": {
     "frontFt": 20,
     "frontBasis": "block_default",
     "frontNote": "Front setback here is block-contextual (DZC §13.1.5.9): shown is the 20 ft code default that applies when qualifying reference lots are absent. Blocks with established homes may require matching their existing fronts.",
     "sideFt": 5,
     "rearFt": 12,
     "sideCornerFt": 5,
     "frontStatus": "default"
    },
    "adu": {
     "allowed": true,
     "maxSqft": 1000,
     "verified": false,
     "note": "GFA of the ADU use: 864 sf on zone lots ≤7,000 sf, 1,000 sf above — DZC §11.8.2.1.B.2. Building footprint: 864 sf/unit on zone lots ≤7,000 sf, 1,000 sf/unit above — DZC Table §4.3.4.5.A. Permitted by right under Denver's 2024 ADU reform for this district; confirm specifics with a hand-checked review.",
     "rearSetbackFt": 5,
     "rearLabel": "no-alley DADU rear default",
     "rearBasis": "no_alley_default",
     "setbackNote": "DADU form rear is 5 ft, the no-alley default (DZC §4.3.4) — not the Urban House 12 ft primary rear. 0 ft is the alley-access rear rule only when an alley is known to abut and garage doors do not face it.",
     "rearSource": "dzc_no_alley_default",
     "rearCitation": "DZC §4.3.4",
     "alleyAbutsRear": null,
     "maxHeightFt": 24,
     "maxStories": 2,
     "form": "detached_adu",
     "formLabel": "Detached ADU",
     "footprintRule": {
      "lotAreaThresholdSqft": 7000,
      "maxSqftAtOrBelow": 864,
      "maxSqftAbove": 1000
     },
     "gfa": {
      "applicable": true,
      "maxSqft": 1000,
      "lotAreaThresholdSqft": 7000,
      "maxSqftAtOrBelow": 864,
      "maxSqftAbove": 1000,
      "label": "GFA of the ADU use",
      "cite": "DZC §11.8.2.1.B.2",
      "line": "GFA of the ADU use: 864 sf on zone lots ≤7,000 sf, 1,000 sf above — DZC §11.8.2.1.B.2."
     },
     "footprint": {
      "maxSqft": 1000,
      "lotAreaThresholdSqft": 7000,
      "maxSqftAtOrBelow": 864,
      "maxSqftAbove": 1000,
      "maxStories": 2,
      "maxHeightFt": 24,
      "label": "Building footprint",
      "cite": "DZC Table §4.3.4.5.A",
      "line": "Building footprint: 864 sf/unit on zone lots ≤7,000 sf, 1,000 sf/unit above — DZC Table §4.3.4.5.A."
     },
     "heightMaxFt": 24
    },
    "lotCoverageMaxPct": 45,
    "capReference": "grade_at_point",
    "provenance": {
     "source": "denver_zoning_code via Autotelic corpus",
     "confidence": "medium",
     "pulled": "2026-09-08",
     "districtConfidence": "high",
     "fields": {
      "district": "verified",
      "frontSetback": "default",
      "lotArea": "verified"
     }
    }
   },
   "lot": {
    "areaSqft": 7500,
    "source": "assessor",
    "note": "Lot area from the Denver official parcel record (assessor). Width × depth is a rectangle derived so it equals recorded area — not a surveyed lot.",
    "widthFt": 86,
    "depthFt": 87.2,
    "dimsEstimated": true,
    "areaStatus": "verified"
   },
   "buildings": [
    {
     "kind": "primary",
     "type": "Residential",
     "heightFt": 13,
     "stories": null,
     "source": "denver_building_outlines",
     "note": "Denver official building outline (ODC_PROP_BUILDINGOUTLINES_A). Height is GIS BLDG_HEIGH, not a permit.",
     "ring": [
      [
       36.8,
       66.4
      ],
      [
       16.4,
       66.1
      ],
      [
       16.3,
       73.9
      ],
      [
       16.2,
       75.1
      ],
      [
       2.7,
       74.9
      ],
      [
       3.2,
       43.4
      ],
      [
       18.9,
       43.7
      ],
      [
       21.6,
       43.8
      ],
      [
       23.9,
       43.8
      ],
      [
       23.8,
       49.5
      ],
      [
       37.3,
       49.7
      ],
      [
       37.5,
       37.9
      ],
      [
       41.3,
       38
      ],
      [
       47.5,
       38.1
      ],
      [
       51.4,
       38.1
      ],
      [
       51,
       63.7
      ],
      [
       51,
       66.7
      ],
      [
       36.8,
       66.4
      ]
     ],
     "bbox": {
      "x0": 2.7,
      "z0": 37.9,
      "widthFt": 48.8,
      "depthFt": 37.2
     }
    },
    {
     "kind": "accessory",
     "type": "Garage/Shed",
     "heightFt": 17,
     "stories": null,
     "source": "denver_building_outlines",
     "note": "Denver official building outline (ODC_PROP_BUILDINGOUTLINES_A). Height is GIS BLDG_HEIGH, not a permit.",
     "ring": [
      [
       3,
       123.6
      ],
      [
       2.7,
       86.2
      ],
      [
       33.4,
       85.9
      ],
      [
       33.7,
       112.9
      ],
      [
       33.8,
       123.3
      ],
      [
       29.9,
       123.3
      ],
      [
       5.4,
       123.6
      ],
      [
       3,
       123.6
      ]
     ],
     "bbox": {
      "x0": 2.7,
      "z0": 85.9,
      "widthFt": 31.1,
      "depthFt": 37.7
     }
    },
    {
     "kind": "accessory",
     "type": "Garage/Shed",
     "heightFt": 12,
     "stories": null,
     "source": "denver_building_outlines",
     "note": "Denver official building outline (ODC_PROP_BUILDINGOUTLINES_A). Height is GIS BLDG_HEIGH, not a permit.",
     "ring": [
      [
       70.9,
       97.6
      ],
      [
       70.3,
       97.6
      ],
      [
       70.4,
       99.3
      ],
      [
       70.5,
       103.7
      ],
      [
       70.6,
       108.2
      ],
      [
       58.5,
       108.5
      ],
      [
       58.5,
       107.7
      ],
      [
       58.5,
       105.4
      ],
      [
       58.4,
       103.6
      ],
      [
       58.3,
       99.1
      ],
      [
       58.3,
       97.2
      ],
      [
       58,
       83.8
      ],
      [
       58.5,
       83.8
      ],
      [
       59.8,
       83.8
      ],
      [
       59.8,
       83.2
      ],
      [
       62.6,
       83.1
      ],
      [
       85.7,
       82.6
      ],
      [
       85.9,
       92.3
      ],
      [
       86,
       97.3
      ],
      [
       70.9,
       97.6
      ]
     ],
     "bbox": {
      "x0": 58,
      "z0": 82.6,
      "widthFt": 28,
      "depthFt": 25.8
     }
    }
   ],
   "disclaimer": "Illustrative only — not a code determination or permit approval.",
   "overlays": [],
   "overlayStory": "none",
   "overlayNote": "No verified zoning overlay at this address."
  },
  "message": "District resolved."
 }
}

Reveal the system layer

Questions

What does a feasibility study actually check?

Zoning and code constraints, what's realistically buildable on the site, and a cost range grounded in those specifics — not a generic estimate.

What happens if the ADU tool can't verify my address?

It says so plainly — a parcel it does not recognize or a jurisdiction it has not been taught returns an honest refusal, not a guess.

Can I get an instant feasibility study for a commercial project?

Not yet as a self-serve tool — that path is a scoped consult today, which leads to the same feasibility retainer step in the portal.

Does skipping a feasibility study save time?

It usually costs more later — the same zoning and code questions still have to be answered, just after a design or a permit application instead of before one.

Run the ADU lot tool

Next star: Estimate