> For the complete documentation index, see [llms.txt](https://developers.felt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.felt.com/felt-style-language/classification-methods.md).

# Classification methods

[Numeric](/felt-style-language/types-of-visualizations/numeric-visualizations-color-and-size.md), [H3](/felt-style-language/types-of-visualizations/h3.md), and [raster](/felt-style-language/types-of-visualizations/raster.md) (numeric and tinted hillshade) visualizations all turn a range of values into discrete classes (or a smooth gradient) using the `steps` field in the `config` block. The classification method decides where the breaks between classes fall.

## Methods

| Method            | What it does                                                   | Best for                                                           |
| ----------------- | -------------------------------------------------------------- | ------------------------------------------------------------------ |
| `continuous`      | Smooth gradient, no discrete classes                           | Proportional symbols, smooth color ramps                           |
| `jenks`           | Natural breaks — minimizes variance within each class          | Most cases; a good starting point                                  |
| `quantiles`       | Equal number of features in each class                         | Balanced representation, evenly distributed data                   |
| `equal-intervals` | Equal-sized value bins                                         | When the value ranges themselves matter                            |
| `stddev`          | Classes in 1σ steps with the middle class centered on the mean | Data with a near-normal distribution                               |
| `geo-intervals`   | Break points in a geometric progression between min and max    | Multiplicative, strongly skewed data (values must be non-negative) |

All shortcut methods except `continuous` require a `count`. Raster algebra visualizations support only `continuous` and `equal-intervals`.

## Specifying `steps`

There are two ways to define `steps`.

**Shortcut (recommended when you don't know the data's distribution).** Name a method and a class count and let Felt compute the break points from the data:

```json
{
  "config": {
    "numericAttribute": "population_density",
    "steps": {"type": "jenks", "count": 5}
  }
}
```

For a smooth gradient, use the continuous shortcut:

```json
{
  "config": {
    "numericAttribute": "temperature",
    "steps": {"type": "continuous"}
  }
}
```

**Explicit break points (when you know the values you want).** Provide the break points directly:

```json
{
  "config": {
    "numericAttribute": "magnitude",
    "steps": [0, 3, 5, 7, 9]
  }
}
```

## How breaks map to colors and sizes

* **Classed:** `N` break points produce `N − 1` classes. An explicit `color` or `size` array must therefore have exactly `N − 1` entries. (A palette shortcut such as `@galaxy` is expanded for you.)
* **Continuous:** provide **2 or more** colors and Felt interpolates between them across the full value range. For proportional symbols, give `size: [min, max]` and sizes scale smoothly between those two values.

{% hint style="info" %}
For choropleths and other classed thematic maps, 5–7 classes usually reads best. For right-skewed data (common with population or income), prefer `quantiles` or `jenks` over `equal-intervals`. When you have the data's min/max on hand, use them to inform the method and breaks.
{% endhint %}

See [Numeric visualizations](/felt-style-language/types-of-visualizations/numeric-visualizations-color-and-size.md) for full color and size examples, and [Colors & palettes](/felt-style-language/colors-and-palettes.md) for palette choices.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers.felt.com/felt-style-language/classification-methods.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
