For the complete documentation index, see llms.txt. This page is also available as Markdown.

Spreadsheets

Upload and map Excel, CSV and Google Sheets data for location-based visualization.

Tabular data such as spreadsheets can reference geography in many forms: explicitly with lat/lon points and geometries, or implicitly with zip codes, place names, or street addresses. When you upload a spreadsheet, Felt uses AI to identify the geometry columns in your data and depending on the type of geometry will either use Geocoding or Geomatching.

Geocoding

Sometimes, our data doesn’t have explicit coordinates, such as latitudes and longitudes. Instead, we might have implicit geospatial data, such as names of street addresses. Geocoding is the process of converting address data into points.

To visualize address data make sure your fields have appropriate names, then drag and drop your spreadsheet or CSV directly into a map!

By default, Felt will geocode address data for up to 10,000 addresses per upload. If you need a higher limit, contact sales to upgrade to our Enterprise plan.

Preparing address data

Address fields should be given easy-to-find names, such as:

  • address for single fields with complete address

  • number & street for house numbers and street names

  • city or locality for place names

  • zip for postal code

  • state, region, or province for first-order administrative divisions like U.S. states

  • country for countries

Reviewing accuracy

Geocoding isn’t a perfect process. Much like a search engine, sometimes you might not find exactly what you’re looking for, depending on both your input and the data that’s available.

Fortunately, Felt lets you review the quality of your geocoding upload, and also download the results so you can fine-tune your input if needed.

You can toggle the Geocoding Results any time you want from the table view by clicking See full report in the Found column and even download the results to fix issues and reupload.

Geomatching

Tables often reference countries, states, zip codes or other regions without including the geometry themselves. Historically, you’d have to join this data with other datasets to work with it on a map. Felt does this automatically with Geomatching.

Available geomatching regions

Data will be checked for the geographic regions listed below and converted to polygon geometries when possible. Optionally, hints present in the column name can be used to choose among valid matches, such as “zip” used to name a column of U.S. ZIP codes.

Source
Example Values
Column Name Hints

Countries

Natural Earth Admin 0 United States point of view

Names: United States, Ukraine ISO 3166-1 alpha-2 codes: US, UA ISO 3166-1 alpha-3 codes: USA, UKR

country, nation, adm0, admin0, admin-0

Global First-Order Admin Areas

Natural Earth Admin 1 States, provinces, etc.

Names: California, Kiev ISO 3166-2 codes: US-CA, UA-32 Admin-1 codes: USA-3521, UKR-321

state, province, adm1, admin1, admin-1

Global Time Zones

Names: America/Los_Angeles, Europe/Kyiv

tz, tzinfo, timezone, time zone

EU Statistical Units (NUTS 1)

Names: Thüringen, Αττική NUTS codes: DEG, EL3

state, province, region, nuts

EU Statistical Units (NUTS 2)

Names: Lazio, Θεσσαλία NUTS codes: ITI4, EL61

state, province, region, nuts

EU Statistical Units (NUTS 3)

Names: Eure-et-Loir, Essex Thames Gateway NUTS codes: FRB02, UKH37

state, province, region, nuts

EU Local Admin. Units (LAU)

Names: Eggendorf im Traunkreis,Čejč LAU codes: AT_41004, 586099 GISCO

codes: AT_41004, CZ_586099

municipio, municipality, commune, comuni, gemeinde, lau

US States

Names: California, New York Postal codes: CA, NY FIPS codes: 06,04000US36, 0400000US48

state

US Counties

FIPS codes: 06001, 05000US36061, 0500000US48453

county

US CBSAs

Names: San Francisco-Oakland-Berkeley, CA, New York-Newark-Jersey City, NY-NJ-PA Metro Area FIPS codes: 41860, 33000US35620,

3300000US12420

cbsa

US Zip Codes (ZCTAs)

ZIP codes: 94612, 06511

zip, zipcode, postcode

US Census Tracts

FIPS codes: 06001402900, 14000US09170141900, 1400000US48453001103

tract

H3 geomatching

When a spreadsheet contains H3 identifiers, Felt automatically detects and geomatches them to hexagonal cells at the encoded resolution.

Supported H3 formats

Felt will automatically detect and process both hexadecimal string (e.g., 8928308280fffff) and integer (e.g., 613196848522715135) representations of H3 identifiers.

The H3 level detected from your IDs is automatically used as the default resolution for display.

To ensure Felt correctly identifies and maps your H3 data:

  • Column headers should be clearly labeled (e.g., h3_id, h3_index )

  • H3 indexes should be in standard format without additional characters

  • All H3 indexes should be at the same resolution level

If H3 identifiers aren't automatically geomatched:

  • Open Geometry settings by clicking the icon in the upper right of the table

  • Select H3 as the Area type, choose the correct H3 column, then click Update spreadsheet

Why only 5 rows per place get matched

When Felt geomatches a column of place identifiers to map boundaries, it attaches the boundary to at most 5 rows that share the same identifier; the 6th row onward stays unmatched. ZIP codes are the most common case, but this applies to any identifier Felt geomatches—states, counties, countries, and the other regions listed under Available geomatching regions.

