# The cumulative exposures graph: Divergent lines

> For AI agents: a documentation index is available at [/docs/llms.txt](/docs/llms.txt). Append `.md` to any page URL for markdown, or send `Accept: text/markdown`.

This article compares divergent lines with similar slopes against divergent lines with varying slopes. Divergent lines start from a common point and spread apart over time.

## Divergent lines with similar slopes

Sometimes your cumulative exposure graph shows divergent lines with similar slopes. This happens when your experiment starts before all variants are ready.

**Figure: Cumulative exposure with staggered variant starts**

Variant A starts receiving traffic on February 23 and Variant B on February 28, so the two lines run in parallel but stay apart.

Line chart. X axis: Date. Y axis: Unique Users. Variant A, Variant B: values from 2026-03-18 onward cover an incomplete period and render dashed.

| Date | Variant A | Variant B |
| --- | --- | --- |
| 2026-02-20 | 0 | 0 |
| 2026-02-21 | 0 | 0 |
| 2026-02-22 | 0 | 0 |
| 2026-02-23 | 90 | 0 |
| 2026-02-24 | 212 | 0 |
| 2026-02-25 | 318 | 0 |
| 2026-02-26 | 397 | 0 |
| 2026-02-27 | 512 | 0 |
| 2026-02-28 | 606 | 108 |
| 2026-03-01 | 692 | 197 |
| 2026-03-02 | 753 | 280 |
| 2026-03-03 | 871 | 402 |
| 2026-03-04 | 988 | 519 |
| 2026-03-05 | 1085 | 618 |
| 2026-03-06 | 1207 | 744 |
| 2026-03-07 | 1306 | 884 |
| 2026-03-08 | 1396 | 963 |
| 2026-03-09 | 1479 | 1044 |
| 2026-03-10 | 1609 | 1173 |
| 2026-03-11 | 1736 | 1255 |
| 2026-03-12 | 1821 | 1367 |
| 2026-03-13 | 1929 | 1478 |
| 2026-03-14 | 2042 | 1586 |
| 2026-03-15 | 2160 | 1677 |
| 2026-03-16 | 2243 | 1778 |
| 2026-03-17 | 2353 | 1885 |
| 2026-03-18 | 2479 | 2007 |
| 2026-03-19 | 2587 | 2112 |
| 2026-03-20 | 2705 | 2228 |
| 2026-03-21 | 2820 | 2337 |

In this example, the two variants began receiving traffic on two separate days, February 23 and February 28, producing a pair of staggered lines on the graph.

Don't begin an experiment until all variants are ready to receive traffic. Adding a new variant after the experiment is underway presents a misleading picture of the results, because the variants weren't subject to the same conditions for the same length of time.

### The novelty effect

Another potential issue is the novelty effect: the newness of a treatment can sway experiment results. In the example above, users exposed to Variant A had more time to adjust to the new experience. Users exposed to Variant A also had more opportunities to trigger the primary metric, especially if it's an unbounded time metric, making the comparison between variants unequal.

A central requirement of experimentation is to ensure the only difference between treatment and control is the feature you're testing. This way, you know any differences you find result from causation, not correlation.

## Divergent lines with different slopes

Your cumulative exposures graph can show divergent lines with different slopes for several reasons. If you're using a custom exposure event, users can receive old, cached variants of your experiment when they keep triggering the exposure event without triggering the assignment event.

For example, Amplitude can assign a user to the control variant without triggering the exposure event. If you later set the traffic allocation for the control variant to 0%, that user can return and trigger the exposure event without triggering a new assignment event. Amplitude counts that user as a control exposure.

This reasoning also applies to experiments with sticky bucketing on.

**Figure: Cumulative exposure with divergent slopes after a traffic change**

Both variants track each other to about 9,000 users, then the March 15 traffic allocation change sends Control climbing while the "on" variant creeps up on sticky-bucketed users alone.

Line chart. X axis: Date. Y axis: Unique Users. Vertical rule at 2026-03-15 marks "Traffic allocation change". Control, On: values from 2026-03-20 onward cover an incomplete period and render dashed.

| Date | Control | On |
| --- | --- | --- |
| 2026-03-10 | 4150 | 4090 |
| 2026-03-11 | 6176 | 6240 |
| 2026-03-12 | 7483 | 7569 |
| 2026-03-13 | 8143 | 8275 |
| 2026-03-14 | 8551 | 8684 |
| 2026-03-15 | 9000 | 9158 |
| 2026-03-16 | 11175 | 10405 |
| 2026-03-17 | 14116 | 11396 |
| 2026-03-18 | 16984 | 12320 |
| 2026-03-19 | 19355 | 12879 |
| 2026-03-20 | 21451 | 13424 |
| 2026-03-21 | 23401 | 13764 |

In this example, on March 15, the user rolled out their experiment to 100% for the control variant. Because the experiment uses sticky bucketing, the graph still shows the number of "on" users increasing after the user set the traffic allocation to 0%. This happens because Amplitude allocates variants when the SDK or API requests them, so the variant can stick to the user even if the user never receives it.

### Sticky bucketing and traffic allocation

When you select sticky bucketing and change the traffic allocation, you don't get the target traffic allocation. Instead, you get a weighted average between the two allocations, because users who already have buckets stay in their buckets. You have to wait to get close to the target traffic allocation.

If your experiment has sticky bucketing turned on and you plan to roll out a variant after it ends, delete the appropriate branch in the code and remove the feature flag. If you don't want to make a code deployment, you can also turn off sticky bucketing.
