# ADJUDICATION-LAW — the comparison laws (published; disputable by design)

**NORMALIZATION-1 (Tani 2026-09-13T18:41Z):** a method artifact presented as
a directory defect is exactly what we refuse to sell.
**PARSE-ADDRESS-1 (Tani 2026-09-13T19:07Z):** the reading must be what the
authority actually publishes — never a truncated rendering that hides it.
These laws are part of the package — a reviewer may dispute any of them, and
the dispute is a method ruling, not a data change. The machinery
(`scripts/engagement-findings.mjs`) implements exactly these laws; the
bundle's `comparison_laws` block restates them verbatim.

**NUMERIC-CLAIM-1 (Tani 2026-09-15T05:21Z, standing):** every numeric
delta/count claim in this law text is stated in the canonical name-bound
form — `computed flips v<X>→v<Y> = <N>` or `computed counts v<N> = <V>
VERIFIED / <C> CONTESTED / <U> UNVERIFIABLE / <S> STALE` — and
package-check leg [18] verifies each claim against the computed value it
names, by name, or the build fails. Prose contradicting computation inside
a signed artifact is the A3 class (Astra) — ours to disclose, not theirs
to find.

**ADJUDICATION-2 (Tani 2026-09-14T06:44Z):** no comparison is asserted
before its preconditions hold. A comparison that fails a precondition returns
UNVERIFIABLE naming the precondition; both readings are preserved on every
row, including precondition failures.

## Comparison preconditions — v4 (standing in v5; ADJUDICATION-2, unchanged by NPI-ROLE-1)

**(a) SUBJECT BINDING (blocking).** The kernel's Tier-A rule
(CROSSWALK-DETERMINISTIC-1: Tier A asserts on identifier equality;
name-match is Tier-B). For this engagement the ONLY Tier-A link between the
board record and the NPPES record is **MO-taxonomy-license equality after
normalization**. A name match alone — however exact — is REFUSED as subject
binding: no engagement-only name-match shortcut. ROW-012 and ROW-030 (names
agree on both sides, no identifier link) revert to UNVERIFIABLE with reason
"binding not established". Identity-linkage mismatches (two different
published persons, no Tier-A link) are CONTESTED with finding_class
identity-linkage — the actionable ticket class — and their dependent address
adjudication is blocked.

**(b) FIELD ROLE.** Address readings carry roles: board = address_of_record,
NPPES = practice location (LOCATION) or mailing (MAILING), buyer = published
practice location. A NPPES mailing address is never contradiction fodder.
Role mismatch is not a contradiction.

**(c) TEMPORAL SCOPE.** Every reading carries its as_of; every comparison
reason states the corpus windows (board drop 2026-08-10 vs NPPES fetch
2026-09-09 vs buyer publication frozen 2026-09-13 — non-contemporaneous
readings; difference interpretation is bounded by that window).

**(d) NORMALIZATION.** City-component alias expansion: ST→SAINT applied ONLY
in the city field, never in a street suffix. Unit-omission is a wave-off,
not a conflict: either side omitting a unit the other carries is named as a
wave-off in the reason, never counted as a difference.

## Address law — v3 (superseded by ADJUDICATION-2)

1. Case-fold; strip punctuation; collapse whitespace.
2. Standardize street-suffix, directional, and unit-designator tokens to
   USPS canonical abbreviations (STREET→ST, DRIVE→DR, NORTH→N,
   APARTMENT→APT, SUITE→STE, BUILDING→BLDG, …).
3. The compared board line is the **FULL published line** — the second
   address line the board publishes (units; or the name-shape street)
   is INCLUDED. A buyer address omitting a unit the board publishes is a
   real difference, named in the reason.
4. Compare ZIP5 separately — a 9-digit ZIP against a ZIP5 is not a
   difference.
5. Match if the standardized forms are equal, or equal with all whitespace
   removed ("LA QUESTA" ≡ "LAQUESTA").
6. A remaining real difference — different street number, different street,
   different ZIP — stays CONTESTED.

**Name-shape publications (PARSE-ADDRESS-1):** for some registrants the
board's `ba_address` field genuinely carries a practice name where a street
address is expected — raw DEN.TXT line 1795 (licence 2017017505):
`ba_address = "Elevate Dental Studio,304 W Weaver Road"`. **Verdict: case
(b)** — the board's own publication carries the business name; our parser
preserves both parts (street + unit) and takes no wrong column. 145 of 4197
corpus rows carry this shape. These rows are rendered and compared AS
PUBLISHED, and their findings carry the different sentence — "the board
publishes a practice name where NPPES publishes a street address" — never a
mere "the two authorities disagree."

## Address law — v2 (superseded by PARSE-ADDRESS-1)

