diff --git a/scourgify/normalize.py b/scourgify/normalize.py
index 4270b68..8827088 100644
--- a/scourgify/normalize.py
+++ b/scourgify/normalize.py
@@ -535,7 +535,8 @@ def normalize_occupancy_type(parsed_addr, default=None):
     default = default if default is not None else 'UNIT'
     occupancy_type_label = 'OccupancyType'
     occupancy_type = parsed_addr.pop(occupancy_type_label, None)
-    occupancy_type_abbr = OCCUPANCY_TYPE_ABBREVIATIONS.get(occupancy_type)
+    occupancy_type_abbr = occupancy_type if occupancy_type in OCCUPANCY_TYPE_ABBREVIATIONS.values() \
+        else OCCUPANCY_TYPE_ABBREVIATIONS.get(occupancy_type)
     occupancy_id = parsed_addr.get('OccupancyIdentifier')
     if ((occupancy_id and not occupancy_id.startswith('#'))
             and not occupancy_type_abbr):

Valid occupancy types replaced by 'UNIT'
HI there, I appreciate your work on normalizing the US Address library!
 
I notice the following issue:

```
>>> from scourgify import normalize_address_record
>>> normalize_address_record('12345 Somewhere Street Apt 1, Town, MA 12345')
{'address_line_1': '12345 SOMEWHERE ST', 'address_line_2': 'UNIT 1', 'city': 'TOWN', 'state': 'MA', 'postal_code': '12345'}
```

I believe it has to do with the following bit of code in `scourgify.normalize.normalize_occupancy_type`:

```
    default = default if default is not None else 'UNIT'
    occupancy_type_label = 'OccupancyType'
    occupancy_type = parsed_addr.pop(occupancy_type_label, None)
    occupancy_type_abbr = OCCUPANCY_TYPE_ABBREVIATIONS.get(occupancy_type)
    occupancy_id = parsed_addr.get('OccupancyIdentifier')
    if ((occupancy_id and not occupancy_id.startswith('#'))
            and not occupancy_type_abbr):
        occupancy_type_abbr = default

    ...
```

When I step debug, the returned `occupancy_type` is `'APT'`. However, the `occupancy_type_abbr` is set as `None` considering the `OCCUPANCY_TYPE_ABBREVIATIONS` are currently in the format `<full_name> -> <abbreviation>`

I suggest the following fix:

```
    if occupancy_type in OCCUPANCY_TYPE_ABBREVIATIONS.values():
        occupancy_type_abbr = occupancy_type
    else:
        occupancy_type_abbr = OCCUPANCY_TYPE_ABBREVIATIONS.get(occupancy_type)
```

Then you can cover both cases.

diff --git a/scourgify/tests/test_address_normalization.py b/scourgify/tests/test_address_normalization.py
index ac8ea09..66a9c42 100644
--- a/scourgify/tests/test_address_normalization.py
+++ b/scourgify/tests/test_address_normalization.py
@@ -263,6 +263,34 @@ class TestAddressNormalization(TestCase):
         result = normalize_addr_dict(hashtag_unit, addr_map=dict_map)
         self.assertDictEqual(expected, result)
 
