Quick Kit · Build & Ship

Enum & Status-Value Drift Sweep

You declared a set of allowed values. Then two years happened. Paste a distinct-value query and find out what that column actually contains now.

One row saying “In Progress” among forty thousand is a typo. Four thousand rows saying it is a second status that half your systems write and none of your code branches on. Same spelling difference, completely different problem — and the row count is the only thing that tells them apart.

Get the Sweep
$49one-time

instant download · .xlsx · yours to keep

The problem

Nobody adds a value on purpose.

IN SET

Exactly what you declared. Nothing to do.

VARIANT

Normalises to something you declared, but is not it. Case, spacing, an underscore where a hyphen should be.

OUT OF SET

Matches nothing, however you squint at it. Someone shipped a new state and told the database before they told you.

A field is SET CLOSED, VARIANTS PRESENT, or SET BROKEN. The sweep takes the worst field: SETS HOLD, DRIFT FOUND, or SETS BROKEN.

The idea worth the $49

Volume tells a typo from a fork.

Most drift tools stop at spelling: here are the values that do not match, go and fix them. That list is usually enormous and mostly harmless, which is why nobody works through it.

The interesting question is not whether a variant exists. It is how many rows are sitting on it. Below a threshold it is a typo somebody made once. Above it, that variant is a value your systems write regularly and your code does not branch on — which means somewhere a report is undercounting and a workflow is silently skipping rows. At or above 5% of a field’s rows, the field reads SET BROKEN even with zero out-of-set values. The threshold is a cell on the Dashboard; move it if your tolerance differs.

Try it

Two identical fields, one number apart.

ticket.status and order.status hold the same 76,088 rows across the same five distinct values. Move how many of them sit on the variant.

Both fields below hold 76,088 rows across the same five distinct values. Move how many of order.status’s rows sit on the variant:

= 0% · gate at 5%

Sweep verdict

SETS BROKEN

1 closed · 2 with variants · 2 broken, of 5 fields. 1% of 220,936 rows sit off the declared set — context only, it decides nothing. Fix first: invoice.state.

ticket.statusbranch-driving

VARIANTS PRESENT

76,088 rows · 5 distinct values · 0% on variants

open

12,400 · IN SET

in_progress

8,100 · IN SET

resolved

15,200 · IN SET

closed

40,300 · IN SET

In Progress in_progress

88 · VARIANT

order.statusbranch-driving

VARIANTS PRESENT

76,088 rows · 5 distinct values · 0% on variants

open

12,400 · IN SET

in_progress

8,100 · IN SET

resolved

15,200 · IN SET

closed

40,300 · IN SET

In Progress in_progress

88 · VARIANT

invoice.statebranch-driving

SET BROKEN

25,560 rows · 5 distinct values · 0% on variants

draft

900 · IN SET

sent

4,200 · IN SET

paid

18,700 · IN SET

void

310 · IN SET

partially_paid

1,450 · OUT OF SET

lead.source_channeldisplay only

SET BROKEN

10,900 rows · 4 distinct values · 8% on variants — the gate overrides the values, which alone read VARIANTS PRESENT

organic

5,000 · IN SET

paid

3,000 · IN SET

Referral referral

900 · VARIANT

email

2,000 · IN SET

subscription.planbranch-driving

SET CLOSED

32,300 rows · 3 distinct values · 0% on variants

free

22,000 · IN SET

pro

9,100 · IN SET

enterprise

1,200 · IN SET

Same arithmetic as the shipped workbook. It grades the values you paste in, never people, and queries nothing.

This is the live engine. Every field you have, not two. Your allowed sets, your row counts, your threshold. One .xlsx, no account, yours to keep.

Get the kit — $49

The worked example

What the shipped sweep says.

ENUM & STATUS-VALUE DRIFT SWEEP
==========================================================================

ticket.status  (branch-driving)  VARIANTS PRESENT
    76,088 rows across 5 distinct values; 0% of rows on variants
      open                     12,400  IN SET
      in_progress               8,100  IN SET
      resolved                 15,200  IN SET
      closed                   40,300  IN SET
      In Progress                  88  VARIANT  -> in_progress
    fix first: In Progress

order.status  (branch-driving)  SET BROKEN
    76,088 rows across 5 distinct values; 9% of rows on variants
      open                     12,400  IN SET
      in_progress               8,100  IN SET
      resolved                 15,200  IN SET
      closed                   33,900  IN SET
      In Progress               6,488  VARIANT  -> in_progress
    [GATE] variants carry enough rows to be a second value in production, not a typo
        values alone read VARIANTS PRESENT; the volume overrides it
    fix first: In Progress

invoice.state  (branch-driving)  SET BROKEN
    25,560 rows across 5 distinct values; 0% of rows on variants
      draft                       900  IN SET
      sent                      4,200  IN SET
      paid                     18,700  IN SET
      void                        310  IN SET
      partially_paid            1,450  OUT OF SET
    fix first: partially_paid

lead.source_channel  (display only)  SET BROKEN
    10,900 rows across 4 distinct values; 8% of rows on variants
      organic                   5,000  IN SET
      paid                      3,000  IN SET
      Referral                    900  VARIANT  -> referral
      email                     2,000  IN SET
    [GATE] variants carry enough rows to be a second value in production, not a typo
        values alone read VARIANTS PRESENT; the volume overrides it
    fix first: Referral

subscription.plan  (branch-driving)  SET CLOSED
    32,300 rows across 3 distinct values; 0% of rows on variants
      free                     22,000  IN SET
      pro                       9,100  IN SET
      enterprise                1,200  IN SET

--------------------------------------------------------------------------
SWEEP VERDICT: SETS BROKEN
  1 closed / 1 with variants / 3 broken  (of 5 fields)
  4% of 220,936 rows sit off the declared set  -- context only, it decides nothing
  gate fired on 2 field(s) (>= 5% of rows on variants)
  fix first: order.status -- In Progress

Grades the values you paste in. Not legal or compliance advice.

The .xlsx reproduces every verdict above exactly — the parity check behind this kit asserts 371 of them, cell by cell, with zero error values. Three things to notice. The twin pair differs only in how 76,088 rows split. invoice.state is SET BROKEN from a genuinely new value with no variants at all, so the volume gate gets no credit there. And 4% of all rows sit off-set across the whole sweep, which reads SETS BROKEN — the share is context, not the verdict.

Honest limits

What it will not do.

  • It does not connect to your database. You run the distinct-value query and paste the result; it grades what you paste.
  • It cannot tell you which of two values is the right one. It tells you a variant carries 6,488 rows; deciding whether to migrate them or widen the set is your call.
  • It does not check whether your declared set is a good set. A closed set with the wrong values in it reads as closed.
  • A field that reads SET CLOSED today can drift tomorrow. This grades values that already exist, so there is no evaluation date anywhere and two runs a quarter apart compare directly.

Deterministic and offline. It grades fields, never people, and is a working aid rather than legal or compliance advice.

Pairs with

Where this sits.

Common Questions

Answers, caveat after.

A distinct-value query per field: every value the column actually contains, with a row count for each. Plus the set you declared, repeated on each row of that field. One row per observed value. It never connects to your database — you run the query, it grades the result.

Get it

Find out what that column really holds.

  • Every field you care about, in one sweep.
  • A gate that separates typos from second values by row count.
  • Editable threshold, editable sets, no account, no upload.
$49

one-time

Buy the Sweep

← Browse all Quick Kits

Sold by RedHub AI LLC · Secured by Stripe · redhub.ai