If I understand correctly, this is working as intended.
The percentages are based on the latest data, not the whole period.
When dragging the right hand side you are changing the latest data and so the numbers have to update.
When dragging the left hand side, you are changing the earlier data, and the latest data is not changing, so you don't have to update.
And the reason we only look at the latest data, rather than the whole period, is that it's not really possible to accurately do that with the CrUX history API for two reasons:
- The History API contains up to 40 weeks of data on a weekly basis, but each point is for 28-days (not just the week) in line with the 28-days that appears in all CrUX data (daily API, BigQuery...etc.). This means each data point is overlapping the preceding data points. So it's not a continuing experience that can be queried in total. In addition it is not possible to change that 28-day period if CrUX (e.g. to say, give me stats over all available data, or only for a week).
- The CrUX API gives no indication of volume. So even if we could look at every 4th data point to avoid the overlapping periods (which has its own complications!) it may not be accurate to say different weeks are of equal volume.
Plus the latest data is likely the most useful anyway.