+        expected = dict(
+            address_line_1='123 NOWHERE ST',
+            address_line_2='APT 345',
+            city='BORING',
+            state='OR',
+            postal_code='97009'
+        )
+
+        abbreviation = dict(
+            address1='123 Nowhere St',
+            address2='Apt 345',
+            city='Boring',
+            state='OR',
+            zip='97009'
+        )
+        result = normalize_addr_dict(abbreviation, addr_map=dict_map)
+        self.assertDictEqual(expected, result)
+
+        full_name = dict(
+            address1='123 Nowhere St',
+            address2='Apartment 345',
+            city='Boring',
+            state='OR',
+            zip='97009'
+        )
+        result = normalize_addr_dict(full_name, addr_map=dict_map)
+        self.assertDictEqual(expected, result)
+
 
 class TestAddressNormalizationUtils(TestCase):
     """Unit tests for scourgify utils"""

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
3.7
requirements/base.txt requirements/dev.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
astroid==2.15.8
certifi @ file:///croot/certifi_1671487769961/work/certifi
charset-normalizer==3.4.1
click==8.1.8
coverage==7.2.7
decorator==5.1.1
dill==0.3.7
distlib==0.3.9
exceptiongroup==1.2.2
filelock==3.12.2
flake8==5.0.4
frosted==1.4.1
frozendict==2.4.6
future==1.0.0
geocoder==1.38.1
idna==3.10
importlib-metadata==4.2.0
iniconfig==2.0.0
isort==5.11.5
lazy-object-proxy==1.9.0
mccabe==0.7.0
packaging==24.0
pep8==1.7.1
pies==2.6.7
platformdirs==2.6.2
pluggy==1.2.0
probableparsing==0.0.1
py==1.11.0
pycodestyle==2.9.1
pydocstyle==6.3.0
pyflakes==2.5.0
pylama==8.4.1
pylint==2.17.7
pytest==7.4.4
python-crfsuite==0.9.10
PyYAML==6.0.1
ratelim==0.1.6
requests==2.31.0
six==1.17.0
snowballstemmer==2.2.0
tomli==2.0.1
tomlkit==0.12.5
tox==3.28.0
typed-ast==1.5.5
typing==3.7.4.3
typing_extensions==4.7.1
urllib3==2.0.7
usaddress==0.5.10
-e git+https://github.com/GreenBuildingRegistry/usaddress-scourgify.git@29912c8c00bbb3d5c899fb64772ecf07d9020b1e#egg=usaddress_scourgify
virtualenv==20.16.2
wrapt==1.16.0
yaml-config==0.1.5
zipp==3.15.0

name: usaddress-scourgify
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - astroid==2.15.8
      - charset-normalizer==3.4.1
      - click==8.1.8
      - coverage==7.2.7
      - decorator==5.1.1
      - dill==0.3.7
      - distlib==0.3.9
      - exceptiongroup==1.2.2
      - filelock==3.12.2
      - flake8==5.0.4
      - frosted==1.4.1
      - frozendict==2.4.6
      - future==1.0.0
      - geocoder==1.38.1
      - idna==3.10
      - importlib-metadata==4.2.0
      - iniconfig==2.0.0
      - isort==5.11.5
      - lazy-object-proxy==1.9.0
      - mccabe==0.7.0
      - packaging==24.0
      - pep8==1.7.1
      - pies==2.6.7
      - platformdirs==2.6.2
      - pluggy==1.2.0
      - probableparsing==0.0.1
      - py==1.11.0
      - pycodestyle==2.9.1
      - pydocstyle==6.3.0
      - pyflakes==2.5.0
      - pylama==8.4.1
      - pylint==2.17.7
      - pytest==7.4.4
      - python-crfsuite==0.9.10
      - pyyaml==6.0.1
      - ratelim==0.1.6
      - requests==2.31.0
      - six==1.17.0
      - snowballstemmer==2.2.0
      - tomli==2.0.1
      - tomlkit==0.12.5
      - tox==3.28.0
      - typed-ast==1.5.5
      - typing==3.7.4.3
      - typing-extensions==4.7.1
      - urllib3==2.0.7
      - usaddress==0.5.10
      - virtualenv==20.16.2
      - wrapt==1.16.0
      - yaml-config==0.1.5
      - zipp==3.15.0
prefix: /opt/conda/envs/usaddress-scourgify

scourgify/tests/test_address_normalization.py::TestAddressNormalization::test_normalize_occupancies
scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_handle_abnormal_occupancy scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_set_constants
scourgify/tests/test_address_normalization.py::TestAddressNormalization::test_normalize_addr_dict scourgify/tests/test_address_normalization.py::TestAddressNormalization::test_normalize_addr_str scourgify/tests/test_address_normalization.py::TestAddressNormalization::test_normalize_address_record scourgify/tests/test_address_normalization.py::TestAddressNormalization::test_parse_address_string scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_address_normalization_error scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_clean_ambiguous_street_types scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_clean_period_char scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_get_addr_line_str scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_get_geocoder_normalized_addr scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_get_norm_line_segment scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_get_ordinal_indicator scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_get_parsed_values scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_normalize_directionals scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_normalize_numbered_streets scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_normalize_occupancy_type scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_normalize_state scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_normalize_street_types scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_post_clean_addr_str scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_pre_clean_addr_str scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_validate_address scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_validate_parens_group_parsed scourgify/tests/test_address_normalization.py::TestAddressNormalizationUtils::test_validate_postal_code
scourgify/normalize.py
scourgify/normalize.py