Output & Result Codes

The engine returns structured records rich with corrected components and result codes. This page explains how to tell whether an address assigned and how to interpret the most important codes.

Output records

Each processed record returns a structured result (JSON or XML) containing the corrected address components plus a large set of result and enhancement fields. Most field names are self-explanatory, and most informational fields are T/F, Y/N, or blank — where blank generally means the component wasn't presented for lookup, or the address didn't assign.

Note: The output examples that ship with the SDK contain the complete, current list of possible output fields for each engine. Use them as the definitive field reference; this page focuses on the codes whose meaning isn't obvious from the field name.

Assigned vs. unassigned

Two fields tell you the outcome of a record at a glance:

  • ErrStat — holds a status code when the address assigned, or an error (fault) code when it didn't.
  • Fault_Code — holds the error code when the address is unassigned, and is blank when the address assigned.

In short: a blank fault code means a clean assignment; a populated fault code tells you why the address could not be assigned.

Status codes

When an address assigns, the status code describes how the assigned address differs from the input. It is a positional code — each character position reports on a different group of components, so you can tell exactly what the engine changed:

PositionReports changes to
1stWhether the address line was truncated to fit your field.
2ndCity, state, ZIP, and ZIP+4.
3rdPrimary name, directionals, and suffix.
4thCounty number, CART (carrier route), DPBC, and unit designator.
5thLOT, LOT order, and Puerto Rican urbanization.
6thReserved for future use.

Within each position, a 0 means no significant difference, and other values encode which specific components changed. The exact per-position value tables are documented in the SDK reference material.

Fault codes

When an address does not assign, the fault code explains why. A representative selection:

CodeMeaning
E101Last line is bad or missing.
E212No city and bad ZIP/postal code.
E302No primary address line parsed.
E420Primary range is missing.
E429Bad city; can't select an address match.
E430Possible address-line matches too close to choose one.
E502Input record entirely blank.
E505Address does not exist in the USPS directories (undeliverable).
E600Marked by USPS as unsuitable for delivery of mail.
E601Primary address number did not DPV-confirm; ZIP+4 was removed.
Note: This is a representative subset. The complete, current fault-code list is in the SDK reference material and examples.

Key result indicators

Beyond assignment, several fields characterize the matched address:

FieldTells you
Address_TypeThe kind of record matched (firm, general delivery, high-rise, military, PO box, rural route, street, unique). A trailing "D" marks a default-level assignment that could be finer with more input.
DPV_StatusWhether the delivery point is confirmed: Y (confirmed), N (not a valid delivery point), S (secondary invalid), D (secondary missing), L (false-positive lock), blank (not evaluated).
LACS_IndicatorLACSLink conversion status: Y (converted), N (looked up, not converted), S (converted, secondary dropped), F (false-positive lock), blank (not attempted).
RDI_IndicatorResidential delivery indicator: Y (residential) or N (nonresidential).
SuiteLINK_Return_CodeSuiteLink result: A (secondary added), 00 (no match), blank (not attempted).
Important: A few field names (for example, Delivery_Type and Record_Type) carry different value sets depending on which output group they appear in — the CASS output versus the DSF2 output. Always interpret a field in the context of its output section.

Geocoding assignment levels

When geocoding is enabled, the assignment level tells you how precisely a coordinate was placed:

LevelPrecision
PREPrimary Range Exact — the exact address location. The most precise result.
PRIPrimary Range Interpolated — interpolated within the address range.
L1–L4Locality — city, town, or suburb level.
P1Postcode — 5-digit ZIP level.
P2PPostcode partial — full 5-digit ZIP plus the first characters of ZIP+4.
PFPostcode full — full 9-digit ZIP, when available.

A separate centroid match level reports the precision of centroid latitude/longitude assignment. See the Address IQ geocoding overview for the concepts behind address-level and centroid geocoding.