The sheet had 1.2 million rows. Scrolling was instant (Elias had disabled auto-calc). Every column was aligned. The dates were consistent. The container IDs read as plain text. At the bottom, a hidden sheet named _Metadata contained the original checksums and conversion logs. And in cell A1, a custom footer read: "Generated by Project Phoenix. No data lost."

Tonight was the eve of the Q3 Harvest. Elias sat in his cubicle, the humming fluorescent light casting a sickly pallor on his stack of cold brew cans. At 38, he felt 58. His boss, a man named Greg who printed emails to read them, had demanded the Q3 report by 9:00 AM sharp.

By 5:00 AM, the parser was reading files. But raw data is not insight. Elias moved to the Excel engine. He used openpyxl , a library he revered like scripture.

"The blue one. 'Phoenix.'"

Every quarter, Elias had to perform "The Harvest." He would extract 50,000 QRP files from the mainframe, run a clunky Python script that a contractor wrote in 2009, and convert them to CSV. Then, he would spend three days in Excel, manually repairing the damage: the script always dropped the last column, misaligned date formats (swapping MM/DD with DD/MM), and turned shipping container IDs into scientific notation (e.g., MEDU1234567 became MEDU1.23E+07 ).

He named the project Project Phoenix . The goal was brutalist in its simplicity: a drag-and-drop executable that ingested a .qrp folder and spat out a pristine .xlsx file.

OmniCorp ran on a legacy system older than most of its drivers. It was called — Quick Record Protocol . In the 1990s, it was a marvel. It was a binary, compressed format that could store an entire manifest of a cargo ship in under 400 kilobytes. But in the present day, QRP was a curse. It was unreadable by modern analytics software, opaque to auditors, and prone to silent corruption if the bit-encoding was off by a single digit.

# The core logic he wrote that night def parse_qrp_record(byte_stream): record = {} # Skip the ancient 4-byte delimiter byte_stream.read(4) while True: field_type = byte_stream.read(1) if not field_type or field_type == b'\x00': # End of record break if field_type == b'\x01': # Integer val = int.from_bytes(byte_stream.read(4), 'little') elif field_type == b'\x02': # String (The cursed variable length) length_byte = byte_stream.read(1)[0] if length_byte & 0x80: length = ( (length_byte & 0x7F) << 8 ) + byte_stream.read(1)[0] else: length = length_byte val = byte_stream.read(length).decode('ascii', errors='ignore') # ... more types record[current_header] = val return record At 1:00 AM, he hit the first wall. QRP files had a "pagination" feature. If a file exceeded 64kb (a common occurrence for transatlantic manifests), the mainframe split it into DATA1.QRP , DATA2.QRP , and a LINK.QRP file. No one had told the contractor in 2009 about the LINK files, which is why his script always dropped columns—it was reading the data, but missing the column headers stored in the link segment.