Why I Prefer 0, 1, 2…
Simplicity & predictability – Small sequential numbers are easier to manage and instantly recognizable when debugging
Performance & clarity in formulas – Numeric comparisons like
If(Status.Value = 1, "Pending", "Other")
are cleaner and easier to maintain.
example i got status deleted,pending ,approved,rejected etc
i use 0 for deleted, 1: Pending, 2: Approved, 3: rejected keeping it simple and understandable when i check in future.
Why You Shouldn’t Change Choice Values Later
Dataverse stores the numeric value (not the label) in every record.
So the table keeps only numbers like 0, 1, 2, 3, and the label mapping (like “Pending”, “Approved”) lives in the metadata.
Example
Initial setup:
Label Value
Deleted 0
Pending 1
A record is created → Status = 1 → shows as Pending.
Now you edit the choice set:
Label Value
Deleted 1
Pending 2
The stored value (1) stays the same — but now it maps to Deleted
So the system will suddenly show Deleted instead of Pending for old records.
That’s why changing the value after data exists can cause silent, dangerous data corruption.