> For the complete documentation index, see [llms.txt](https://docs.growthfactor.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.growthfactor.ai/study/shapes.md).

# Shapes

## What a Shape Is

A shape is any area drawn on a study's map — a polygon you trace, a circle, a real-world boundary you extract, or a generated trade zone. Shapes are named automatically (`S1`, `S2`, and so on) and you can rename any of them.

Every shape is something you work with directly. Select it, restyle it, comment on it, combine it with other shapes, or run analysis against it.

{% embed url="<https://www.youtube.com/watch?v=lEXXy-Oavus>" %}

***

## Shapes vs. Trade Zones

A trade zone is just a shape that's linked to a pin or to one of your existing stores. That link is what marks the area as that location's catchment, and it's what cannibalization reads from.

An unlinked shape is a plain area — useful for territories, regions, and whitespace, but it won't be treated as anyone's trade zone. Select a shape and check the **Trade zone for** row in the right panel to see whether it's linked.

***

## Drawing a Shape

All three drawing tools live under **Shapes** in the map toolbar.

<figure><img src="https://2595087262-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjYLFGKmaRxwLlrdFzDm2%2Fuploads%2Fgit-blob-3fd21ddb1c63e4bba5bd67ef17b1b193c9a42eb3%2Fstudies-shapes-toolbar-menu-2026-07-30.png?alt=media" alt="The Shapes group open in the study map toolbar, showing Draw polygon, Draw circle, and Extract boundary" width="375"><figcaption></figcaption></figure>

### Polygons

Click **Draw polygon** (shortcut `P`) and click once per vertex. The hint under the toolbar reads **"Click on the map to draw a polygon · press \[Enter]/\[Return] to complete it"** — this is vertex-by-vertex tracing, not freehand.

### Circles

Click **Draw circle** (shortcut `C`), then follow the hint: **"Click for center, then click again to set the radius"**.

### Extracting a Real-World Boundary

Click **Extract boundary** (shortcut `X`) to pull an administrative boundary in as a shape. **Extract mode** opens with the instruction **"Click a boundary to save it as a shape in your study. Click again to unsave."** and buttons for each level: **States**, **Counties**, **Places**, **ZIP Codes**, **Census Tracts**, and **Block Groups**. Everything you save in the session is listed under **Extracted**, where you can rename or remove it.

You can also ask the [GrowthFactor Agent](/study/growthfactor-agent.md) to add a boundary at any of these levels.

***

## Trade Zones

### Trade Zone Types

Generated trade zones come in three flavors:

| Type                   | Value units | Accepted range                             |
| ---------------------- | ----------- | ------------------------------------------ |
| **Ring Buffer**        | Miles       | 1–30                                       |
| **Walk or Drive Time** | Minutes     | 1–60 driving, 1–30 walking                 |
| **Foot Traffic**       | %           | 50–90, with **Origin** set to Home or Work |

Ring buffers accept decimal miles, like 1.5. Walk or drive times must be whole minutes, and foot traffic must be a whole percentage. The **Value** field doesn't accept a decimal point for those types. Use the **−** and **+** buttons or the up and down arrow keys to step the value.

If a value is out of range, the field turns red and a message gives the allowed range. Click **Use** followed by the nearest valid number to apply it. **Draw** is disabled until the value is valid. When you leave the field, an out-of-range value snaps to the nearest valid one.

Foot traffic zones describe where that share of visitors actually live or work, so the form spells it out as you type — for example **"Where 70% of visitors live"**. The other types show a short summary of the zone below the **Value** field.

### Drawing a Trade Zone Around a Pin

Select the pin and click **Draw trade zone** (or right-click the pin and choose **Draw trade zone**). If your workspace has a default trade zone set, the **Add trade zone** popover leads with a pill showing it, like **10 min drive**. Click the pill to draw that zone immediately. Below it are two more paths:

* **Generated** — "Ring buffer, drive-time, or foot-traffic %". Set **Type**, **Value**, and any mode or origin, then click **Draw**.
* **Draw a polygon** — "Click vertices to trace a shape", for a catchment you want to trace by hand.

<figure><img src="https://2595087262-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjYLFGKmaRxwLlrdFzDm2%2Fuploads%2Fgit-blob-b6868549fbfa53ddf854d5f9f6af5c83dd8b6dd5%2Fstudies-shapes-add-trade-zone-2026-07-30.png?alt=media" alt="The Add trade zone popover offering the workspace default, Generated, and Draw a polygon paths" width="375"><figcaption></figcaption></figure>

The new zone is named after its anchor and method, like `P1·10 min drive`.

### Drawing a Trade Zone Around an Existing Store

Select the store on the map and use the same **Draw trade zone** popover. You can also just ask the agent — it draws zones directly on portfolio stores, no pin required. Because stores are workspace-wide, a zone anchored to one keeps working even as the study changes around it.

### Starting from the Workspace Default

The pill at the top of the **Add trade zone** popover draws your workspace's default trade zone in one click, and the **Generated** form below it prefills from that same default. If no default is saved, both fall back to a 1-mile ring. Workspace admins see an **Edit default** link next to the popover's title that jumps straight to the Trade Zone setting in [Workspace Settings](/getting-started/workspace-settings.md).

### Linking an Existing Shape as a Trade Zone

Any shape you already drew can become a trade zone. Select it and click **Link to pin or store** in the **Trade zone for** row, or right-click the shape and use the same option. Search **"Search pins and stores"** to find the anchor; nearby stores are listed first. The **×** next to a linked anchor unlinks it.

{% hint style="info" %}
Shapes an analysis created can't be re-anchored. Duplicate the shape and link the copy instead.
{% endhint %}

***

## Combining Shapes

### Selecting Multiple Shapes

Shift-click shapes on the map to add or remove them from a multi-select. Once two or more are selected, a floating toolbar replaces the drawing toolbar and shows **"{n} shapes"** with the combine actions. Shift-clicking empty map keeps the selection intact; a plain click clears it.

<figure><img src="https://2595087262-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjYLFGKmaRxwLlrdFzDm2%2Fuploads%2Fgit-blob-a91f13b81c832e3a8222dc1161843ceda59b1467%2Fstudies-shapes-combine-toolbar-2026-07-30.png?alt=media" alt="Two trade zones selected, with the combine toolbar above them reading 2 shapes" width="375"><figcaption></figcaption></figure>

The combine actions are icon buttons. Hover one to see its name. The right panel lists the same actions with their names and descriptions, plus which shape is the primary one.

### Union

**Union** merges everything selected into one shape — works with two or more. The inputs are replaced by the result, named `Union: S1` after the first shape in the selection.

### Intersect

**Intersect** keeps only the region every selected shape shares. If they don't actually overlap you'll see **"The selected shapes don't overlap."** and nothing changes.

### Difference

**Difference** subtracts the second selected shape from the first. It needs exactly two shapes — with any other count its tooltip reads **"Difference (needs 2)"** and the button is disabled.

### Deleting a Selection

The red trash button removes every selected shape at once — its tooltip names the count, so with three selected it reads **"Delete 3"**. The right panel spells it out as **Delete all (3) shapes**. Like each combine, it's a single undo step — one `⌘Z` puts the originals back.

***

## Building Territories

Territories are built by union. Draw or generate a trade zone for each store in a market, shift-click them all, and hit **Union** — you get one shape representing everything that market currently covers. Rename it something like `Phoenix Metro` and use it as the baseline for planning.

***

## Finding Your Whitespace

Whitespace is the same idea run backwards. Extract the boundary you're planning against (a metro, a county, a set of ZIP codes), select it plus your combined coverage territory, and hit **Difference** — the shape you're left with is the part of the market nobody serves yet. Drop pins inside it and run demographics to see how much demand is sitting there.

***

## Data for an Area

Select a shape and open **Demographics** for an Esri profile of the area it covers: a KPI grid (**Population**, **Median age**, **Median HHI**, and more) plus race and education charts compared against national averages. **Hispanic / Latino** is reported on its own line below the race breakdown. Click **View full demographics** for the full variable table.

Demographics is measured across an area, so it needs a shape. Shapes made up of many disconnected pieces, like a **Places** boundary for a city with scattered limits, can be too fragmented to calculate demographics for — see [Demographics](/data-and-analytics/demographics.md).

Shapes you drew or extracted yourself can also run **Foot Traffic**, for an Pine59 estimate of visits inside the area. Generated trade zones can't, and neither can a shape that a combine or another analysis produced.

The card starts on **Estimate visits for this area**. Click **Estimate** to request it. Building the request takes several minutes, and the card reads **Estimating visits…** while it waits. You can keep working and come back.

A finished estimate shows **Annual visits** and the year-over-year change, over a monthly chart of the trailing two years. The most recent year is highlighted against the one before it. The chart opens pinned to the busiest month, labelled **Peak**. Click another bar to pin that month instead, or hover to preview it.

Reshaping the area starts a new estimate, since the report is tied to the exact shape you sent. Reopening the study or reselecting the shape just shows what's already there.

Areas under 10,000 m² carry too little signal for a steady number, and a note under the chart says so. Draw the building plus its parking for a steadier estimate. Some shapes can't be measured at all: one with a hole in it, one that crosses over itself, or one that includes lines or points rather than a solid area. Each says which, and what to redraw. Where the provider has no coverage, **No foot traffic data for this area** appears in place of the chart.

***

## Overlap and Cannibalization

Cannibalization is how much a pin's, store's, or deal's trade zone overlaps the trade zones of other pins, stores, and deals in the same study. For the Site Analysis version of this analysis, see [Cannibalization](/data-and-analytics/cannibalization.md).

### What You Need First

Both sides need a trade zone drawn in the study. There's no fall back to the workspace default here — pins, stores, and deals without a zone are skipped silently.

* No zone on the target: **"Add a trade zone to calculate cannibalization."** with an add button.
* Nothing else to compare: **"Nothing to compare against"** — **"Draw a trade zone on another pin or one of your existing stores to calculate cannibalization."**

Select a pin, store, or deal and the analysis runs on its own; uncheck a row to drop it and recompute. When you ask the agent, the target has to be a pin.

### Reading the Results

Results appear in the right panel. If the target has more than one trade zone you pick which to measure under **"Select one of the drawn trade zones"**; with a single zone the panel just says **Based on** that zone.

Below that, **Overall** gives the combined overlap percentage with a level badge, then one row per contributing pin, store, or deal. Uncheck a row to drop it and recompute. **Full breakdown** opens the full matrix of every trade zone against every source.

The panel is the answer — cannibalization doesn't add a new layer to the map. The overlapping trade zones are already drawn there as shapes, so you can read the geography and the numbers side by side.

### Exporting Results

Cannibalization travels with both study export formats. **Generate PDF** gives each pin with overlap its own cannibalization page, and **Download Excel** adds a **Cannibalization** sheet with one matrix per target pin. Pins with no overlap are skipped in both. See [Sharing and Exporting Studies](/study/sharing-and-exporting-studies.md).

***

## Commenting on a Shape

Every shape has a **Comments** tab in the right panel with a count badge. The first comment box reads **"Add a comment to this shape…"**; after that it's **"Reply…"**. Right-click a shape and choose **Add comment** to jump straight there. See [Annotations and Comments](/study/annotations-and-comments.md) for how threads, mentions, and notifications work.

***

## Editing and Removing Shapes

Select a shape to get its style toolbar: rename it inline, change the fill color and opacity, switch the stroke style, or click **Edit shape** to reshape it — drag the shape to move it, drag a vertex handle to pull the outline around, then click **Done editing**.

Reshaping is only offered for polygons you drew by hand. Generated trade zones, extracted boundaries, and combine results aren't reshapeable; edit the source shape or redraw instead.

In the fill color popover, drag the **Opacity** slider to make the fill more or less transparent. New shapes start at 20%. Lower it to see the map through overlapping trade zones.

**Delete** removes the selected shape.

{% hint style="warning" %}
A trade zone drawn on a pin is removed when that pin is deleted. Shapes an analysis produced are owned by that analysis — deleting one removes everything else that analysis created.
{% endhint %}

A trade zone anchored to an existing store behaves differently: stores are workspace-wide, so deleting the shape leaves the store untouched and the shape never dangles.

***

## Labels and Map Readability

Each shape's name is drawn inside it. When shapes get small or crowded, labels are hidden rather than stacked on top of each other — zoom in to bring them back.

***

## Asking the Agent

The [GrowthFactor Agent](/study/growthfactor-agent.md) can do most of this for you. Try:

* "Draw a 10 minute drive time around the Springfield store" — anchors a zone to that store.
* "Merge S1 and S2" — unions them into one shape.
* "Trim S1 by S2" — subtracts the second from the first.
* "Show me where S1 and S2 overlap" — keeps just the shared area.
* "Make S1 a trade zone for @pin1" — links an existing shape to a pin or store.
* "Make the trade zones more transparent" — lowers the fill opacity of the shapes.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.growthfactor.ai/study/shapes.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