USPS standardization and ZIP5 comparison (the NORMALIZATION-1 fix), but the
board reading was STREET-ONLY: the second address line the board publishes
(units; the name-shape street) was dropped from the rendered reading —
rendering "Elevate Dental Studio" as the board's whole address. v3 compares
the full line.

## Address law — v1 (superseded by NORMALIZATION-1)

Exact match after case-fold and punctuation strip. It counted "2001 Laquesta
Dr, Neosho, MO, 64850" vs "2001 LA QUESTA DR, NEOSHO, MO, 64850" — the same
address — as CONTESTED. That was the finding.

## Name law (v2, unchanged by PARSE-ADDRESS-1)

1. Case-fold; strip punctuation.
2. Drop generational suffixes and credential tokens (JR SR II III IV DDS
   DMD MD PC INC LLC PLC PA).
3. Compare FIRST and LAST given-name tokens. Middle names, case, and
   credentials are registry formatting, not contradictions.
4. A different first or last token is a real difference.

**Known boundary case (stated, not resolved):** ROW-023 — board
"Jerell James Wilson" vs NPPES "JAMES WILSON". Plausibly the NPPES first
name is the board middle name presented as first; not provable from the
pinned corpora. It stays CONTESTED with both readings; the reviewer rules.

## Licence law (unchanged)

Compare digits with leading zeros stripped ("013129" ≡ "13129").

## NPI law (unchanged by v5)

Compare the 10-digit NPI string exactly.

## NPI entity-role law — v5 (superseded by DETERMINACY-1; NPI-ROLE-1 RULED, Tani 2026-09-14T15:15Z)

**The ruled field contract:** the buyer's NPI field denotes the individual
practitioner (NPPES entity type 1). An organization NPI (entity type 2) in
that field is a **ROLE finding with its own reason** — never a name
mismatch, never an identity-linkage ticket — and **every NPI reading
cites the entity type** (enumeration_type). A named practitioner and a
group can legitimately be linked; what the ruled contract makes erroneous
is an organization registration occupying the individual-practitioner
field. Resolves ROW-052 and ROW-010's org-NPI question (R5-3 completion).

**v4→v5 delta line:** the rule changes reasons and readings, never states —
computed flips v4→v5 = 0 (`flips_v4_to_v5_total` in findings.json
law_delta, computed by the run, never asserted) and computed counts v5 = 59
VERIFIED / 22 CONTESTED / 18 UNVERIFIABLE / 1 STALE (identical to v4).

## Determinacy — v6 (current; DETERMINACY-1, Tani 2026-09-14T18:08Z — Astra R5 static review R6-4)

**One decision procedure, explicit precedence, refusal outcomes.** The v4
preconditions stand unchanged; v6 adds three determinacy rules and the
precedence that orders them:

- **(e) TWO-PERSONS DETERMINACY.** Different names plus an absent identifier
  link does **NOT** establish "two different persons" — it establishes only
  that **the buyer's association is unsupported**. The finding states that
  narrower proposition (finding_class identity-linkage — the actionable
  ticket class) and never asserts two persons. A two-persons claim requires
  identifier-grade evidence from the authorities themselves.
- **(f) ADDRESS COMPARABILITY.** `address_of_record` and practice location
  are comparable **only** when both readings bind the same predicate class,
  the same authority scope, and the same jurisdiction, with roles and as_of
  dates stated. When they are not comparable, the emitted result is
  **UNVERIFIABLE naming the incomparability** — never CONTESTED.
- **(g) DATE-DIFFERENCE DETERMINACY.** A date difference supports
  contradiction **only** when both readings issue from the same authority
  scope within the same publication cycle. A difference between corpus dates
  (different fetch windows) emits the **temporal-scope note** — publication
  lag or a legitimate move remains possible — and NEVER itself a CONTESTED
  verdict.

**Precedence on overlap:** (a) binding failure outranks everything
(UNVERIFIABLE, precondition named); (b) incomparability (f) outranks
comparison; (c) date-only differences (g) resolve to the temporal note,
never a conflict.

**Falsifiers (ruled):** a legitimate name change without a Tier-A link, and a
legitimate address change between corpus dates, must NOT become a conflict.

**v5→v6 delta line:** v6 constrains what a finding may SAY — emission
determinacy — never its state; computed flips v5→v6 = 4
(`flips_v5_to_v6_total` in findings.json law_delta, computed by the run,
never asserted) — the four flips are ROW-021, ROW-028, ROW-033, ROW-019
(practice_address VERIFIED→CONTESTED): under v6 rules on the parser-fixed
corpus "Missouri" vs "MO" compares as a mismatch because STATE-ALIAS-1 is
v7 law — a method artifact waved off in v7, never a regression in v6 — and
computed counts v6 = 55 VERIFIED / 26 CONTESTED / 18 UNVERIFIABLE / 1 STALE.

