Skip to main content
All articles County Records

Code Violations in County Data: How They Are Filed, Tracked, and Lost

Alicia J. Keyes
Abstract map visualization of code violation records by county parcel

Code violations have a simpler structure than permit applications. A violation notice typically carries a small number of defined fields: the property address or parcel identifier, the code section violated, a description of the specific condition, the date issued, the compliance deadline, and a status field. Compared to a multi-page permit application with attachments, a violation notice should be straightforward to extract.

In practice, code violations are often the messiest record type in a county archive, not because the form is complex but because of how violation case files are assembled, tracked across their lifecycle, and eventually scanned.

The Violation Case File Structure

A code violation case is not a single document. It is a file that grows over time. The initial violation notice is one document. If the violator responds, correspondence enters the file. If an extension is granted, a separate extension notice is filed. If the matter goes to an administrative hearing, hearing notices and outcomes are added. If compliance is achieved, a compliance inspection report and a formal close-out document are filed. If the violation is abated by the county, work orders and cost assessments are added.

When this file is scanned, it is often scanned as a single PDF in the order the papers are in the folder. This means the violation notice, the compliance documents, and any intermediate correspondence are all in one PDF file without page-level document type identification. Extracting the status of the violation requires reading through all of it to determine what happened.

An extraction pipeline needs to identify which pages constitute the initial notice, which pages are the close-out documentation, and which pages are intermediate correspondence. Page classification precedes field extraction. If the pipeline cannot distinguish between a violation notice and an extension letter, it cannot reliably extract the status of the case.

How Violation Codes Work in Practice

The violation code field in a county notice refers to a specific section of the county's adopted code: building code, property maintenance code, zoning ordinance, or health and safety code. Counties adopt these codes at different times, in different editions, and with local amendments. A violation notice from 2005 citing section 305.1 refers to whatever was in the county's adopted code at that time, which may be a different edition from what the county uses today.

For extraction purposes, the code citation on the document is the authoritative value. The pipeline reads what is printed on the form. Whether that code citation maps correctly to a current violation category is an interpretive step that happens downstream, not in the extraction layer.

This matters because counties sometimes recodify: the entire code is reorganized and section numbers change. A violation issued before a recodification cites the old section numbering. An extraction that reads the cited section and attempts to normalize it to current code structure requires knowledge of the recodification history, which may not be available in machine-readable form.

The practical approach is to extract the code citation as written and flag the document date, allowing users to look up the applicable code version rather than having the extraction layer attempt normalization it cannot reliably do.

The Resolution Status Problem

The most important field in a violation record, for most use cases, is whether the violation was resolved. An unresolved violation is an active encumbrance on the property. A resolved violation is historical record.

The challenge is that resolution status is not always a field on the original violation notice. The notice records the violation and the compliance deadline. Resolution is recorded in a separate document (the close-out notice or compliance inspection report) that may or may not be in the same file and may or may not be in the same archive location.

In counties where code enforcement used paper files that were scanned as complete case folders, the close-out document is typically the last page or pages of the multi-page PDF. An extraction pipeline can identify this page as the resolution document based on document type classification and extract the resolution date and status from it.

In counties where code enforcement was digitized before a complete paper archive scan was conducted, some older violation notices exist in the archive with no associated close-out documentation, because the close-out was handled digitally after the system went live and is in the digital system rather than the archive. A violation extracted from the archive will appear unresolved because the resolution documentation is elsewhere.

This is a known incompleteness, not an extraction error. The pipeline cannot find the resolution documentation if it is not in the archive. But it should be represented accurately: extracted status "unresolved per archive" rather than a confident assertion that the violation is currently open.

Amendments and Superseded Violations

Violations are sometimes amended after issuance. The amended notice changes the compliance deadline, the scope of the cited violation, or the responsible party. When an amendment is filed, the original notice is technically superseded by the amended version, but both documents remain in the case file.

If both the original notice and the amended notice are in the same multi-page PDF, a field extraction that picks up the first violation notice it encounters will extract the superseded version. The compliance deadline it records will be the original deadline, not the amended one. If the amendment significantly changed the compliance timeline, this discrepancy matters.

Handling superseded documents requires the extraction layer to recognize amendment documents and apply them to earlier records in the same case file. This requires document sequencing logic and an understanding of amendment form templates, which vary by county.

Violations Filed by Address in a Pre-APN Environment

Many counties did not require APN fields on code enforcement documents as a matter of standard practice until relatively recently. Violation notices from the 1990s and early 2000s in many jurisdictions were filed by address only, because the field officer knew the address and the APN was considered an assessor's tool, not an enforcement tool.

This creates the same parcel matching problem described for inspection records: violations filed by address require address-to-APN resolution to be linked to the parcel layer. If the address on the violation notice is in a pre-normalization format, or if the property has since changed address (due to county address standardization after the E-911 deployment era), the address match will fail without additional handling.

For violations issued before a county's APN-on-enforcement-forms policy took effect, address-based matching is the only option, and address matching failure rates are higher than APN matching failure rates.

What Happens When the Physical File Is Incomplete

Physical case files are sometimes incomplete when they reach the scanner. Papers go missing over decades of active use. A compliance inspection report might have been checked out for an appeal proceeding and never returned to the main file. A hearing notice might have been filed in a separate hearing binder rather than the individual case folder.

Suppose a county's 2008 scanning project captured violation case files from 1995 through 2007. For cases that were still active or recently closed, the file contents were current and complete. For cases closed in 1997, the files had been sitting in storage for eleven years and may have lost some documents over time.

The pipeline cannot distinguish between a case where the close-out document was never filed (because the violation was never formally resolved) and a case where the close-out document was filed but is absent from the physical file. Both scenarios produce an extracted record without resolution documentation.

This is not a reason to avoid extraction. It is a reason to represent extraction results with appropriate precision about what the archive contains and what must be verified against additional sources for legally or operationally critical decisions.