## Introduction

This guide documents the specifications for submitting data for the
Unregulated Contaminant Monitoring Regulation (UCMR) program to the U.S.
Environmental Protection Agency (EPA) in a flat file format. Only
laboratories that are registered with EPA's Central Data Exchange (CDX)
can submit data to the Safe Drinking Water Accession and Review System
(SDWARS). SDWARS is the information system that supports the collection
of data for the UCMR.

Preliminary analytical data are entered by laboratories on behalf of the
public water systems (PWSs) participating under the rule. The PWS can
then review their data online. Data approved by the PWS are then
available for state and EPA review before being transmitted to the
National Drinking Water Contaminant Occurrence Database (NCOD). To learn
more about CDX and how to register, contact the CDX Helpdesk by phone
(1-888-890-1995) or e-mail at EPACDX@CSC.COM.

The flat file should be a "tab-delimited" file.

## Error Corrections and Resubmissions

**Correcting Errors**

If a submission contains errors that prevent it from being parsed into
SDWARS, CDX will notify you of the error by sending a notification to
your "MyCDX" inbox (see Figure 1) and your registered e-mail address.

*Figure 1. CDX Inbox with Error Notification*

Data checks occur at two stages during the file upload
process---authentication and data validation. Authentication occurs as
soon as CDX receives the file. CDX authenticates your account and the
file name. These messages are sent to your "MyCDX" inbox and your e-mail
address registered with CDX. Table 1 shows the error messages you could
receive.

*Table 1. Authentication Error Messages*

  -----------------------------------------------------------------------
  **Error Message**

  TBD
  -----------------------------------------------------------------------

The data validation function performs checks in two parts---format and
UCMR validations. SDWARS will conduct data validation and verifications
according to UCMR. If the file does not pass the checks, SDWARS will
provide an error message in the user's "MyCDX" inbox. The notice (see
Figure 2) lists up to the first 25 errors in the submitted file.

SDWARS verifies the data by first checking general format and verifying
IDs (i.e., correct format for date, valid PWSID, valid method, valid
facility ID, valid sample point ID). Table 2 lists common error messages
for data formatting and general validations. These messages identify the
probable cause for the error and recommended corrective actions.

*Figure 2. Notice with Details of Errors*

TBD

*Table 2. Common Formatting/Validation Error Messages*

  -----------------------------------------------------------------------
  **Error message**

  analytical result is already on record

  analytical result is not on record

  facility identifier is not five digits

  facility is not on record

  lab is not on record

  PWS is not on record

  sample collection date postdates sampling event data entry

  sample collection date predates the start of monitoring

  sample event is not on record

  sample point identifier contains non-letter, non-digit characters

  sample point is not on record

  sample schedule is not on record

  user identifier is not formatted correctly
  -----------------------------------------------------------------------

**Resubmitting Data**

The laboratory can submit a flat file as an original transaction or a
resubmission. The type of submission is indicated in the
TransactionPurposeIdentifier element. The laboratory may resubmit
results for a sample if the result has not yet been approved. When
resubmitting data, the laboratory must use the code \"r\" that indicates
the transaction contains records that will replace existing records. The
laboratory must rename the file before resubmitting it. The resubmission
will overwrite the existing data in the CDX database. The laboratory may
confirm that the data were overwritten by viewing the records in the
SDWARS application.

The laboratory is the only entity that may edit sampling and analytical
data. The laboratory can only edit data that are in \"lab hold\" status
in the SDWARS database. If the laboratory needs to edit data that has
already been approved by the PWS, then the PWS or the laboratory must
request that the SDWARS Workbook Manager return editing rights to the
laboratory. The SDWARS Workbook Manager can be contacted at
UCMR_Sampling_Coordinator@epa.gov.

**Checking the Range of Data Values**

In addition to the edit validations described in the preceding sections,
SDWARS reviews several fields for specific values or ranges. In some
cases it may entirely reject the record for failing the range check,
while in others it may create a warning that requires the laboratory to
manually review and either approve or modify the results. This section
describes each of these fields.

**UCMR Data Range Checks**

The UCMR has specific minimum values for different analytes. Information
about minimum reporting levels (MRLs) is in the following regulation:

\- 40 CFR, Part 141, "Monitoring Requirements for the Unregulated
Contaminants;" final rule, January 4, 2007

**SDWARS Data Range Checks**

