Permit recognition
Every carry app has a reciprocity map. Ours is the one that will not draw the grid until the evidence behind it clears the same gate as everything else — and right now it does not.
Recognition is decided by the destination, not by your state
The usual mental model — “my state has agreements with 30 states” — is not how most of it works. The controlled legal object is the destination's own published policy: which permits that state recognizes, from which issuers, under which conditions. That is the page a reviewer has to read.
One complete, current destination policy legitimately supports many directional answers. So we do not claim to hold thousands of independent sources, and we do not treat a generated row as though it were an independent review. The policy is the thing that gets reviewed; the pair answers are derived from it and re-checked against it every time.
Your permit's edition is part of the question
Two permits from the same state are frequently not the same permit for this purpose. Destination policies commonly turn on facts about the holder and the document:
- Resident or non-resident edition — many published lists apply only to a permit an issuer gave to its own residents. Some published lists draw that line the other way for a particular issuer.
- Matching state identification — some policies require the holder to reside in the issuing state and to carry ID that matches it.
- Age — a destination can set a floor above the issuing state's.
- Permit type — a state can issue more than one class of permit, and a list can name one of them.
- Conditions attached to recognition — recognition of a document is not the same as any particular act being lawful, and a policy can recognize a permit while a dozen other rules still apply in full.
Where the matrix stands today
| What | Cleared | What the number counts |
|---|---|---|
| Cross-state recognition decisions cleared for publication | 0 / 2,550 | The denominator is every issuer-to-destination pair across the 50 states and DC. Same-state cells are excluded, because “does my own state's permit work at home” is a permit-validity question, not a reciprocity one. |
Rows exist. A matrix was generated in one operation from destination policies, and it carried citations. But it was generated, not independently reviewed, and it inherited one shared review timestamp across every cell. Under the evidence contract now in force — complete destination list, current source, monitored source, fingerprint match — none of those generated rows are publishable as answers.
What the app does show you meanwhile
- A destination row for every state and DC — nothing is silently omitted, because an absent row reads as a clean list.
- The word Not reviewed on any pair that has not cleared the gate, with the same meaning it has everywhere else: unknown, never permission.
- The reviewed answer, its official source, and the review date on any pair that has cleared it.
- Conditions spelled out in words when a reviewed answer carries them, rather than compressed into a colour.
- On a planned route, the same treatment state by state — and the drive companion saying “not reviewed” out loud rather than skipping a state that has no answer.
Why we did not just keep the old grid
Because it looked finished. Two thousand six hundred cells, every one carrying a citation and a review timestamp, is the single most convincing artefact this product could put on a screen — and it was one generated pass over 51 destination policies, several of which could not carry the weight. An audit found a list published for a window that had already closed, and a policy whose cited page did not actually expose the issuer list it turned on.
Deleting a grid that impressive is expensive. Shipping it would have been worse: a confident colour on a cell nobody independently checked is the exact mechanism by which a compliance app gets a lawful permit holder arrested.