Level-numbers are used to describe the hierarchical organization of a record. Level-numbers that describe this hierarchy range from 01 through 49.
The topmost data item is the record. It always has a level-number of 01. Items that are included in the record have greater (although not necessarily consecutive) level-numbers.
All items subordinate to a group item must have level-numbers greater than the group's level-number. The end of a group item is delimited by the next data description entry that has a level-number less than or equal to the group's level-number.
Four special level-numbers are used to specify special types of data. They are never used in a hierarchical structure. Instead, they define the following special types:
The following example shows how level-numbers define a record's hierarchy and shows how records, groups, and elementary items interact. The items are indented to display the hierarchy. This is a recommended programming practice but is not required by COBOL.
01 EMPLOYEE-RECORD. (record)
03 EMPLOYEE-KEY. (group)
05 DEPARTMENT-CODE (elementary)
05 EMPLOYEE-NUMBER (elementary)
03 EMPLOYEE-IDENTIFICATION. (group)
05 EMPLOYEE-NAME (elementary)
05 EMPLOYEE-ADDRESS. (group)
07 STREET-ADDRESS-1 (elementary)
07 STREET-ADDRESS-2 (elementary)
07 CITY (elementary)
07 STATE (elementary)
07 ZIP-CODE (elementary)
05 EMPLOYEE-RACE (elementary)
05 MARRIAGE-STATUS (elementary)
03 PAYROLL-INFORMATION. (group)
05 SALARY (elementary)
05 PAY-FREQUENCY (elementary)
05 DEDUCTION-CODE-1 (elementary)
05 DEDUCTION-CODE-2 (elementary)
05 SICK-ACCRUAL-RATE (elementary)
05 VACATION-ACCRUAL-RATE (elementary)