SDWARS will check the range of some data values. Table 3 shows the list
of elements that SDWARS checks. SDWARS assigns a range or value that the
element must satisfy, and the range or value it should satisfy. The
"must" checks will prevent the data from loading and will result in an
error notification to your "MyCDX" inbox and registered e-mail address.
However, the "should" checks will not result in preventing the data from
loading. Instead, the "should" checks will flag results as having
potential errors for your laboratory to confirm. **If data are submitted
that violate the "should" criteria, then the status of those records
will be "lab hold" and you must use the Web forms to override the range
check (or correct the value through Web forms or a replacement file)**.
You cannot approve data where a range check notification has not been
addressed. Thus, the data cannot be sent to the PWS to approve and will
remain in the "lab hold" status.

You have two options to edit a range check. In order to override the
warning message and approve the data, you must use the Web forms. If, in
reviewing the data, you believe the data should be corrected, you may do
so either by using the Web form or by correcting the data in your system
and issuing a replacement transaction.

*Table 3. Range Checks Performed by SDWARS*

  --------------------------------------------------------- ---------------
  **Error**                                                 **Can be
                                                            overridden?**

  concentration fortified result value is less than one     N
  half of the minimum reporting level                       

  concentration fortified result value is more than the     Y
  maximum reasonable value                                  

  field sample result value is less than the minimum        N
  reporting level                                           

  field sample result value is more than the maximum        Y
  reasonable value                                          

  field sample result value is not null with indication of  N
  below minimum reporting level                             

  field sample result value is null with no indication of   N
  below minimum reporting level                             

  lab fortified sample matrix duplicate result value is     N
  less than 0.0001                                          

  lab fortified sample matrix duplicate result value is     Y
  less than one tenth of the minimum reporting level        

  lab fortified sample matrix duplicate result value is     Y
  more than the maximum reasonable value                    

  lab fortified sample matrix result value is less than     N
  0.0001                                                    

  lab fortified sample matrix result value is less than one Y
  tenth of the minimum reporting level                      

  lab fortified sample matrix result value is more than the Y
  maximum reasonable value                                  
  --------------------------------------------------------- ---------------

**[Flat File Format, UCMR Reporting]{.underline}**

**How to Read the Record Definitions**

*Table 4. Explanation of the Layout for Record Definitions*

+--------------+-------------------------------------------------------+
| **Column**   | **Purpose**                                           |
+--------------+-------------------------------------------------------+
| Element      | Provides the name for the element.                    |
+--------------+-------------------------------------------------------+
| Type and     | Specifies the allowable character types and the       |
| size         | number of characters.                                 |
|              |                                                       |
|              | Types \[AN = alphanumeric and special characters, N = |
|              | numeric characters with optional decimal "."\] ;      |
|              |                                                       |
|              | Sizes \[absolute (e.g., "9"), range (e.g., "1-5")\]   |
+--------------+-------------------------------------------------------+
| May be null  | Indicates if the element is allowed to be valued as   |
|              | "null".                                               |
+--------------+-------------------------------------------------------+
| Codes        | Specifies acceptable code values for coded elements.  |
+--------------+-------------------------------------------------------+
| Notes        | Provides additional information about element         |
|              | definitions, their purposed, or values.               |
+--------------+-------------------------------------------------------+

**Header Record Definitions**

Occurs once at the beginning of a transaction file to provide
transaction processing information.

*Table 5. Header Record Definitions*

