When GeoStan matches an input address, its default behavior is to match to the address number. This default behavior corresponds to GS_FIND_MUST_MATCH_ADDRNUM set to True. GeoStan must match to an address number.
If GS_FIND_MUST_MATCH_ADDRNUM is set to False (in GS_MODE_CUSTOM only), then GeoStan no longer must match the address number, therefore permitting relaxed address number matching. By permitting relaxed address number matching, an inexact match can be found. If the input address number is missing, no matches are returned unless GS_FIND_STREET_CENTROID (see Understanding street locator geocoding) is also enabled.
If the input address number is not within a house number range from the street, GeoStan selects the nearest range on the street which has the same parity (even or odd) as the input address number. GeoStan returns one or more of the closest matches inside this range that preserves street parity. This requires GeoStan to change the house number. The new house number is equal to one of the range's endpoints, possibly plus or minus one to preserve street parity.
When GS_FIND_MUST_MATCH_ADDRNUM is set to False and no exact matching house number is found, a match code of either E029 (no matching range, single street segment found), or E030 (no matching range, multiple street segment) is returned by GsDataGet and GeoStan does not change the house number on the output address.
To access the inexact address number candidates, the GsMultipleGet function must be called. If there are inexact house number candidates returned by GsMultipleGet, the corresponding match codes begin with the letter 'H' indicating that the house number was not matched. Additionally, even when one or more exact candidates are found, inexact matches to the house number are still on the list of possible candidates, and these can be differentiated from the others by their Hxx match codes. For more information on match codes, see Match codes.