Every matching row gets the same boundary shape. If 50 rows have ZIP code 94110, they'd all receive the exact same 94110 polygon, stacked on top of one another—identical overlapping shapes that bloat the layer, slow the map down, and make styling and clicking unpredictable. The cap keeps that from happening.

If many rows share the same identifier, it usually means your data isn't shaped the way you want it yet. Summarize it into one row per place first—a proper choropleth instead of a stack of duplicate polygons.

Summarize first, then map

  1. Summarize by the place column. Group rows that share an identifier into one row with a count, sum, or average—in your source spreadsheet, or, on the Enterprise plan, with an SQL queries against a connected source.

  2. Match to boundaries. With one row per place, you're well under the limit, so every place geomatches.

  3. Style by your summary value. Use a Color range visualization with a graduated color ramp to turn your totals into a choropleth. See Vector layers.

Changing or selecting a geometry type

Occasionally Felt doesn't automatically detect the columns with spatial data, or the detected spatial column needs to be changed. Fortunately, you can select the most appropriate geometry type after uploading the data into Felt.

Changing the geometry type drawn by Felt allows you to customize the way your data is shown on the map. Making these changes allows you to color-code the data the way you need it displayed.

Steps

  1. Select the layer in the Legend

  2. Click Open table in the toolbar

  1. Click on Geometry settings (underneath the icon in the upper right of the table)

  1. Select desired geometry type and columns

  2. Click Update spreadsheet

Selecting address columns will result in Geocoding addresses, while country names or ZIP codes will result in Geomatching regions.

Examples

  1. Choosing different columns in a spreadsheet to ensure the right location data is used.

  2. Change the points on a map to fill up their associated province, state, or zip code region

  1. Symbolize an area or region as a point instead

Best practices

Structure your data

  • Use one header row with clear column names.

  • Each row should represent a single geographic feature or location. Avoid duplicate entries for the same location across multiple tabs or spreadsheets. Overlapping points won't add value on the map.

  • Remove Excel-specific formatting: strip merged cells, complex Excel styling, and calculated fields before uploading. Try pasting only the values of your styled Excel sheet into a new sheet and upload that to Felt.

  • Keep header names consistent if you plan to refresh or update the data later—renaming columns used in styling or filters will break those settings

Organize data efficiently

  • Consolidate related data into one spreadsheet and use a "category" or "type" column to distinguish between similar items

    • You can filter and style by category in Felt after uploading—different colors and shapes can represent different types

  • Use columns strategically: columns should track attributes and metrics you want to visualize, filter, or analyze in Felt (type, category, owner, status, revenue, etc.).

    • You can create components in Felt to filter and interact with column data.

  • Use separate spreadsheets when:

    • Tracking entirely different entities (e.g., separate companies or unrelated datasets)

    • Workflows require independent management or separate access permissions of the data

Ensure accurate geocoding

  • Longitude and latitude coordinates provide the most reliable results. Coordinates are always stable and won't have geocoding errors.

  • Provide complete addresses and include street number, street name, city, state, and ZIP code. Incomplete addresses may fail to geocode. Avoid descriptive text in address fields.

  • Check the geocoding report after upload to identify failed locations. Look for the chart icon in the table view (next to the Found column)

  • Download results to see which addresses need correction. Fix issues in your source spreadsheet and use Upload new version to update the results

Refresh data without breaking your map

  • Use Upload new version to refresh data without needing to restyle

  • When refreshing, maintain column consistency. Do not rename columns that are used in styling, filters, or components. Felt uses column headers to maintain styling when you upload new versions.

  • You can add new columns without affecting existing visualizations

  • Felt will detect if the column used in styling is no longer available and prompt you to select an updated column for styling consistency

Geographic data formats

  • Uploads can include geographic data in unprojected decimal degrees latitude and longitude

  • Geographic fields should be given easy-to-find names, such as:

    • geometry, wkt, or geom_wkt

    • x & y

    • lat & lon, latitude & longitude, or lat & lng

  • Whole geometries must be in one of these formats:

    • Well Known Text

      • examples: POINT(-122 37), LINESTRING (-122 37, -123 38)

    • Hex-encoded Well Known Binary

      • example:'01010000000000000000805ec00000000000804240'

    • GeoJSON Geometry Objects

      • example: {'type': 'Point', 'coordinates': (-122.0, 37.0)}

  • Felt can find the location of data using a number of different methods including:

    • Coordinates and Addresses types draw points (see Geocoding)

    • Provinces, states, zip codes, countries draw areas/polygons (see Geomatching)

      • Natural Earth v1, US Census, 2020, and Eurostat, 2021 types support polygons

    • Latitude & Longitude coordinates

    • WKT and WKB are more advanced types that can be used for drawing points, lines, or areas.

Troubleshooting

See the Troubleshooting page for common upload failures and how to fix them.

Last updated

Was this helpful?