## State-component alias law — v7 (current; STATE-ALIAS-1, Tani 2026-09-15T00:33Z — REPRO-DRIFT-1, the empty-environment reproduction gate)

The clean-environment reproduction caught the shipped findings drifting from
the regenerated output: four practice_address propositions (ROW-021,
ROW-028, ROW-033, ROW-019) flipped VERIFIED→CONTESTED solely on the state
component — "Missouri" vs "MO" — after the parser fix made the board corpus
publish full state names. **Missouri and MO are the same state.** Selling that
string difference as a directory defect is exactly the NORMALIZATION-1
method-artifact class (Tani 2026-09-13T18:41Z: "a method artifact presented as
a directory defect is exactly what we refuse to sell").

**(h) STATE-COMPONENT ALIAS EXPANSION.** The state component is normalized
(USPS full name ≡ two-letter abbreviation) before comparison — applied to the
STATE FIELD ONLY, the same rule shape as the city ST→SAINT expansion. A
state-component alias difference is a WAVE-OFF named in the reason, never a
CONTESTED. A genuine cross-state difference (Kansas vs Missouri) remains a
CONTESTED finding with the state named.

**CROSS-STATE-1 (R7-8 rerun, Tani 2026-09-15T00:33Z).** The EXTRACT-1 parser
fix landed (the parsed board reading now carries the board's true state), and
the rerun at OUR expense (SERVICE-DEBT-1 discharged) emits the findings the
blocked comparison owed: ROW-034 (buyer publishes the practice in Missouri;
the board's address of record is Leawood, KANSAS) and ROW-048 (buyer publishes
the practice in Missouri; the board's address of record is Meridian, IDAHO)
adjudicate CONTESTED cross-state with both states named — a genuine
cross-state difference is a buyer-facing finding, never an extraction defect.

**DIFF-SIM-1 (disclosed, 2026-09-15).** R7-3's hand-rolled v5 emission
simulation was found producing 56/6/38/0 — 30 spurious state flips against
the ruled v5 — hidden by a counts-chain alias. It is withdrawn; the v5
baseline is the ruled v5 state rules, and the v5 emission wording simulation
remains outstanding work (a state differ cannot measure emission differences
— this artifact does not claim it can).

**REPRO-PARITY-1 (standing law, Tani 2026-09-15T00:33Z):** the package check
compares the regenerated output against the shipped signed findings and FAILS
on any difference — content-identical or it does not ship. A reproduction
command that produces different findings than the signed delivery is worse
than no reproduction command, and it is exactly Astra's falsifier.

**v6→v7 delta line:** the v6 state rules compared the state component as a raw
string and blocked the EXTRACT-1 rows; computed counts v6 = 55 VERIFIED /
26 CONTESTED / 18 UNVERIFIABLE / 1 STALE. computed flips v6→v7 = 6, each
named in `flips_v6_to_v7` with its reason: four `STATE-ALIAS-WAVEOFF` flips
(ROW-021, ROW-028, ROW-033, ROW-019 — "Missouri" vs "MO" is the same state)
and two `CROSS-STATE-RERUN` flips (ROW-034, ROW-048 — the rerun emits the
cross-state findings). computed counts v7 = 59 VERIFIED / 24 CONTESTED /
16 UNVERIFIABLE / 1 STALE.

**v7→v8 (R8-1 LAW-IN-THE-BRANCH-1, Tani 2026-09-15T04:30Z, blocking):** the
law is enforced in the EMITTING branch, never in prose. Two forbidden
assertion patterns are now unrepresentable at emission and gated at build
(package-check leg [16]): (a) "two different published persons" — with no
Tier-A identifier link the corpora do not establish two distinct persons
(a name-presentation variant remains possible; ROW-023 is the boundary
case); the narrower unsupported-association proposition is the only
admissible emission; (b) an authority-disagreement assertion on a practice
address whose delivered NPPES object carries the board-like address under
the MAILING role — role mismatch is not a contradiction (ADJUDICATION-2
(b)); that is the role-comparability REFUSAL case (ROW-001 — a REAL row;
the refusal fires on NO synthetic fixture row, re-verified R8: ROW-056's
fixture NPPES record carries both a LOCATION and a MAILING address, but its
labeled defect is licence_number — the row never reaches the address
cross-comparison). v8 changes states where the refusal applies — computed
flips v7→v8 = 1 (ROW-001 practice_address CONTESTED→UNVERIFIABLE); computed
counts v8 = 59 VERIFIED / 23 CONTESTED / 17 UNVERIFIABLE / 1 STALE; counts
are recomputed, never carried over.
