The Tellenze blog

An Export Should Make Sense Tomorrow

A file can open perfectly and still leave its next reader guessing. A fictional equipment handover explores identifiers, missing dates and the meaning that needs to travel with data.

· The Tellenze team

A camping lantern and its blank inventory tag sit beside a teal sheet curving into an open folder with a matching explanatory card.

The equipment handover has arrived as an attachment. Nora opens it, finds the camping lantern she has just taken out of the cupboard, and looks for its last inspection.

The date is blank. The condition is 2. The little label on the lantern says 0017; her spreadsheet shows 17.

This is a fictional climbing club and a fictional handover. Nora is taking over its equipment register. She can read every cell, but she doesn't yet know what the cells mean.

Was the lantern never inspected? Has a date gone missing? Is condition 2 good, bad, or simply the second option someone added years ago?

The outgoing volunteer could answer. Next month, that person may be harder to reach. The file needs to carry a little of the explanation that stayed behind in the application.

The screen was doing more than displaying rows

Inside the club's application, condition 2 appears as “Check record”. A short explanation says that an inspection entry needs attention. On the page Nora has never seen, the blank date appears as “No inspection date recorded”.

Those words don't establish what happened to the lantern. They establish what the register can tell her.

That distinction matters. An empty field cannot, by itself, distinguish an inspection that never happened from one that happened without its date being entered. Renaming the exported column never_inspected would introduce a conclusion the source doesn't support.

A more helpful handover could keep last_recorded_inspection and explain its absence: “Blank means the register contains no date. It does not establish whether an inspection took place.” If the application knows a more specific reason, the export can carry it separately. If it doesn't, a confident label won't create that knowledge.

The code deserves similar care. Nora needs a description of “Check record”, rather than a guessed translation into “Poor condition”. For a human reader, the export might contain both the code and its readable label. A small accompanying dictionary can explain the allowed values.

W3C's CSV on the Web primer describes how column documentation and a schema can accompany a CSV file. The primer is non-normative guidance; it doesn't make an elaborate metadata system compulsory for the club.

Its underlying Metadata Vocabulary for Tabular Data includes ways to state datatypes and which strings represent null values. That helps a processor recognize absence. Explaining what the absence means in this register still belongs to the people defining the data.

There is another bit of the screen to recover. The outgoing volunteer downloaded only equipment in the camping cupboard. The club also owns kit stored elsewhere.

Without that scope, Nora could reasonably mistake the file for the whole inventory. A short note saying “Camping cupboard; current records; exported 12 October 2026” gives her a different basis for reading it. The export date tells her when the register was captured. It doesn't replace an inspection date.

Useful context is quite concrete here. Which cupboard? What does one row describe? Why is a date empty? Much of it can fit on a page.

The identifier has a journey of its own

The original CSV can still contain 0017 even when a spreadsheet displays 17. A receiving application may interpret a numeric-looking identifier as a number.

Microsoft's guidance on leading zeros explains Excel's automatic conversions and ways to preserve such values as text during import. The available controls depend on the Excel version.

For Nora, the identifier is how she matches a row to the label on a particular lantern. She isn't going to add it to another lantern's identifier.

The producer can state that the column contains text identifiers and give an import route appropriate to the tool Nora uses. If the handover is a spreadsheet workbook, the producer can store those cells as text. Either way, it's worth checking what the recipient actually sees and what remains after saving the file again.

CSV quotation marks alone don't express a column datatype. RFC 4180's description of the CSV format covers records, optional headers and quoting, and acknowledges differences between implementations. It is an Informational RFC. A correctly quoted file can have a perfectly understandable structure while leaving the receiving program to interpret its values.

Nor should a row's position become its identity. Nora may sort by name or remove an item she has already reviewed. “The lantern in row 18” is a fragile reference; the equipment identifier can stay useful as the list changes.

Readable names help her recognize the object. An identifier helps her keep referring to the same one.

Choose something the next reader can use

It would be easy to respond to these problems by abandoning CSV altogether. For a small, flat register, that may add more work than it removes.

A CSV plus a brief dictionary could serve the club well. The dictionary can describe the scope, columns, condition values, missing dates and identifier import. Give both files names that make their relationship obvious, and keep the dictionary with the edition it explains. If condition codes change later, the old handover should still have its old explanation.

That arrangement has a weakness: the files can become separated. A workbook with a clearly named notes sheet may be more convenient for Nora. It still needs the explanations; changing the container won't define condition 2.

A different recipient might need a different shape. If another application will read several related files repeatedly, a structured package can make sense. The Data Package standard describes a collection of resources with a metadata descriptor. It offers a way to carry descriptions with the data for tools that understand that arrangement. It doesn't ensure that Nora's spreadsheet will use the descriptor.

The choice depends on the next use. Reading a short handover, joining records for analysis and rebuilding an application are different jobs. An equipment list may omit photographs, change history or relationships that a full restoration would require. Calling it an export doesn't make it a complete backup.

Before settling the format, hand a representative file and its explanation to someone who hasn't seen the application's screen. Let them use their usual tool. Ask them to describe one ordinary row and one incomplete row, then match an identifier to the object it describes.

Watch where they need the original product, or the person who built it, to continue. That is useful evidence about what the handover still needs.

In our fictional club, Nora finds a note explaining the blank date and the condition code. She keeps the lantern's identifier intact and sets aside the record for follow-up. The file hasn't invented an inspection. It has given her enough information to know what she needs to ask.

Further reading