+--------+------+------+--------+------------------------------------+
| **Ele  | **   | *    | **     | **Notes**                          |
| ment** | Type | *May | Code** |                                    |
|        | and  | be   |        |                                    |
|        | si   | nu   |        |                                    |
|        | ze** | ll** |        |                                    |
+--------+------+------+--------+------------------------------------+
| sta    | AN 3 | No   | HDR    | Identifies the record type as a    |
| rt_tag |      |      |        | header record. Used by CDX to      |
|        |      |      |        | determine processing functions.    |
+--------+------+------+--------+------------------------------------+
| lab_ID | AN 7 | No   |        | Identifies the laboratory          |
|        |      |      |        | submitting the data. Your          |
|        |      |      |        | laboratory ID begins with the      |
|        |      |      |        | standard 2-character postal state  |
|        |      |      |        | abbreviation and the remaining 5   |
|        |      |      |        | numbers are unique to each lab in  |
|        |      |      |        | the state. The lab_ID must exist   |
|        |      |      |        | in CDX Registration for the        |
|        |      |      |        | submitting user.                   |
+--------+------+------+--------+------------------------------------+
| t      | AN 1 | No   | O, R   | An "O" identifies the transaction  |
| ransac |      |      |        | contains only new data (originals  |
| tion\_ |      |      |        | only). An "R" identifies the       |
|        |      |      |        | transaction contains replacement   |
| p      |      |      |        | data and may contain some original |
| urpose |      |      |        | data. The replacement submission   |
|        |      |      |        | identifies the records already     |
|        |      |      |        | exist. If they do, the system will |
|        |      |      |        | overwrite those existing records   |
|        |      |      |        | in SDWARS (replacements            |
|        |      |      |        | permitted). Once a transaction is  |
|        |      |      |        | defined with the purpose of either |
|        |      |      |        | \"O\" or \"R\", then all records   |
|        |      |      |        | in that transaction will be        |
|        |      |      |        | processed under the rules of the   |
|        |      |      |        | selected purpose code. If \"O\",   |
|        |      |      |        | then all duplicate transaction     |
|        |      |      |        | records in SDWARS are rejected.    |
|        |      |      |        | SDWARS will reject the entire file |
|        |      |      |        | if any error is found. Used by CDX |
|        |      |      |        | to determine processing functions. |
|        |      |      |        |                                    |
|        |      |      |        | O: Originals                       |
|        |      |      |        |                                    |
|        |      |      |        | R: Replacements permitted          |
+--------+------+------+--------+------------------------------------+

**Collection Record Definitions**

The Collection record occurs once for each sample ID. A separate
Collection record is required for each sample collected.

*Table 6. Collection Record Definitions*

+--------+------+------+--------+------------------------------------+
| **Ele  | **   | *    | **     | **Notes**                          |
| ment** | Type | *May | Code** |                                    |
|        | and  | be   |        |                                    |
|        | si   | nu   |        |                                    |
|        | ze** | ll** |        |                                    |
+--------+------+------+--------+------------------------------------+
| sta    | AN 3 | No   | COL    | Identifies the record type as a    |
| rt_tag |      |      |        | collection record. Used by CDX to  |
|        |      |      |        | determine processing functions.    |
+--------+------+------+--------+------------------------------------+
| pws_ID | AN 9 | No   |        | Identifies the PWS from which the  |
|        |      |      |        | sample was taken. The PWS ID       |
|        |      |      |        | begins with the standard           |
|        |      |      |        | 2-character postal state           |
|        |      |      |        | abbreviation or region code and    |
|        |      |      |        | the remaining 7 numbers are unique |
|        |      |      |        | to each PWS in the state, with the |
|        |      |      |        | exception of Utah where the code   |
|        |      |      |        | is 4 characters followed by 5      |
|        |      |      |        | digits.                            |
+--------+------+------+--------+------------------------------------+
| facil  | N 5  | No   |        | This element is an identification  |
| ity_ID |      |      |        | code established by the state or,  |
|        |      |      |        | at the state\'s discretion, by the |
|        |      |      |        | PWS, following the format of a     |
|        |      |      |        | 5-digit number unique within each  |
|        |      |      |        | PWS for each applicable facility.  |
|        |      |      |        | Leading zeros are required.        |
+--------+------+------+--------+------------------------------------+
| sample | AN   | No   |        | This element is an identification  |
| _point | 1-20 |      |        | code established by the state, or  |
|        |      |      |        | at the state\'s discretion, by the |
| ID     |      |      |        | PWS, unique within each applicable |
|        |      |      |        | facility, for each applicable      |
|        |      |      |        | sample location. This element must |
|        |      |      |        | contain only letters and numbers   |
|        |      |      |        | (a-z, A-Z, 0-9).                   |
+--------+------+------+--------+------------------------------------+
| sche   | AN 3 | No   | (See   | Indicates the sequence number      |
| dule\_ |      |      |        | associated with the specific       |
|        |      |      | Ap     | event.                             |
| event  |      |      | pendix |                                    |
|        |      |      | A)     |                                    |
+--------+------+------+--------+------------------------------------+
| monito | AN 2 | No   | (See   | Identifies list 1 or list 2        |
| ring\_ |      |      |        | monitoring.                        |
|        |      |      | Ap     |                                    |
| type   |      |      | pendix |                                    |
|        |      |      | B)     |                                    |
+--------+------+------+--------+------------------------------------+
| collec | N 8  | No   |        | Identifies the date the sample was |
| tion\_ |      |      |        | collected. Date format is          |
|        |      |      |        | "YYYYMMDD".                        |
| date   |      |      |        |                                    |
+--------+------+------+--------+------------------------------------+
| sam    | AN   | No   |        | Uniquely identifies containers, or |
| ple_ID | 1-30 |      |        | groups of containers, which hold   |
|        |      |      |        | the water samples collected at the |
|        |      |      |        | same sampling location during the  |
|        |      |      |        | same sample collection date. This  |
|        |      |      |        | value must be unique for the lab.  |
+--------+------+------+--------+------------------------------------+
| lab_sa | AN   | Yes  |        | Optional laboratory comments about |
| mple\_ | 1-   |      |        | the sample.                        |
|        | 4000 |      |        |                                    |
| c      |      |      |        |                                    |
| omment |      |      |        |                                    |
+--------+------+------+--------+------------------------------------+

