Uploading DMR Data (Excel and XML)
Overview
nVIRO supports importing DMR data in the following formats:
Microsoft Excel (.xls or .xlsx): Files can include data for multiple DMRs and reporting periods. If data is uploaded for a DMR that has already been submitted, nVIRO creates a new draft revision of the DMR and merges the uploaded data with the data from the previous version.
XML: Files can only contain data for one reporting period. After a valid file is uploaded, the data is added to the draft DMR.
Available formats may vary based on system configuration.
Uploading DMR Data
The steps for uploading data are the same for both formats:
Click the File Upload button at the top of the Discharge Monitoring Reports page.
Browse for the file to upload or drag the file from another window into the “Drop files here to upload” area.
Click the Validate button. The system automatically checks the file and displays any validation errors, warnings, or messages.
Review the validation results.
If the Save to Draft DMR button activates, at least one DMR measurement was successfully mapped.
If no data could be mapped, the button remains unavailable. Review the errors, update the file, and try again.
After data are uploaded, the affected DMRs remain in Draft status. Each DMR must be manually submitted after review.
Formatting DMR Data for Upload (Excel)
Separate Excel upload formats are available for summary and daily DMR data.
Leading zeros must be preserved in Excel files, where applicable. By default, Excel formats values that appear numeric, which can cause issues—for example, permitted feature “001” may be converted to “1,” preventing correct mapping. To prevent this behavior, prefix the value with a backtick (for example, “`001”).
Preparing Daily DMR Files
To populate a daily DMR, the file must contain a worksheet named “DailyData” with the following columns:
PermitNumber (for example, “XX1234567”)
PermittedFeatureIdentifier (for example, “001”)
LimitSetDesignator (for example, “A”)
MonitoringLocationCode (for example, “1”)
ParameterCode (either the parameter code [for example, “00400”] or description [for example, “pH”])
DmrValue (a numeric value or non-report reason code; less-than or greater-than qualifiers can be used)
ParameterUnitCode (either the parameter unit code [for example, “0012”] or short description [for example, “mg/l”])
SampleDate (the date the sample was taken, in MM/DD/YYYY or YYYYMMDD format)
Preparing Summary DMR Files
To populate a summary DMR, the file must contain a worksheet named “SummaryData” with the following columns:
PermitNumber (for example, “XX1234567”)
PermittedFeatureIdentifier (for example, “001”)
LimitSetDesignator (for example, “A”)
MonitoringLocationCode (for example, “1”)
ParameterCode (either the parameter code [for example, “00400”] or description [for example, “pH”])
DmrValue (a numeric value or non-report reason code; less-than or greater-than qualifiers can be used)
ParameterUnitCode (either the parameter unit code [for example, “0012”] or short description [for example, “mg/l”])
StatisticalBaseCode (either the statistical base code [for example, “MK”] or description [for example, “Monthly Average”])
DmrEndDate (the last day of the DMR period, in MM/DD/YYYY or YYYYMMDD format)
Formatting DMR Data for Upload (XML)
Uploaded XML files must conform to the XML schema. Users can build XML files using their own software or download an XML requirements file for a DMR from the Discharge Monitoring Reports page and populate it with sampling values. Permit, report, and parameter identification values are automatically populated when the XML is downloaded for a given DMR.
XML elements that nVIRO uses to populate DMRs are listed in the following sections. Elements that are not used for uploads are optional and can be omitted.
Permit and Report Identification Elements
XML elements used for permit and report identification are described below. Each XML path begins with:
eDMR/Submission/Facility/Report/ReportIdentification/Combine the base path with the segment listed in the table to form the full XML path.
Path | Description |
|
|---|---|---|
PermitNumber | The permit to which the submission relates. |
|
ReportStartDate and ReportEndDate | The first and last day of the reporting period to which the submission relates. |
|
MonitoringLocationGroup and MonitoringLocationName attribute | The monitoring point or limit set name. | These values must match the names defined in the system. |
Parameter Identification Elements
XML elements used for parameter identification are described below. Each XML path begins with:
eDMR/Submission/Facility/Report/ReportIdentification/MonitoringLocationGroup/ParameterIdentification/Combine the base path with the segment listed in the table to form the full XML path.
Path | Description | Notes |
|---|---|---|
ParameterCode | The five-character parameter code used to identify the constituent to be measured and reported. | If this value is omitted, the system will attempt to look up the parameter code based on the ParameterName provided in the next XML element. |
ParameterName | The name of the parameter that identifies the constituent to be measured and reported. | This value can be omitted if a valid parameter code is provided in the previous XML element. |
PCSLocationCode | The unique identifier for the sampling location. | If this value is omitted, the system will attempt to look up the monitoring location code based on the MonitoringSiteDescription provided in the next XML element. |
MonitoringSiteDescription | The name of the sampling location. | This value can be omitted if a valid monitoring location code is provided in the previous XML element. |
Summary DMR Value Elements
XML elements used for summary DMR limits and values are described below. Each XML path begins with:
eDMR/Submission/Facility/Report/ReportIdentification/MonitoringLocationGroup/MonitoringData/SummaryofMonitoringResultThis block has two child elements:
PermitRequirementforSummary: The limit to which the DMR value relatesSummaryResult: The reported summary DMR value
Combine the base path with the segment listed in the table to form the full XML path.
Path | Description | Notes |
|---|---|---|
PermitRequirementforSummary/StatisticalBaseCode | The statistical base code for the limit (for example, “Maximum Daily”). | The text must exactly match the statistical base code description defined in the system for the reporting requirement. |
PermitRequirementforSummary/LimitValue | The permit limit. | If the value is not numeric, enter either “(Report)” or “(Optional).” |
PermitRequirementforSummary/LimitUnit | The unit associated with the permit limit (for example, “mg/L” or “MGD”). |
|
SummaryResult/MeasurementQualifier | A less-than or greater-than symbol used to qualify the reported DMR value, if applicable. |
|
SummaryResult/MeasurementValue | The reported DMR value. | This element also supports non-report reason codes. |
SummaryResult/ResultComment/Comments | Comments related to the reported value. |
|
Daily DMR Value Elements
XML elements used for daily DMR limits and values are described below. Each XML path begins with:
eDMR/Submission/Facility/Report/ReportIdentification/MonitoringLocationGroup/MonitoringData/IndividualMonitoringResultThis block has two child elements:
PermitRequirementforIndividual: The limit to which the DMR value relatesIndividualResult: The reported daily DMR value
Combine the base path with the segment listed in the table to form the full XML path.
Path | Description | Notes |
|---|---|---|
PermitRequirementforIndividual/StatisticalBaseCode | The statistical base code for the limit (for example, “Maximum Daily”). | The text must exactly match the statistical base code description defined in the system for the reporting requirement. |
PermitRequirementforIndividual/LimitValue | The permit limit. | If the value is not numeric, enter either “(Report)” or “(Optional).” |
PermitRequirementforIndividual/LimitUnit | The unit associated with the permit limit (for example, “mg/L” or “MGD”). |
|
IndividualResult/MeasurementQualifier | A less-than or greater-than symbol used to qualify the reported DMR value, if applicable. |
|
IndividualResult/MeasurementValue | The reported DMR value. | This element also supports non-report codes. |
IndividualResult/MonitoringStartDate | The date the sample was taken. |
|
IndividualResult/ResultComment/Comments | Comments related to the reported value. |
|
Example XML File
The following example shows a valid XML file containing one summary and one daily result.
On this page
Related Content
<eDMR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Users\bgeake\Desktop\MiWaters-working\limits_and_DMRs\dmr_miwaters_v1.xsd">
<MetaData/>
<Receiver/>
<Sender>
<SenderName/>
</Sender>
<Submission submissionFileCreatedDate="2015-10-26" submissionID="-3984139229078496857">
<Facility>
<FacilityIdentification stateFacilityIdentifier="8513184271826325334" stateFacilitySystemAcronymName="MiWaters">
<FacilitySite>
<FacilitySiteName>Dundee WWTP</FacilitySiteName>
</FacilitySite>
<LocationAddress>
<LocationAddressText>596 Main Street</LocationAddressText>
<LocalityName>Dundee</LocalityName>
<CountyName>Monroe</CountyName>
<StateName>MI</StateName>
<CountryName>United States</CountryName>
<LocationZIPCode>48131</LocationZIPCode>
</LocationAddress>
</FacilityIdentification>
<Report>
<ReportIdentification>
<PermitNumber>MI0020401</PermitNumber>
<PermitteeName>Village of Dundee</PermitteeName>
<ReportStartDate>2015-09-01</ReportStartDate>
<ReportEndDate>2015-09-30</ReportEndDate>
</ReportIdentification>
<MonitoringLocationGroup monitoringLocationName="001A">
<LocationGroupIdentification monitoringLocationName="001A">
<StateMonitoringGroupID>001A</StateMonitoringGroupID>
<NoDischargeIndicator/>
</LocationGroupIdentification>
<MonitoringData>
<ParameterIdentification>
<StateMonitoringSiteID>001A</StateMonitoringSiteID>
<MonitoringSiteDescription>001A</MonitoringSiteDescription>
<PCSLocationCode>1</PCSLocationCode>
<ParameterCode>50050</ParameterCode>
<ParameterName>Flow</ParameterName>
<SupplementalParameterName2/>
<SupplementalParameterName3/>
<SupplementalParameterName4/>
<DisplaySequencyNo>10</DisplaySequencyNo>
<PermitSampleFrequency>Daily</PermitSampleFrequency>
<PermitSampleType>Report Total Daily Flow</PermitSampleType>
</ParameterIdentification>
<Laboratory>
<LabCertificationNumber>12345</LabCertificationNumber>
</Laboratory>
<SummaryofMonitoringResult>
<PermitRequirementforSummary>
<StatisticalBaseCode>Maximum Daily</StatisticalBaseCode>
<PCAmountIdentifier>1</PCAmountIdentifier>
<LimitValue>(report)</LimitValue>
<LimitUnit>MGD</LimitUnit>
</PermitRequirementforSummary>
<SummaryResult>
<StatisticalBaseCode/>
<MonitoringStartDate>2015-09-01</MonitoringStartDate>
<MonitoringEndDate>2015-09-30</MonitoringEndDate>
<MeasurementQualifier/>
<MeasurementValue>100</MeasurementValue>
<MeasurementUnit>MGD</MeasurementUnit>
<ExcursionIndicator>3</ExcursionIndicator>
<ActualSampleFrequency/>
<ActualSampleType/>
<PCAmountIdentifier>1</PCAmountIdentifier>
<ResultComment>
<Comments>My Summary Value Comment</Comments>
</ResultComment>
</SummaryResult>
</SummaryofMonitoringResult>
<IndividualMonitoringResult>
<PermitRequirementforIndividual>
<StatisticalBaseCode>Maximum Daily</StatisticalBaseCode>
<PCAmountIdentifier>1</PCAmountIdentifier>
<LimitValue>(report)</LimitValue>
<LimitUnit>MGD</LimitUnit>
</PermitRequirementforIndividual>
<IndividualResult>
<MonitoringStartDate>2015-09-01</MonitoringStartDate>
<MonitoringEndDate>2015-09-01</MonitoringEndDate>
<MeasurementQualifier><</MeasurementQualifier>
<MeasurementValue>3</MeasurementValue>
<MeasurementUnit>MGD</MeasurementUnit>
<ResultComment>
<Comments>My Individual Result Comment</Comments>
</ResultComment>
</IndividualResult>
</IndividualMonitoringResult>
</MonitoringData>
</MonitoringLocationGroup>
</Report>
</Facility>
<Certification>
<CertificationStatement>As the true and sole authorized user of this Personal Identification Number (PIN), I certify under penalty of law that I have personally examined and am familiar with the information submitted herein; and based on my inquiry of those individuals immediately responsible for obtaining the information, I believe the submitted information is true, accurate and complete. I am aware that there are significant penalties for submitting false information including the possibility of fine and imprisonment.</CertificationStatement>
<Certifier/>
<CertifierTitle/>
</Certification>
</Submission>
</eDMR>