A good filename does one job: it tells you what the file is without opening it, and it sorts next to the files it belongs with. Everything else in a naming convention is decoration, and decoration is what makes conventions fail — they get long, nobody remembers them, and within a month the drive has four naming styles instead of one.
Here's a convention short enough to be followed.
The pattern
YYYY-MM-DD_Client_Project_Description_v##.ext
2025-04-08_Northwind_Rebrand_LogoConcepts_v03.pdf
2025-04-11_Ferris_Website_HomepageCopy_v02.docx
2025-04-12_Internal_Ops_ClientOnboardingChecklist_v01.pdf
Not every field applies to every file. Drop what doesn't fit, keep the order of what remains. The order is the part that matters — it's what makes files sort into useful groups.
Fields in order of decreasing importance for sorting:
Date first, when chronology is how you'll look for the file: contracts, invoices, meeting notes, reports, anything that recurs. YYYY-MM-DD sorts chronologically as text in every system on earth, which is the entire reason to use it.
Client or project second, when you're inside a general folder that mixes them.
Description third, in enough words to be unambiguous a year later. LogoConcepts beats concepts. Q2BoardDeck beats deck.
Version last, always at the end, always two digits.
If a file lives in a folder that already establishes the client, you can drop the client from the filename. But be conservative about this: files leave their folders constantly, via email, downloads, and shares, and a filename that only makes sense in context becomes useless the moment it's out of context.
Use ISO dates, and only ISO dates
2025-04-08. Not 04-08-2025, not Apr 8 2025, not 8/4/25.
Three reasons, all of them decisive:
It sorts correctly. Any other format sorts by month or day, scattering years.
It's unambiguous internationally. 04/08/2025 is April 8th to an American and August 4th to almost everyone else. If you ever work with someone abroad — a contractor, a supplier, a client — this ambiguity will eventually cost you something real.
It's machine-readable. Every script, search, and automation you might ever write can parse it.
For files organized by period rather than day, use 2025-Q2 or 2025-04. Never April 2025, which sorts April, August, December, February.
Version numbers: two digits, at the end, incrementing
v01, v02, v03 ... v10, v11
Two digits because v10 sorts before v2 otherwise, which puts your tenth version between the first and second and looks like a mistake in every folder listing.
At the end because the version is the least important sorting field — you want all versions of the same thing grouped together, and the version number is what distinguishes them within the group.
Increment on every meaningful save you'd want to return to. Not every save; that's what your editor's undo is for. Increment when you've made a change you might want to reverse, or when you send it to someone.
Never use "final." final, FINAL, final2, finalfinal, final_USE_THIS_ONE. This joke is universal because the behavior is universal. Versions don't stop, so a naming scheme that assumes they do will break the moment reality arrives.
If you need to mark the version that actually shipped, do it with a separate word after the version number, not instead of it: ..._v07_APPROVED.pdf. The version number is still there, and you can still tell what came after.
For client-facing files, name them for the client
There's a second naming style you need, and it applies to anything you send out.
Internal: 2025-04-08_Northwind_Rebrand_LogoConcepts_v03.pdf Sent to client: Northwind Design - Logo Concepts.pdf
The client doesn't need your version tracking, and a file named v03 invites the question of what was in v01 and v02. It also looks like process leaking out of the room.
Keep both. The internal file lives in your working folder with the full name. The renamed copy lives in the deliverables folder, exactly as the client received it. Two files, two purposes, no confusion about which is which.
Characters: what to avoid and why
Avoid entirely: / \ : * ? " < > | — these are reserved by one operating system or another and will cause failures when files move between systems, get zipped, or get uploaded.
Avoid in practice: # % & { } $ ! ' @ + = ~. Several of these break URLs, and any file that might ever be published, synced, or linked will eventually become a URL.
Avoid leading and trailing spaces. They're invisible and they produce two files that look identically named but aren't.
Be careful with periods. Only one, before the extension. Report.v2.final.pdf confuses some systems about where the extension starts.
Use hyphens or underscores as separators. A common convention: underscores between fields, hyphens within a field. 2025-04-08_Northwind-Design_Logo-Concepts_v03.pdf. Consistency matters more than which one you pick.
Spaces are technically fine on modern systems and read more naturally, but they become %20 in URLs and require quoting in scripts. If anything you do involves a website, a server, or a command line, skip them.
Keep total path length under control. Deep folders plus long filenames can exceed path limits, particularly on Windows, and the failure mode is bizarre — files that can't be copied, moved, or deleted. If your names are running long, shorten the folder path rather than the filename.
Case: pick one and stop thinking about it
PascalCase, lowercase-with-hyphens, or Title Case. All are fine. What isn't fine is mixing them, because some systems treat Report.pdf and report.pdf as different files and others don't — which means a file sync between two systems can silently produce duplicates.
For anything web-facing, use lowercase with hyphens. It's the safest and it's what URLs want.
Prefixes for sorting control
Numbering folders and files forces the order you want:
01 Contracts
02 Briefs
03 Working
Two digits, always, for the same reason as version numbers. Leave gaps if you might insert things later: 10, 20, 30 lets you add 15 without renumbering.
For files that need a status, a leading token works well:
_TEMPLATE Client Proposal.docx
ZZ OLD - 2022 pricing.pdf
An underscore or a leading A sorts to the top; Z sorts to the bottom. This is a crude tool but it's universal and it survives moving between systems, which fancier tagging doesn't.
Write the convention on one page
Put it in 01 Admin/File Naming Convention.md. Include the pattern, three real examples from your actual business, and the character rules. That's the whole document.
Then apply it going forward only. Renaming your entire back catalogue to match a new convention is a large job with almost no return — old files are found by search and by folder, not by pattern-matching. Start with new files and with anything you touch anyway.
The convention is worth having because of what it does to future-you and to anyone you hire. A folder where every file follows the same shape can be scanned in seconds. A folder where every file was named by whoever made it has to be read.
Next in this series: How to Organize Contracts, Invoices, and Proposals