**Result Record Definitions**

The Result record provides a single analytical result for a sample. A
separate Result record is required for each analyte analyzed from a
sample.

*Table 7. Result Record Definitions*

+--------+------+------+--------+------------------------------------+
| **Ele  | **   | *    | **     | **Notes**                          |
| ment** | Type | *May | Code** |                                    |
|        | and  | be   |        |                                    |
|        | si   | nu   |        |                                    |
|        | ze** | ll** |        |                                    |
+--------+------+------+--------+------------------------------------+
| sta    | AN 3 | No   | RES    | Identifies the record type as a    |
| rt_tag |      |      |        | result record. Used by CDX to      |
|        |      |      |        | determine processing functions.    |
+--------+------+------+--------+------------------------------------+
| sam    | AN   | No   |        | Must exist in a                    |
| ple_ID | 1-30 |      |        | preceding/corresponding "COL"      |
|        |      |      |        | record.                            |
+--------+------+------+--------+------------------------------------+
| analyt | AN   | No   | (See   | This element is the identification |
| ical\_ | 1-20 |      |        | code of the analytical method      |
|        |      |      | Ap     | used. Labs must be approved for a  |
| method |      |      | pendix | method, as displayed on the Lab    |
|        |      |      | C)     | home page. Methods are limited to  |
|        |      |      |        | the monitoring_type.               |
+--------+------+------+--------+------------------------------------+
| ana    | AN   | No   | (See   | This element is the identification |
| lyte\_ | 1-4  |      |        | code of the compound being         |
|        |      |      | Ap     | analyzed. The analyte must be      |
| code   |      |      | pendix | applicable for the Method          |
|        |      |      | D)     | provided. See Appendix F --        |
|        |      |      |        | Analytes-to-Methods for a list of  |
|        |      |      |        | methods and their analytes.        |
+--------+------+------+--------+------------------------------------+
| sa     | AN   | No   | (See   | Indicates the type of sample       |
| mple\_ | 1-5  |      |        | collected and/or prepared, as well |
|        |      |      | Ap     | as the fortification level.        |
| type   |      |      | pendix |                                    |
|        |      |      | E)     |                                    |
+--------+------+------+--------+------------------------------------+
| re     | N    | Yes  |        | This element contains the actual   |
| sult\_ | 0.00 |      |        | numeric value of the analysis for: |
|        | 000- |      |        | field samples; laboratory          |
| m      |      |      |        | fortified matrix samples;          |
| easure | 999  |      |        | laboratory fortified sample matrix |
|        | 99\. |      |        | duplicates; and concentration      |
|        |      |      |        | fortified. If a value is provided, |
|        | 9    |      |        | ResultB                            |
|        | 9999 |      |        | elowMinimumReportingLevelIndicator |
|        |      |      |        | must be \"N\". "N/A" may be        |
|        |      |      |        | provided.                          |
|        |      |      |        |                                    |
|        |      |      |        | N/A: NULL                          |
+--------+------+------+--------+------------------------------------+
| re     | AN 1 | No   | Y, N   | This element is a \"Yes/No\"       |
| sult\_ |      |      |        | indicator specifying whether the   |
|        |      |      |        | ResultMeasure value was below the  |
| bel    |      |      |        | measurable threshold for this      |
| ow_mrl |      |      |        | analyte. If ResultMeasure is       |
|        |      |      |        | provided, this must be \"N\".      |
+--------+------+------+--------+------------------------------------+
| re     | AN   | No   | AP     | Indicates the review status of     |
| view\_ | 4-7  |      | PROVE, | this analyte in this sample.       |
|        |      |      |        |                                    |
| status |      |      | HOLD   |                                    |
+--------+------+------+--------+------------------------------------+

