Alteryx Designer Expert study materials
Alteryx Designer Expert study resources

Spatial Join Returns Fewer Matches Than Expected

Alteryx Designer Expert · Put your knowledge to work in context.

All case studies

Spatial Join Returns Fewer Matches Than Expected

A retail chain has 12,000 store points (WGS84 lat/long) and a trade-area polygon layer of 3,400 drive-time polygons. The analyst runs a Spatial Join (points to polygons) expecting most stores to fall inside a trade area. Only 61% match. The analyst is confident the points are correct because they plot on a map. The polygon layer was built in a projected coordinate system (State Plane, feet) and the points are in WGS84 decimal degrees. Some polygons have self-intersections from a dissolve step. The analyst wants to know why matches are lost and how to fix it without re-collecting data.

1. Why would a Spatial Join lose matches even when points visibly sit inside polygons on a map?

Read the worked answer

Visual inspection on a basemap does not prove spatial agreement in the engine. Two causes dominate:

  • Coordinate system mismatch. The points are WGS84 (degrees) and the polygons are State Plane (feet). The Spatial tools compare geometry in a common space; if the point stream is not projected to match the polygon stream (or both to a common projected CRS), the engine compares coordinates that are numerically far apart. A point at lon/lat (-93.2, 44.9) is nowhere near a State Plane coordinate in the hundreds of thousands of feet. On a map the software reprojects for display, which is why it looks correct - but the join operates on stored coordinates.
  • Invalid geometry. Self-intersecting polygons from a dissolve can fail point-in-polygon tests or behave unpredictably, dropping points that are inside the intended area.

So the 61% is not a data-collection problem; it's a CRS and geometry-validity problem.

2. Give the corrective workflow, including where to reproject and how to handle invalid polygons.

Read the worked answer

Order of operations matters:

  1. Standardize CRS before joining. Use the Spatial Info tool to confirm each stream's CRS. Reproject the points (and, if needed, polygons) to a single common projected CRS - State Plane is a good choice for distance/area work - using the Projection tool or the spatial object's projection settings. Do the reprojection upstream of the Spatial Join, not inside it.
  2. Validate geometry. Run the polygons through a geometry-clean step (e.g., a Spatial Process/repair or a buffer-by-zero style cleanup) to resolve self-intersections from the dissolve. Re-dissolve with a clean method if needed.
  3. Spatial Join points → polygons in the shared CRS, choosing "point within polygon" semantics appropriate to trade-area assignment.
  4. Reconcile the unmatched. Inspect the unmatched points; some genuinely fall outside all trade areas. Compare the new match rate to expectation and spot-check a sample against known stores.
  5. If a store can fall in overlapping trade areas, decide precedence explicitly (e.g., smallest area wins) rather than letting join order decide.

The fix is projection + geometry repair upstream, then a single clean Spatial Join.