New Feature:
Spatial Data Calculations


In summer of 2022, I worked on the Analytics & Data Modeling team at Tableau, a Salesforce company, to design a new feature that enables spatial data calculations on user-selected datapoints and makes spatial data analysis easier and faster for non-geospatial experts. In this project that involved a high level of ambiguity and technical complexity, I was able to lead the UX while working closely with and learning from my cross-functional partners and mentors.

Professional project at Tableau, Salesforce
June - August 2022
Denny Bromley & Sarah Battersby (Researchers)
Jim Walseth & Steve Hollasch (Software Engineers)
Joshua Tan (Product Manager)
Shelley Tao (UX Designer)
User flows
Wireframes & prototypes
Project pitch demo


Users have to set up complex spatial intersection joins.

Currently, the only pathway to analyzing spatial relationships between data sources is to set up spatial intersection joins. This process can be complicated for users not accustomed to working with spatial data and joins, and more importantly, presents four main pain points and limitations as follows.

  • Users are required to set up the intersections on the data source level by going back to the data pane from the viz, which takes them away from the visual flow of analysis.
  • They have to join the entire data sets even when they only want to focus on one or a few specific geographic location(s) of interest, which is a computationally expensive and inefficient process that should be avoided.
  • Some Tableau published data sources don’t allow users to create joins, which limits users’ ability to get insights from spatial relationships.
  • Parameters are not supported in join calculations. And spatial data type is not supported as a parameter to begin with.

Therefore, an alternative way of analyzing spatial relationships should be made available to resolve these issues and make it easier for users to gain spatial data insights. 



The proposed solution is a new Tableau feature that enables spatial calculations with parameters (similar to having variables in algebra equations). This way, users are able to choose a location of interest and visually set up a light-weight spatial calculation without needing to create a join for all geometries.

As a designer, I aimed for this feature to:

  • Be easily discoverable within users' current workflows. Both users who already use workarounds and users who are looking for solutions in spatial relationships should be able to discover the entry point to the new feature in their current workflows.
  • Have a shallow learning curve. Users who have worked with other types of parameters in Tableau should be able to know how spatial parameters work with minimum help instructions and without failing on task completion or task comprehension. 


Project scope? Product requirements?

Upon onboarding, I immediately identified that the project scope and product requirements were not well-defined.

To help move the project forward quickly, I created a high level user flow to understand what our scope could include and worked out scoping and prioritization with the PM. The diagram also served as a reference for the team to get aligned and for myself to act on design opportunities throughout the project. I also made a project plan that outlines my activities and deliverables for each week to help me stay motivated and set expectations with the team.

User flow diagram
Design project plan

Spatial data type is different from other data types.

Parameters are already available in Tableau for data types such as string and float. However, spatial data are different in that they are not humanly readable and cannot be easily typed, edited, copied or pasted. They are also difficult to analyze and explore without a visualization.

So I did in-depth research on existing UX patterns and behaviors and discussed routinely with the engineering team to evaluate ideas and understand technical feasibility. After weeks of iterations, I proposed a series of updates to the "create parameter" flow and interface, which let users easily define allowable data for spatial parameters and to identify where/what the data are.


Prototype: MVP happy path

To demonstrate the prototype, we'll look at a scenario that's inspired by a real customer problem. The scenario is that Hilton wants to know where to build the next hotel in Seattle based on existing competition, the volume of visitors, etc.

In this prototype, only those UI components with new updates for spatial data are made at high fidelity.

Step 0: Set up a worksheet

After importing data sets to Tableau and creating a worksheet, we can see the following data visualized on the map below:

  • Gray points: Existing hotels
  • White points: Potential locations for a new hotel
  • Polygons: Census tracts that each contains the number of monthly visitors within the region

Step 1: Create a spatial parameter

This step is similar to making a variable for equations in algebra, which allows users to analyze each geometry at a time.

Step 2: Add a parameter action

Adding an action for the parameter that was just created enables parameter value selection through clicking marks on the map.

Step 3: Create a calculated field

This step allows the user to define a calculation with the parameter, just like creating an equation with the variable that was made. In this scenario, Hilton would use the INTERSECTS expression that returns a boolean of whether a competing hotel and a census tract falls within a certain distance from the selected location.

Step 4: Select a value for the parameter

After a few additional clicks, the user is ready to select a value for the spatial parameter to see results of the calculation. Once a geometry is loaded into the parameter, calculated results will be visualized so the user knows exactly which hotels are nearby and thus how many beds there are as well as the number of visitors within these census tracts nearby.

  • Yellow circle: Buffer around the selected location
  • Pink points: Existing hotels that fall within the buffer
  • Blue polygons: Census tracts that intersected with the buffer

Finally, Hilton will be able to use the calculation to create more visualizations and dashboards to compare some options.

Resulting dashboard example


In this internship, I designed for an established product, which required me to gain a holistic view of the product, business, and users. And I was able to think about how my designs could both build upon what already exists and have an impact on future designs of the product.

Another major takeaway for me from working closely with people from various backgrounds is knowing my audience when asking questions and discussing design decisions. As a designer, I learned and practiced speaking the language of the person I'm talking to. For example, with a PM, I might focus on how my design decision could add value to customers and whether it'll impact project timeline and priorities. With a research scientist, I might ask questions about the validity and prioritization of various use cases.

I'm open to
UX, product, interaction design opportunities
in 2023.

Let’s get in touch