**Appendix A**

**Schedule Event Code List**

  --------------------------- -------------------------------------------
  **Schedule Event Code**     **Schedule Event Description**

  SE1                         Schedule Event 1

  SE2                         Schedule Event 2

  SE3                         Schedule Event 3

  SE4                         Schedule Event 4
  --------------------------- -------------------------------------------

**Appendix B**

**Monitoring Type Code List**

  --------------------------- -------------------------------------------
  **Monitor Type Code**       **Monitor Type Description**

  AM                          Assessment Monitoring (List 1)

  SS                          Screening Survey (List 2)
  --------------------------- -------------------------------------------

**Appendix C**

**Method Code List**

  ------------------- -------------------------- ------------------------
  **Method Code**     **Method Description**     **Monitoring Code**

  EPA 521             EPA 521                    SS

  EPA 525.2           EPA 525.2                  SS

  EPA 527             EPA 527                    AM

  EPA 529             EPA 529                    AM

  EPA 535             EPA 535                    SS
  ------------------- -------------------------- ------------------------

**Appendix D**

**Analyte Code List**

  ------------------- ---------------------------------------------------
  **Analyte Code**    **Analyte Name**

  2004                alachlor ESA

  2027                acetochlor

  2045                metolachlor

  2051                alachlor

  2096                hexahydro-1,3,5-trinitro-1,3,5-triazine

  2221                dimethoate

  2314                N-nitroso-dimethylamine

  2316                N-nitroso-di-n-propylamine

  U001                terbufos sulfone

  U002                2,2\',4,4\'-tetrabromodiphenyl ether

  U003                2,2\',4,4\',5-pentabromodiphenyl ether

  U004                2,2\',4,4\',5,5\'-hexabromobiphenyl

  U005                2,2\',4,4\',5,5\'-hexabromodiphenyl ether

  U006                2,2\',4,4\',6-pentabromodiphenyl ether

  U007                1,3-dinitrobenzene

  U008                2,4,6-trinitrotoluene

  U009                alachlor OA

  U010                acetochlor ESA

  U011                acetochlor OA

  U012                metolachlor ESA

  U013                metolachlor OA

  U014                N-nitroso-diethylamine

  U015                N-nitroso-di-n-butylamine

  U016                N-nitroso-methylethylamine

  U017                N-nitroso-pyrrolidine
  ------------------- ---------------------------------------------------

**Appendix E**

**Sample Type Code List**

  --------------------------- -------------------------------------------
  **Sample Type Code**        **Sample Type Description**

  CF                          Concentration Fortified

  FS                          Field Sample

  LFSM                        Lab Fortified Sample Matrix

  LFSMD                       Lab Fortified Sample Matrix Duplicate
  --------------------------- -------------------------------------------

**Appendix F**

**Analytes-to-Methods**

  ------------ ----------- -------------------- --------------------------
  **Analyte    **Method    **Maximum Reasonable **Minimum Reporting
  Code**       Code**      Value**              Level**

  2004         EPA 535     300                  1

  2027         EPA 525.2   99                   2

  2045         EPA 525.2   99                   1

  2051         EPA 525.2   99                   2

  2096         EPA 529     99                   1

  2221         EPA 527     70                   0.7

  2314         EPA 521     0.99                 0.002

  2316         EPA 521     0.99                 0.007

  U001         EPA 527     40                   0.4

  U002         EPA 527     30                   0.3

  U003         EPA 527     90                   0.9

  U004         EPA 527     70                   0.7

  U005         EPA 527     80                   0.8

  U006         EPA 527     50                   0.5

  U007         EPA 529     80                   0.8

  U008         EPA 529     80                   0.8

  U009         EPA 535     300                  2

  U010         EPA 535     300                  1

  U011         EPA 535     300                  2

  U012         EPA 535     300                  1

  U013         EPA 535     300                  2

  U014         EPA 521     0.99                 0.005

  U015         EPA 521     0.99                 0.004

  U016         EPA 521     0.99                 0.003

  U017         EPA 521     0.99                 0.002
  ------------ ----------- -------------------- --------------------------