FF&E schedule template: the master list a project is bought from
A furniture and FF&E schedule template with every column a purchasing run needs — model numbers, finish codes, net cost, markup, client price, lead time, sidemark and status. Free CSV, no email.
By Idan Mann, founder of NYA
The short answer
An FF&E schedule is the master list every other purchasing document is generated from: one row per item, carrying its specification, its money and its status. This template gives you all seventeen columns as a CSV you can open in Excel, Numbers or Google Sheets.
Most furniture schedules start as a list of things and become unusable around item forty, when nobody can tell which chair was approved, which was ordered, and which is the one the client keeps asking about. The fix is not a better spreadsheet — it is deciding up front that the schedule carries three things per row: what the item is, what it costs, and where it has got to.
What each column carries
| Column | What goes in it | Example |
|---|---|---|
| Item # | A stable number per line. Renumbering mid-project orphans every approval, PO and delivery note that referenced the old one. | LR-04 |
| Room | Drives install sequence and consolidation at the receiver. Use the room names from the drawings, spelled identically. | Living Room |
| Item | Plain description, so the row is readable by a client who does not know the model number. | Lounge chair |
| Manufacturer | The vendor you buy from may not be the maker — a showroom or rep firm often sits between. Record the maker here and the vendor separately. | Vitra |
| Model # | Including the variant suffix that encodes size and configuration. Copy it from the vendor's page; never retype it from memory. | AC-402-L |
| Finish / fabric | Codes exactly as the vendor writes them, plus the grade. This is the field that gets transposed and the one that cannot be fixed after production starts. | Oak / F-220 Grade C |
| COM | Yardage plus the fabric being supplied, when the piece is COM. Blank means graded-in — an ambiguous blank is how a frame sits waiting for fabric nobody ordered. | 6.5 yd Kravet 34567-11 |
| Dimensions (W×D×H) | So a substitution can be checked against the plan without re-measuring, and so the installer knows what will not turn the stairwell. | 32" × 34" × 30" |
| Qty | Quantity for this room. Two identical chairs in two rooms are two rows, not one row of four — they ship, arrive and install separately. | 2 |
| Unit net cost | Your price after the trade discount, before freight. This is the number a cost-plus client is entitled to see and a retail-method client is not. | 2400.00 |
| Freight + receiving | Per line, at cost. Keeping it separate from net cost is what lets you decide later whether to mark it up or pass it through. | 500.00 |
| Markup % | Per line, because a flat multiplier across every category is a decision you should be making deliberately rather than by default. | 35 |
| Unit client price | What the client pays per unit. Derive it from the two columns to its left rather than typing it — a hand-typed price is a price that disagrees with the invoice. | 3740.00 |
| Extended | Unit client price × qty. The column the budget is actually summed from. | 7480.00 |
| Lead time | In weeks, as quoted, with the date it was quoted. A lead time from the specification stage is an estimate; the one on the acknowledgement is the commitment. | 12 wks (quoted 2026-07-31) |
| Sidemark | Client and room, short enough to survive a vendor system that truncates the field. This is what your receiver reads. | Bergman / Living Rm |
| Status | One value from a fixed list: Specified, Proposed, Approved, Ordered, Acknowledged, Shipped, Received, Installed. Free-text status is how a schedule stops being trustworthy. | Approved |
How to actually keep it current
- Status moves in one direction only, and it moves when a document exists — not when someone intends to raise one. An item is Ordered when a PO number exists, Acknowledged when the vendor's acknowledgement is in hand.
- Never renumber. If an item is cancelled, mark it cancelled and leave the row. The number is a reference other people are holding.
- Substitutions get a new row, cross-referenced to the old one. Overwriting a row destroys the record of what the client originally approved, which is exactly the record you will want.
- Sum the extended column, not the budget you remember. A schedule that does not reconcile to the budget tracker is telling you something.
What this template deliberately leaves out
There is no markup assumed anywhere in the file — the example row uses 35% because a file needs a number in it, not because we are recommending one. If you want to work out what a markup actually yields once freight and receiving are in, that is what the markup calculator is for.
Common questions
- Should the client ever see this schedule?
- Not this version. It carries your net cost and your markup on every line. Send the client a proposal generated from it, with the client price and lead time columns only — which is why those columns are derived here rather than typed somewhere else.
- One row per item or one row per room?
- Per item, always. Rooms are a column you sort and filter on. The moment a row covers several items it stops being able to carry a status, and status is half the reason the schedule exists.
- What format is the download?
- CSV, which opens directly in Excel, Numbers and Google Sheets. It is a starter file with the headings and one filled example row — no macros, no linked formulas to break, nothing to unlock.