The guide
A complaint that wins is a record the other side can check, not a louder letter
Dates in order, every claim tied to a numbered copy, a fingerprint for each file and a reply-by date counted to the day: that is what moves a stalled complaint.
- 64 hex digits length of a written SHA-256 fingerprint
- 11 legal public holidays listed in 5 U.S.C. 6103(a)
- December 7, 2026 10 business days after a letter dated November 20, 2026
- 60 days FTC: time to dispute a card billing error in writing
Read the full guide Fold the guide
Most complaint letters fail quietly. They are not rude and they are not wrong. They are simply hard to act on. The person who opens them has to rebuild the story from scattered sentences, guess which receipt goes with which claim, and decide on their own when an answer is due. Faced with that work, the easiest move is a polite form reply, and the matter stalls.
The letters that get a real answer tend to share a shape. They state what happened in date order. They point every claim at a copy of something the reader can hold. They ask for one specific remedy. And they name a date by which a reply is expected, counted in a way nobody can argue about. None of this needs strong words. It needs a record.
The timeline is the argument
A complaint is a claim about a sequence: you paid, something went wrong, you reported it, nothing happened. If the sequence is clear, the reader can see the failure without being told how to feel about it. If the dates jump around, or one event seems to come before its own cause, the reader starts to doubt the rest.
So the first discipline is boring and powerful. Write every event with a full date, oldest first, and keep the list honest. A useful habit is to write dates as year, month and day, the form ISO 8601 sets out as YYYY-MM-DD. The standard orders the parts from the largest unit to the smallest, which means a list of such dates sorts correctly as plain text. That small property removes a whole class of mistakes, such as reading 03/04 as March in one place and April in another.
Order matters in a second way. When an event turns out to be out of place, it is tempting to sort the list and move on. Resist that. An event that seems out of order is often a sign that a date was mistyped, or that two incidents were merged in memory. Flagging it and checking the source is safer than silently sorting, because the corrected date may change the story. The tool on this page marks such an event and leaves it where you put it.
Two more checks catch most of the rest. No event should be dated after the letter itself, which happens more often than you would think when a draft sits for a week. And every event that rests on a document should cite it by number, while every document you enclose should be cited at least once. An enclosure nobody refers to is clutter. A reference to an enclosure that is not there is worse, because it invites the reply that your evidence was missing.
Evidence the other side can check
The Federal Trade Commission’s advice on disputing a card charge is a good model for any complaint, because it is plain and procedural. Write to the address given for billing inquiries, not the one for payments. Include your name, address and account number and describe the mistake. Send copies, not originals, of the receipts and other documents that support your position. Keep a copy of your own letter. If you send it by certified mail with a return receipt, you have proof of what the company received. The FTC’s sample letter closes with an enclosure list, and that list is the hinge of the whole letter.
For a card billing error the FTC sets a clock as well: send your letter within 60 days after the first bill with the error was sent to you, and the card issuer must acknowledge it in writing within 30 days and resolve it within 90 days. Those periods belong to that one kind of dispute. Other complaints run on other rules, or on none at all, and that is exactly why this page counts days but names no legal time limit. If a deadline matters legally, find the rule that governs your case.
Numbering the enclosures as exhibits turns a pile of attachments into something the reader can navigate. “Exhibit 2 shows the cracked jug on the day of delivery” is a sentence a manager can verify in seconds. When you reorder or drop an exhibit, every reference must follow, or the letter starts pointing at the wrong page. Doing that renumbering by hand across a long letter is where careful people slip, so the tool rewrites each “Exhibit N” in your text and in the timeline whenever the order changes.
Then there is the question every complaint eventually meets: is this really the file you had at the time? A fingerprint helps here, within limits worth stating plainly.
What a fingerprint proves, and what it does not
SHA-256 is one of the SHA-2 hash functions, designed by the United States National Security Agency and first published in 2001. The current specification is FIPS 180-4 from the National Institute of Standards and Technology. It turns a message of any length into a 256-bit digest, usually written as 64 hex digits. The standard explains the useful property in one sentence: it is computationally infeasible to find two different messages with the same digest, and any change to a message will, with a very high probability, produce a different one. Change one pixel of a photo or one comma of an email and the fingerprint changes completely.
That gives you something precise. If you list each exhibit’s fingerprint in your letter and keep the files, anyone can later run the same function and confirm that the file in front of them is byte for byte the file you described.
NIST publishes worked examples so implementations can be checked; for the three letters “abc” the digest begins ba7816bf and ends f20015ad. Tools that read big files a slice at a time, as a browser can with the Blob slice method, can fingerprint a file of hundreds of megabytes without loading it whole. The browser’s own digest function wants the entire input at once, which is why this page also runs SHA-256 piece by piece and checks the two methods against each other on files up to 64 MB.
Now the limit, which matters as much as the strength. A fingerprint shows that a file has not changed since it was fingerprinted. It says nothing about whether the file was genuine to begin with. A photo edited before hashing produces a perfectly valid digest of the edited photo. A fingerprint is also not a time stamp: listing a digest in a letter dated November 20 shows the file existed in that form by the time the letter was sent, and no earlier. Treat fingerprints as a way to stop arguments about which version is which, not as proof of what happened.
A reply-by date nobody can dispute
A request with no date invites a reply with no date. “Please respond promptly” leaves the reader to decide what promptly means. “Please reply by Monday, December 7, 2026” does not. The difficulty is that a date given as a number of business days has to be counted, and counting goes wrong at weekends and holidays.
What counts as a business day is less settled than it sounds. One United States definition counts every calendar day except the federal legal public holidays, while everyday use also drops weekends. Some states and services differ again: a business that opens daily may count seven business days a week, and the Postal Service counts Saturdays for deliveries. So the honest approach is to say which rule you used and apply it exactly. This page counts Monday to Friday and skips the federal holidays, the reading most offices will recognise.
The federal list is short and fixed by statute. 5 U.S.C. 6103(a) names 11 legal public holidays. Five fall on fixed dates: New Year’s Day, Juneteenth National Independence Day, Independence Day, Veterans Day and Christmas Day. The rest float. The birthday of Martin Luther King, Jr. is the third Monday in January and Washington’s Birthday the third Monday in February. Memorial Day is the last Monday in May, Labor Day the first Monday in September, Columbus Day the second Monday in October and Thanksgiving the fourth Thursday in November. Juneteenth joined the list in 2021.
The subtle part is the weekend shift. Under section 6103(b), a holiday that lands on a Saturday is observed on the Friday before by employees who work Monday to Friday, and an executive order from 1971 moves a Sunday holiday to the following Monday. The Office of Personnel Management states both rules on its federal holidays page and lists the observed dates year by year. In 2026, Independence Day falls on a Saturday, so the day off is Friday, July 3. Inauguration Day is also in the statute, but only for federal staff in and around Washington, DC, so a general count leaves it out.
Here is a worked example you can reproduce on this page. A letter dated Friday, November 20, 2026 asks for a reply within 10 business days. Counting starts the next day. Monday to Wednesday, November 23 to 25, are days one to three. Thursday, November 26 is Thanksgiving and is skipped. Friday the 27th is day four. The following Monday to Friday are days five to nine, and the weekend after is skipped again. Day ten is Monday, December 7, 2026: seventeen calendar days after the letter, with seven days skipped along the way. The same request counted as 10 calendar days would land on November 30.
Keep the record together
The last step is the least glamorous. Put the letter, the exhibit list with each size and fingerprint, and the exhibit files themselves in one place, named so they sort in order, and keep that bundle alongside the letter you send. A plain checksum list, one line per file with the fingerprint, two spaces and the file name, lets anyone confirm the whole set in one pass. A CSV index opens in any spreadsheet; the format described in RFC 4180 quotes fields that hold commas, quotes or line breaks, so a description with a comma stays in its own column.
None of this guarantees an answer, and none of it is legal advice. What it does is remove every easy reason to ignore you. The reader gets a dated story, numbered copies, fingerprints that settle which file is which, a single clear request and a reply-by date counted on a rule you can name. That is a complaint someone can act on in ten minutes, and that is usually what makes them act.
Sources
Every source consulted for this guide. Links checked October 25, 2026.
- FIPS PUB 180-4 Secure Hash Standard (SHS) National Institute of Standards and Technology
- Secure Hash Algorithm, Message Digest Length = 256 (example values) National Institute of Standards and Technology
- SubtleCrypto: digest() method MDN Web Docs
- Blob: slice() method MDN Web Docs
- SHA-2 - Wikipedia Wikipedia
- U.S.C. Title 5, Sec. 6103 - Holidays (2023 Edition) U.S. Government Publishing Office
- Federal Holidays U.S. Office of Personnel Management
- Business day Wikipedia
- Using Credit Cards and Disputing Charges Federal Trade Commission, Consumer Advice
- Sample Letter for Disputing Credit and Debit Card Charges Federal Trade Commission, Consumer Advice
- ISO 8601 Wikipedia
- Common Format and MIME Type for Comma-Separated Values (CSV) Files (RFC 4180) RFC Editor