---
title: "Classification methods for by-quantity styling"
description: "What each method does when you colour a layer by a number: Equal Interval, Quantile, Natural Breaks (Jenks), and Head/Tail Breaks."
seo:
  title: "Classification methods reference"
sidebar:
  label: "Classification methods"
---

When you colour features by a numeric field and pick a class count in `Style as`, MangoMap offers four ways to split the values into class breaks: `Equal Interval`, `Quantile`, `Natural Breaks (Jenks)`, and the head/tail method. The method changes each feature's class and colour, even when the data stays the same.

**[See it on an example map](https://mangomap-staging.com/examples-staging/maps/1gayxa7f/world-classification-lab)**

Open the World Classification Lab. `Population — Equal Interval` is on when the map opens. Turn it off, then turn on one other layer at a time in `Population Classes`: `Population — Quantile`, `Population — Natural Breaks`, or `Population — Head/Tails`. Each layer colours the same countries with a different method.

The methods are the same on point, line, and polygon layers. Only one label differs:

|                            | Point                     | Line                      | Polygon                   |
| -------------------------- | ------------------------- | ------------------------- | ------------------------- |
| Colour driver              | `Colour markers by`       | `Colour lines by`         | `Fill polygons by`        |
| Head/tail method label     | `Head/Tails`              | `Head/Tail Breaks`        | `Head/Tail Breaks`        |
| Default method             | `Natural Breaks (Jenks)`  | `Natural Breaks (Jenks)`  | `Natural Breaks (Jenks)`  |
| Class counts               | `3 classes` to `9 classes` | `3 classes` to `9 classes` | `3 classes` to `9 classes` |

To change a class break's boundary by hand, use `Customise Class Breaks` in the Style tab. For example, round `17.3` to `20`, or match a regulation threshold. The calculated class breaks are your starting point. See [How to customise category and class break symbology](/docs/styling-layers/customise-category-and-class-break-symbology).

For help choosing a method for your data and your viewers' question, see [Choosing a classification method for choropleth maps](/docs/styling-layers/concepts-choosing-classification-method).

## Equal Interval

|               |                                                                                                                    |
| ------------- | ------------------------------------------------------------------------------------------------------------------ |
| Use when      | The full range matters and you want every class to span the same numeric width. |
| Best for      | Data where absolute differences mean something: rainfall in mm, elevation in metres, temperature. |
| Watch out for | Skewed data. A few large values can push most features into the lowest class and leave middle classes empty. |

`Equal Interval` divides `(max − min)` into N classes of equal width. For a field from 0 to 1,000 with 5 classes, the class breaks fall at 200, 400, 600, and 800.

On world country populations, most countries fall in the lowest class:

<img src="/_assets/styling-layers/concepts-choosing-classification-method--equal-interval.png" alt="World Classification Lab with Population — Equal Interval shown: almost every country is the palest yellow and only China and India are dark red; the legend lists the classes >=140, >279543112, >559086084, >838629056, and >1118172028" width="1600" height="960" />

## Quantile

|               |                                                                                        |
| ------------- | -------------------------------------------------------------------------------------- |
| Use when      | You want each class to hold about the same number of values. |
| Best for      | Maps where every colour should cover a similar share of the features, to show rank. |
| Watch out for | Class boundaries fall at uneven numbers (for example 17.3 instead of 20). Many repeated values make the classes uneven. The field needs more distinct values than classes. |

`Quantile` sorts the field's distinct values and splits them into N groups of about the same size. Each value counts once, however many features share it. When most features have different values, such as population, each class holds about the same number of features. When many features share a value, such as a 1–5 rating, the counts per class can differ a lot.

On world country populations, every colour covers a similar share of the countries:

<img src="/_assets/styling-layers/concepts-choosing-classification-method--quantile.png" alt="World Classification Lab with Population — Quantile shown: countries spread across all five colours from pale yellow to dark red; the legend lists the classes >=140, >2494530, >6855713, >16296364, and >39309783" width="1600" height="960" />

## Natural Breaks (Jenks)

|               |                                                                                                                                           |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Use when      | Your data has clear groups and you want the class breaks to fall at the gaps between them. |
| Best for      | Data with several clusters of values, such as population, revenue, or building height. |

`Natural Breaks (Jenks)` uses the Jenks optimisation method. It looks for class breaks that keep the values inside each class close together and the classes far apart. The class breaks fall at "natural" gaps in the data.

Features with the same value are always in the same class. So you can't have more classes than the field has distinct values. If you pick more, MangoMap makes no class breaks and shows a message with the field name and the class count. For 9 classes on a field `lanes` with 7 distinct values:

```text
Failed to generate breaks: Error: Sorry, lanes doesn't have enough values to support 9 classbreaks. Please reduce the classbreaks.
```

`Quantile` shows the same message when the class count is equal to or more than the number of distinct values.

On world country populations, the top classes hold the most populous countries:

<img src="/_assets/styling-layers/concepts-choosing-classification-method--natural-breaks.png" alt="World Classification Lab with Population — Natural Breaks shown: many countries are orange or red and China and India are dark red; the legend lists the classes >=140, >2494530, >6855713, >25666161, and >328239523" width="1600" height="960" />

## Head/Tail Breaks

Point layers label this method `Head/Tails`. Line and polygon layers label it `Head/Tail Breaks`.

|               |                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------- |
| Use when      | You want ranges tied to the number line, like `Equal Interval`, with more detail among the low values. |
| Best for      | Data where values thin out steadily towards the top of the range. |
| Watch out for | On very skewed data, most features can still fall in the lowest class. |

The method divides `(max − min)` into classes that get wider from the lowest class to the highest. With N classes, the first class is 1 step wide, the second 2 steps, and so on up to N steps. For a field from 0 to 1,500 with 5 classes, a step is 100, so the class breaks fall at 100, 300, 600, and 1,000. You get the number of classes you choose.

On one scale, this example and the `Equal Interval` example show how the class widths differ:

{/* diagram:equal-interval-head-tail-strips */}
<svg class="dark:hidden" style="width: 100%; height: auto" viewBox="0 0 640 296" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="equal-interval-head-tail-strips-inline-title equal-interval-head-tail-strips-inline-desc">
  <title id="equal-interval-head-tail-strips-inline-title">Equal Interval and Head/Tail Breaks class widths</title>
  <desc id="equal-interval-head-tail-strips-inline-desc">Two number lines on one scale: Equal Interval splits 0 to 1,000 into 5 classes 200 wide, with class breaks at 200, 400, 600 and 800; Head/Tail Breaks splits 0 to 1,500 into classes 100, 200, 300, 400 and 500 wide, with class breaks at 100, 300, 600 and 1,000.</desc>
  <defs>
    <marker id="equal-interval-head-tail-strips-inline-arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#525252"/></marker>
    <marker id="equal-interval-head-tail-strips-inline-arrow-accent" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#c4360c"/></marker>
  </defs>
  <rect width="100%" height="100%" fill="#f5f5f5"/>
  <text x="16" y="30" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Equal Interval</text>
  <text x="16" y="48" fill="#525252" font-size="12" font-family="inherit" text-anchor="start">0 to 1,000 in 5 classes: every class is 200 wide</text>
  <rect x="16" y="80" width="81.07" height="24" fill="#edd6d0"/>
  <text x="56.53" y="72" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="97.07" y="80" width="81.07" height="24" fill="#e3b0a1"/>
  <text x="137.6" y="72" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="178.13" y="80" width="81.07" height="24" fill="#d9866e"/>
  <text x="218.67" y="72" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="259.2" y="80" width="81.07" height="24" fill="#ce5c3b"/>
  <text x="299.73" y="72" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="340.27" y="80" width="81.07" height="24" fill="#c4360c"/>
  <text x="380.8" y="72" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <line x1="56.53" y1="80" x2="56.53" y2="104" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="137.6" y1="80" x2="137.6" y2="104" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="218.67" y1="80" x2="218.67" y2="104" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="299.73" y1="80" x2="299.73" y2="104" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="380.8" y1="80" x2="380.8" y2="104" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <rect x="16" y="80" width="405.33" height="24" fill="none" stroke="rgba(23,23,23,0.32)" stroke-width="1"/>
  <line x1="97.07" y1="76" x2="97.07" y2="108" stroke="#171717" stroke-width="1"/>
  <line x1="178.13" y1="76" x2="178.13" y2="108" stroke="#171717" stroke-width="1"/>
  <line x1="259.2" y1="76" x2="259.2" y2="108" stroke="#171717" stroke-width="1"/>
  <line x1="340.27" y1="76" x2="340.27" y2="108" stroke="#171717" stroke-width="1"/>
  <text x="16" y="122" fill="#525252" font-size="12" font-family="inherit" text-anchor="start">0</text>
  <text x="97.07" y="122" fill="#171717" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">200</text>
  <text x="178.13" y="122" fill="#171717" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">400</text>
  <text x="259.2" y="122" fill="#171717" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">600</text>
  <text x="340.27" y="122" fill="#171717" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">800</text>
  <text x="421.33" y="122" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">1,000</text>
  <text x="16" y="154" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Head/Tail Breaks</text>
  <text x="16" y="172" fill="#525252" font-size="12" font-family="inherit" text-anchor="start">0 to 1,500 in 5 classes: a step is 100, and the classes are 1, 2, 3, 4 and 5 steps wide</text>
  <rect x="16" y="204" width="40.53" height="24" fill="#edd6d0"/>
  <text x="36.27" y="196" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">100</text>
  <rect x="56.53" y="204" width="81.07" height="24" fill="#e3b0a1"/>
  <text x="97.07" y="196" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="137.6" y="204" width="121.6" height="24" fill="#d9866e"/>
  <text x="198.4" y="196" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">300</text>
  <rect x="259.2" y="204" width="162.13" height="24" fill="#ce5c3b"/>
  <text x="340.27" y="196" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">400</text>
  <rect x="421.33" y="204" width="202.67" height="24" fill="#c4360c"/>
  <text x="522.67" y="196" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">500</text>
  <line x1="97.07" y1="204" x2="97.07" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="178.13" y1="204" x2="178.13" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="218.67" y1="204" x2="218.67" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="299.73" y1="204" x2="299.73" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="340.27" y1="204" x2="340.27" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="380.8" y1="204" x2="380.8" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="461.87" y1="204" x2="461.87" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="502.4" y1="204" x2="502.4" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="542.93" y1="204" x2="542.93" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="583.47" y1="204" x2="583.47" y2="228" stroke="#f5f5f5" stroke-opacity="0.7" stroke-width="1"/>
  <rect x="16" y="204" width="608" height="24" fill="none" stroke="rgba(23,23,23,0.32)" stroke-width="1"/>
  <line x1="56.53" y1="200" x2="56.53" y2="232" stroke="#171717" stroke-width="1"/>
  <line x1="137.6" y1="200" x2="137.6" y2="232" stroke="#171717" stroke-width="1"/>
  <line x1="259.2" y1="200" x2="259.2" y2="232" stroke="#171717" stroke-width="1"/>
  <line x1="421.33" y1="200" x2="421.33" y2="232" stroke="#171717" stroke-width="1"/>
  <text x="16" y="246" fill="#525252" font-size="12" font-family="inherit" text-anchor="start">0</text>
  <text x="56.53" y="246" fill="#171717" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">100</text>
  <text x="137.6" y="246" fill="#171717" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">300</text>
  <text x="259.2" y="246" fill="#171717" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">600</text>
  <text x="421.33" y="246" fill="#171717" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">1,000</text>
  <text x="624" y="246" fill="#525252" font-size="12" font-family="inherit" text-anchor="end">1,500</text>
  <text x="16" y="280" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="start">SAME SCALE FOR BOTH, A THIN LINE EVERY 100. CLASS WIDTH ABOVE, CLASS BREAKS BELOW</text>
</svg>
<svg class="hidden dark:block" style="width: 100%; height: auto" viewBox="0 0 640 296" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="equal-interval-head-tail-strips-inline-dark-title equal-interval-head-tail-strips-inline-dark-desc">
  <title id="equal-interval-head-tail-strips-inline-dark-title">Equal Interval and Head/Tail Breaks class widths</title>
  <desc id="equal-interval-head-tail-strips-inline-dark-desc">Two number lines on one scale: Equal Interval splits 0 to 1,000 into 5 classes 200 wide, with class breaks at 200, 400, 600 and 800; Head/Tail Breaks splits 0 to 1,500 into classes 100, 200, 300, 400 and 500 wide, with class breaks at 100, 300, 600 and 1,000.</desc>
  <defs>
    <marker id="equal-interval-head-tail-strips-inline-dark-arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#a3a3a3"/></marker>
    <marker id="equal-interval-head-tail-strips-inline-dark-arrow-accent" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#ff7a4d"/></marker>
  </defs>
  <rect width="100%" height="100%" fill="#141414"/>
  <text x="16" y="30" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Equal Interval</text>
  <text x="16" y="48" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="start">0 to 1,000 in 5 classes: every class is 200 wide</text>
  <rect x="16" y="80" width="81.07" height="24" fill="#3a241d"/>
  <text x="56.53" y="72" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="97.07" y="80" width="81.07" height="24" fill="#693929"/>
  <text x="137.6" y="72" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="178.13" y="80" width="81.07" height="24" fill="#9c4f35"/>
  <text x="218.67" y="72" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="259.2" y="80" width="81.07" height="24" fill="#d06642"/>
  <text x="299.73" y="72" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="340.27" y="80" width="81.07" height="24" fill="#ff7a4d"/>
  <text x="380.8" y="72" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <line x1="56.53" y1="80" x2="56.53" y2="104" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="137.6" y1="80" x2="137.6" y2="104" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="218.67" y1="80" x2="218.67" y2="104" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="299.73" y1="80" x2="299.73" y2="104" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="380.8" y1="80" x2="380.8" y2="104" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <rect x="16" y="80" width="405.33" height="24" fill="none" stroke="rgba(242,242,242,0.34)" stroke-width="1"/>
  <line x1="97.07" y1="76" x2="97.07" y2="108" stroke="#f2f2f2" stroke-width="1"/>
  <line x1="178.13" y1="76" x2="178.13" y2="108" stroke="#f2f2f2" stroke-width="1"/>
  <line x1="259.2" y1="76" x2="259.2" y2="108" stroke="#f2f2f2" stroke-width="1"/>
  <line x1="340.27" y1="76" x2="340.27" y2="108" stroke="#f2f2f2" stroke-width="1"/>
  <text x="16" y="122" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="start">0</text>
  <text x="97.07" y="122" fill="#f2f2f2" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">200</text>
  <text x="178.13" y="122" fill="#f2f2f2" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">400</text>
  <text x="259.2" y="122" fill="#f2f2f2" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">600</text>
  <text x="340.27" y="122" fill="#f2f2f2" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">800</text>
  <text x="421.33" y="122" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">1,000</text>
  <text x="16" y="154" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Head/Tail Breaks</text>
  <text x="16" y="172" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="start">0 to 1,500 in 5 classes: a step is 100, and the classes are 1, 2, 3, 4 and 5 steps wide</text>
  <rect x="16" y="204" width="40.53" height="24" fill="#3a241d"/>
  <text x="36.27" y="196" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">100</text>
  <rect x="56.53" y="204" width="81.07" height="24" fill="#693929"/>
  <text x="97.07" y="196" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">200</text>
  <rect x="137.6" y="204" width="121.6" height="24" fill="#9c4f35"/>
  <text x="198.4" y="196" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">300</text>
  <rect x="259.2" y="204" width="162.13" height="24" fill="#d06642"/>
  <text x="340.27" y="196" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">400</text>
  <rect x="421.33" y="204" width="202.67" height="24" fill="#ff7a4d"/>
  <text x="522.67" y="196" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">500</text>
  <line x1="97.07" y1="204" x2="97.07" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="178.13" y1="204" x2="178.13" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="218.67" y1="204" x2="218.67" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="299.73" y1="204" x2="299.73" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="340.27" y1="204" x2="340.27" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="380.8" y1="204" x2="380.8" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="461.87" y1="204" x2="461.87" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="502.4" y1="204" x2="502.4" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="542.93" y1="204" x2="542.93" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <line x1="583.47" y1="204" x2="583.47" y2="228" stroke="#141414" stroke-opacity="0.7" stroke-width="1"/>
  <rect x="16" y="204" width="608" height="24" fill="none" stroke="rgba(242,242,242,0.34)" stroke-width="1"/>
  <line x1="56.53" y1="200" x2="56.53" y2="232" stroke="#f2f2f2" stroke-width="1"/>
  <line x1="137.6" y1="200" x2="137.6" y2="232" stroke="#f2f2f2" stroke-width="1"/>
  <line x1="259.2" y1="200" x2="259.2" y2="232" stroke="#f2f2f2" stroke-width="1"/>
  <line x1="421.33" y1="200" x2="421.33" y2="232" stroke="#f2f2f2" stroke-width="1"/>
  <text x="16" y="246" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="start">0</text>
  <text x="56.53" y="246" fill="#f2f2f2" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">100</text>
  <text x="137.6" y="246" fill="#f2f2f2" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">300</text>
  <text x="259.2" y="246" fill="#f2f2f2" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">600</text>
  <text x="421.33" y="246" fill="#f2f2f2" font-size="12" font-weight="600" font-family="inherit" text-anchor="middle">1,000</text>
  <text x="624" y="246" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="end">1,500</text>
  <text x="16" y="280" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="start">SAME SCALE FOR BOTH, A THIN LINE EVERY 100. CLASS WIDTH ABOVE, CLASS BREAKS BELOW</text>
</svg>
{/* /diagram:equal-interval-head-tail-strips */}

On world country populations, the lowest class is narrower than with `Equal Interval`, but it still holds most countries:

<img src="/_assets/styling-layers/concepts-choosing-classification-method--head-tails.png" alt="World Classification Lab with Population — Head/Tails shown: most countries are pale yellow, a few large countries such as Russia, Nigeria, and Indonesia are light orange, and China and India are dark red; the legend lists the classes >=140, >93181130.66666667, >279543112, >559086084, and >931810046.6666667" width="1600" height="960" />

{/* TODO: product - MangoMap's head/tail method calls geostats getClassArithmeticProgression (apps/api/src/schemas/layer/functions/shared/analysis-sql.ts, generateClassbreaksWithGeoStats), not the recursive split at the mean that "head/tail breaks" usually means. This entry describes current behaviour. Update it if the product changes. */}

## Switching between methods

Changing the classification method rebuilds the class breaks from scratch. Changes you made to a class break's colour, range, or label are lost when the method, field, or class count changes. To keep custom values, choose the method first and customise last.

## Related

- [Choosing a classification method for choropleth maps](/docs/styling-layers/concepts-choosing-classification-method): the explanation that goes with this reference.
- [How to style features by quantity](/docs/styling-layers/style-by-quantity)
- [How to customise category and class break symbology](/docs/styling-layers/customise-category-and-class-break-symbology)
- [My classification produced empty buckets or weird breaks](/docs/styling-layers/troubleshoot-classification-empty-buckets)
- [Point layer style controls](/docs/styling-layers/point-style-reference)
- [Line layer style controls](/docs/styling-layers/line-style-reference)
- [Polygon layer style controls](/docs/styling-layers/polygon-style-reference)
- [How layer styling works in MangoMap](/docs/styling-layers/concepts-layer-styling)
