# Naming files and subfolders

> A few ruthlessly consistent naming habits – like year-month-day dates – will keep your files sorted and findable forever.

## Sort is our friend

When producing our pre-made systems, we realised something really important. If you lean heavily on 'sort', it solves so many problems.

It brings order to large amounts of information, and it also looks nice, neat, and consistent.

### Example

In the [Life Admin System](/las/), the ID `15.41 All short trips` contains all of your short trips. The kind of things that you just book and go, so you don't have much information to store.

You can fit a lifetime of short trips in one ID if you create a new subfolder for each trip, and start it with the 'year-month-day':

<JDLineDiagram
  text={`
15.41 All short trips
├──── 2016-10-10 Weekend in Darwin/
├──── 2017-03-01 Drive to the coast/
├──── 2018-02-09 Boat to Tasmania/
├──── 2019-06-13 Drive to Bourke/
├──── 2021-01-01 NYE trip to Googong/
├──── 2023-02-11 Bus trip for birthday/
├──── 2023-09-30 Train to Adelaide/
├──── 2024-02-13 CBR-SYD Weekend in Sydney/
├──── 2024-05-27 Train to Griffith/
├──── 2024-06-18 CBR-LRE Qantas museum/
├──── 2025-04-09 Drive to Narrandera/
└──── 2026-01-07 Hotel in Cobar/
`}
  alt="A tree diagram for the ID called 15.41 All short trips. It shows a dozen subfolders. They all start year-month-date, so they sort neatly. Each is followed by a trip name."
  figNumber="62.34A"
  figCaption="Neatly-sorted subfolders starting with year-month-day."
/>

Now every trip sorts by date. And that's all you really need to do.

This works for so many things. `13.31 Purchase receipts` is a nice one. You can fit a lifetime of receipts in one ID if they all start with year-month-day, then what it is and where you bought it.

## Sorting by year-month-day

[ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) is the only date format you should ever use: `yyyy-mm-dd`.

<JDLineDiagram
  text={`
                           
     2020-09-02 Oldest file.doc   
     2023-09-03 Middle file.doc
     2025-10-01 Newest file.doc
                           
`}
  alt="Three files neatly sorted by year-month-day. The oldest file comes first. The middle file sorts below the oldest file. And the newest file sorts below the middle file."
  figNumber="62.34B"
  figCaption="Sorting by year-month-day."
/>

Shortening this format also works if you don't need the day.

<JDLineDiagram
  text={`
                           
     2025-01 Phone bill.pdf   
     2025-02 Phone bill.pdf
     2025-03 Phone bill.pdf
                           
`}
  alt="Three monthly phone bills neatly sorted by year-month."
  figNumber="62.34C"
  figCaption="Sorting by year-month."
/>

<JDLineDiagram
  text={`
                           
     2022 Annual tax return.pdf   
     2023 Annual tax return.pdf
     2024 Annual tax return.pdf
                           
`}
  alt="Three annual tax returns neatly sorted by year."
  figNumber="62.34D"
  figCaption="Sorting by year."
/>

### Any other date format won't sort by date

For example, don't use day-month-year! You've probably seen this pattern before. It's responsible for a lot of the chaos at work.

<JDLineDiagram
  text={`
                               
     01-10-2025 Newest file.doc   
     02-09-2020 Oldest file.doc
     03-09-2023 Middle file.doc
                               
`}
  alt="Three files that did not sort properly because someone used day-month-year. The newest file comes first. The oldest file sorts below the newest file. And the middle file sorts below the oldest file."
  figNumber="62.34E"
  figCaption="Sorting by day-month-year brings chaos."
/>

## Sorting by version

Version numbers should be consistent and help you sort the files. Naturally you want the older files together at the top and the newer files at the bottom.

I routinely see this done poorly, and it's such an easy thing to get right. Something as simple as this is all you need.

<JDLineDiagram
  text={`
                        
     v1 Name of file.doc   
     v2 Name of file.doc
     v3 Name of file.doc
                        
`}
  alt="Three files neatly sorted because they start with v1, v2, v3."
  figNumber="62.34F"
  figCaption="Putting the version number at the start."
/>

Or, if you prefer.

<JDLineDiagram
  text={`
                   
     Name of file v1.doc   
     Name of file v2.doc
     Name of file v3.doc
                   
`}
  alt="Three files neatly sorted because they end with v1, v2, v3."
  figNumber="62.34G"
  figCaption="Putting the version number at the end."
/>

## Be ruthlessly consistent

All of this neat sorting is easily ruined by being inconsistent. So whatever filename format you decide on, stick with it. Ruthlessly.[^spacedashspace]

[^spacedashspace]: We used to recommend separating the date/version from the title with 'space dash space'. We tend not to do that now. But if you prefer it, it's easy to type (no need for the Shift key) and it does look neat. Just be consistent!

And remember, as soon as you get lazy _the sort breaks_. A common trap is inconsistently using spaces and symbols.

<JDLineDiagram
  text={`
                                    
     2025 - 07 - 05 - chicken report.pdf   
     2025 07-03 chicken-  report.pdf
     2025- 07 -02 chicken Report.pdf
     2025-07_01   Chicken report.pdf
     2025-07-04 - chicken_report.pdf
                                    
`}
  alt="A bunch of very inconsistently-named files that do not sort and look messy. There is random use of spaces, dashes, underscores, and capital letters."
  figNumber="62.34H"
  figCaption="Unsorted, messy, inconsistently-named files."
/>

This may seem like a small thing, but it can make a big difference. Plus it just looks nicer when everything lines up. :-)

<JDLineDiagram
  text={`
                              
     2025-07-01 Chicken report.pdf 
     2025-07-02 Chicken report.pdf
     2025-07-03 Chicken report.pdf
     2025-07-04 Chicken report.pdf
     2025-07-05 Chicken report.pdf   
                              
`}
  alt="A bunch of consistently-named files that sort and look neat. They all start with year-month-day, then a space, then the title."
  figNumber="62.34I"
  figCaption="Sorted, neat, consistently-named files."
/>

## Should I add the ID to the filename?

It depends. There's two main scenarios where we think it can be handy.

1. **If you're sending files by email.** The ID travels with the file and everyone knows exactly what they're looking at.

2. **In your 'recently opened' list of files.** The ID can help you choose what you want more quickly.

But broadly, if you find it useful, go ahead. It never hurts, and the little bit of extra typing is usually worth the effort.

Note that if you're a Windows user, you'll be familiar with filename length restrictions. So adding the ID to your filenames may be:

- Quite useful, helping you cut back on characters,
- Or not, if you need to include other mandatory details.