Counter Reset Segmenter

Segment a nonnegative sampled counter at decreases interpreted as reset candidates; resets and wraps cannot be distinguished from values alone.

Description

Segment a nonnegative sampled counter at decreases interpreted as reset candidates; resets and wraps cannot be distinguished from values alone.

A decrease in a cumulative counter can mark a restart or reset. Segmenting at those decreases preserves the original observations for later analysis.

When to use this tool

Segment a nonnegative sampled counter at decreases interpreted as reset candidates; resets and wraps cannot be distinguished from values alone.

  • Prepare the supplied counts fields for this operation.
  • Compare the complete example with the representation used by your own input before carrying the result into another step.

How to use the tool and how it works

  1. Enter counts. Use the exact text syntax, units and index conventions explained below.
  2. Run the tool. If input validation fails, correct the supplied fields before interpreting any result.
  3. Read result.segments, result.resetIndexes. Interpret false, null and empty lists using the distinctions below; they can be valid outputs.

Validate nonnegative integer counts and start a new segment whenever the next count is strictly smaller. Return half-open segments and resetIndexes identifying the first sample after each decrease.1

Input fieldMeaning and representationAccepted input
countscounts.List of finite numbers; bounded by the operation
Output fieldInterpretation
resultObject containing the named outputs below.
result.segmentsThe segments list in the ordering and representation described above.
result.resetIndexesThe reset indexes list in the ordering and representation described above.
json
{
  "input": {
    "counts": [
      1,
      2,
      0,
      3
    ]
  },
  "output": {
    "result": {
      "segments": [
        {
          "start": 0,
          "end": 2
        },
        {
          "start": 2,
          "end": 4
        }
      ],
      "resetIndexes": [
        2
      ]
    }
  }
}

Limitations and assumptions

  • A decrease can also reflect wraparound or bad data. The tool labels candidate boundaries; it does not repair counts, infer reset values or accumulate corrected increments.
  • Every declared top-level field is required and unexpected fields are rejected. Numeric inputs must be finite; ordinary text fields are bounded to 8,192 UTF-16 code units, with tighter operation-specific limits where stated.
  • Ordinary string lists have at most 128 entries of at most 128 code units each; numeric lists and matrices have separate bounded size checks. Nonfinite results and excessively large serialized outputs are rejected.
  • Indexes are zero-based and spans have an exclusive end unless explicitly stated otherwise. A valid false, null or empty-list result is distinct from malformed input.

Alternative or Complementary methods

Choose a sampling model before combining results. Earlier-sample hold, linear interpolation and index-only differences answer different questions; event cooldown, debounce and rolling limits also use different acceptance rules.

References

  1. Tool behavior and example: Counter Reset Segmenter — tool.io

Similar or alternative tools

  • Counter Wrap Increment Decoder

    Decode modular sampled counter increments under explicit at-most-one-wrap/no-reset assumptions; hidden multiple wraps are not recoverable.

  • Consecutive Threshold Streaks

    Tabulate sampled consecutive threshold streaks with explicit at-or-above versus strictly-below convention; no between-sample duration inference.

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies