The Flat-File Report DID defines how contractors deliver pre-specified contract data in a flat-file format according to a required flat-file format specification (FFS).
The Flat-File Report is designed to allow for the collection of pre-specified types of contract data in a flat-file format. This data item description (DID) requires its users to define the structure and format of contractor delivered tabular data by defining a flat-file format specification (FFS). The FFS establishes the required list of data field names, data type requirements and parameters, the level of precision, data enumeration requirements, whether data fields are nullable, naming conventions, and the electronic file format. The schema employed by this DID relies on the FFS being defined and attached to the contract and referenced in the contract scope of work and Contract Data Requirements List (DD Form 1423-1) citing this DID. This DID can also be used to define a series of independent reports which are interrelated when keys (for example, primary, secondary, and tertiary keys) are defined as data fields in their respective flat-file format specifications. This DID is best utilized when a one-to-one relationship exists between the data delivered and the analysis to be performed on the data. Multiple points of analysis are best served by multiple citations of this DID in the contract requirements, each with its own unique FFS tailored for a precise analytic application. A clear description of the analytic intent and liberal use of data enumeration in the FFS can be used to ensure the delivered data is narrowly tailored to meet the user's analytic purpose.
1. This DID requires its users to create an FFS which shall be attached to the contract and referenced in the contract scope of work and Contract Data Requirements List (DD Form 1423-1) citing this DID. If multiple data deliverables in the same contract cite this DID, each of those data deliverables requires a unique FFS attachment. See Figure 1 for an example FFS. A minimally viable FFS shall provide the following:
a. Analytic intent: The analytic intent describes how the data delivered according to the FFS will be used.
b. Data field names: Data field names are used as column headers to assist in interpreting the meaning of values populated in the rows beneath the data field name.
c. Data types: A data type identifies the kind of data which populates the rows beneath the data field name. Every data field shall identify a corresponding data type. The data type selected for the data field shall be selected from Figure 2.
d. Precision: Certain numeric data types require that a precision value be declared in the FFS. The precision value specifies the total length of a numeric expression by defining the total number of digits in the expression. When the data type selected requires the declaration of both precision and scale values, the scale value must be less than or equal to the precision value.
e. Scale: Certain numeric, date, and time data types require that a scale value be declared in the FFS. The scale value specifies the required accuracy of fractions when depicted as their equivalent decimal values by defining the total number of digits to the right of the decimal point to be expressed. When the data type selected requires the declaration of both precision and scale values, the scale value must be less than or equal to the precision value.
f. String length: Character string data types require that a string length be declared in the FFS. Depending on the character string data type chosen, the string length value shall specify the number of characters in a fixed length string or the maximum number of characters in a variable length string.
g. Enumeration and enumeration constants: The FFS shall declare when enumeration is required. Enumeration is required when entries for a data field are to be selected from a finite set of known values. These known values are called enumeration constants. Whenever enumeration is required, an accompanying set of enumeration constants shall be provided in the FFS.
h. Nullability: The FFS shall declare whether a data field is nullable. A data field is nullable if empty results (null values) are allowed.
i. Description: A data field description shall be provided in the FFS to describe the expected returned values and other data field parameters (for example, formats for character string data types).
j. Electronic file format: The FFS shall declare the type of electronic file used to store the tabular data.
2. This DID contains the format, content, and intended use information for the data deliverable resulting from the work task described in the solicitation.

Figure 1. Example Flat-File Format Specification.

Figure 2. Flat-File Format Specification Data Types.