← Al Davies, 250 High Street

Uniform inventory tracker in SharePoint

Short answer: use two SharePoint lists. The first, "Uniform Stock", has one row for each item and size, such as "Polo shirt, Medium", with a count on hand and a reorder level. The second, "Uniform Issued", has one row each time you hand an item to a person, with the date and the return date. A "Reorder" view on the first list groups items by type with the lowest counts on top, so the buyer sees what to buy. A "Not returned" view on the second shows what is still out. The exact names of menus and buttons may differ on your screen, because Microsoft changes them from time to time.

This guide is for a team that hands out shirts, jackets, boots or badges and wants to know what is on the shelf and who has what. It is about stock and issue records. It is not a purchasing system and it does not handle sizing or fitting. If you track protective gear in a different way, see "PPE issue log: who got which gear, size and date". For a general approach to counting stock, see "Inventory tracking for a small team without new software". This guide does not repeat those.

Why a spreadsheet falls short

A uniform sheet starts clean and then drifts. These problems show up:

Two lists fix the main part. The stock list answers "how many are on the shelf". The issue list answers "who has it". Everyone with access sees the same numbers.

What you are building

Step 1. Create the stock list

Make a blank list named "Uniform Stock" on your team site.

The Title column comes with every list and is required by default. Use it for the shelf slot, for example "Jacket, Large". Rename it "Item and size", or turn off Require.

Step 2. Add the stock columns

Use + Add column for each of these.

  1. Item type: a Choice column with numbered choices so they stay in your order: 1 Shirt, 2 Pants, 3 Jacket, 4 Footwear, 5 Hat, 6 Badge or other. Swap in your own types if these do not fit.
  2. Size: a Choice column: 1 XS, 2 S, 3 M, 4 L, 5 XL, 6 2XL, 7 One size. A Choice column sorts by its text, so the number prefix keeps your order. Our advice, not a Microsoft rule: fix one written form per size before the first row, because the list treats "L" and "Large" as two unrelated entries.
  3. On hand: a Number column for the count on the shelf now.
  4. Out with staff: a Number column for how many of that item and size are currently issued, so one stock row shows both shelf and field.
  5. Reorder level: a Number column. Our advice, not a Microsoft rule: set it from how many you hand out between orders, not a guess.
  6. Last counted: a Date column, date only.

Step 3. Add your items

Add one row for each item and size you keep. If you have an Excel sheet, you can copy the rows in. See "Add Excel rows to a SharePoint list you already have". Check the item and size spelling after the import.

Step 4. Create the issue list

Create a second blank list named "Uniform Issued". Use the Title column for the person's employee number, for example "Employee 41". Rename it to "Employee" if you like, or turn off Require. Our advice, not a Microsoft rule: use a number or ID and not a full name when you do not need the name, so the list holds less personal data.

Add these columns:

  1. Item: a Lookup column that reads the Title column of "Uniform Stock". Your team then picks from the real item and size list and cannot type a new spelling.
  2. Quantity: a Number column. Set the default value to 1.
  3. Date issued: a Date column, date only.
  4. Issued by: a Person column.
  5. Status: a Choice column: 1 Issued, 2 Returned, 3 Lost, 4 Replaced. Set the default value to 1 Issued, so a new row is never blank. A blank status hides the row from views that filter on status.
  6. Return due: a Date column. Leave it empty for items a person keeps.
  7. Date returned: a Date column.
  8. Notes (Multiple lines of text). Condition on return, such as "torn sleeve".

If you use a Person column for the employee instead of the Title text, see "Show each person only their own items in a SharePoint list view" before you build a "My items" view.

Step 5. Keep the count honest

Issuing a jacket takes two edits: a new row in "Uniform Issued", then on the stock row, On hand down one and Out with staff up one. A return runs the other way: Status becomes 2 Returned, Date returned gets filled in, Out with staff goes down one, and On hand goes up one when the piece can be reissued.

A Power Automate flow can adjust the count for you. Be careful, because a flow that edits the same list it watches triggers itself again. If you add one later, read "Power Automate flow keeps running itself over and over". Ask your admin which Power Automate license your company holds. Begin by hand.

Step 6. Count on a schedule

Pick a day to count the shelf, such as the first Monday of the month. Open the "Reorder" view from Step 7 and count from it, one group at a time. Type each new count into On hand, correct Out with staff against the issue list, and set Last counted to the date. Our advice, not a Microsoft rule: count the items that move fastest more often than the rest.

Step 7. Build the "Reorder" view

Microsoft's help page on filtering a view says: "If you want to have more detailed control over your view, you can instead modify your view by using the classic view editor." Use it for the views below.

  1. On "Uniform Stock", open the view menu and choose "Edit current view" to open the classic view editor. Create a new view named "Reorder".
  2. Under "Sort", pick On hand and choose ascending.
  3. Under "Group by", pick Item type.
  4. Show Title, Size, On hand, Reorder level and Out with staff.

A view cannot compare On hand against Reorder level, so the view cannot mark rows by itself. It lines the two numbers up side by side, with the emptiest rows first in every group. The buyer reads the top rows of each group and compares the two numbers by eye.

Step 8. Build the "Not returned" view

  1. On "Uniform Issued", create a view named "Not returned" in the classic view editor.
  2. Filter Status "is equal to" 1 Issued. Use the choice text with its number, exactly as it appears in the column.
  3. Show Title, Item, Quantity, Date issued, Return due and Issued by. Sort by Date issued.

Because Status is set to 1 Issued by default and changes to 2 Returned on return, a returned item drops out of the view. To see items past their return date, add a Yes/No column named "Return overdue" with the default value No, and set it to Yes by hand when an item is late. Do not use a calculated column for this. Microsoft's formulas page says: "The TODAY and ME functions are not supported in calculated columns but are supported in the default value setting of a column." For a reminder before a date, see "Send a reminder before a due date in a SharePoint list".

Microsoft says: "It is not possible to use the [Today] or [Me] filters when filtering using a column header." and "You must use the classic view editor to filter columns using these keywords." If you add a view that uses [Today] or [Me], use the classic view editor: Edit current view, then Filters.

Who can see the lists

Picking a view does not protect anything. Each view just changes the display, and any reader with access can open a different view and read all rows. When the issue list carries names or notes meant to stay private, set permissions instead, and check with your admin on which groups suit your site. See "Keep one column private (like pay or notes) in a shared list".

What to avoid

Honest limits

Each number in these lists is something a person keyed in. The lists cannot confirm that the shelf matches On hand, that a purchase order went out, or that a borrowed item came back. They are no stand-in for your buying paperwork or any retention rule that applies to you. Ask your local office what you must keep.

The "Reorder" view only shows the numbers you typed. A hiring wave or a change of season is invisible to it, so a person still decides the quantity to buy. Needs such as several storerooms, prices with totals, or sizes tied to each wearer would mean extra linked lists. Pilot with a single item type, say jackets, and widen only after that works.

When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.

Tell me what's still manual

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: Tools I built

FAQ

Why is the item and size in the Title column?

Every list has a Title column and it is required by default. Using it for the item and size means no column goes unused. You can rename it, or turn off Require.

Why two lists and not one?

Our advice, not a Microsoft rule: stock and issues are different things. One row per item and size holds the count. One row per issue holds who has it. Mixing them makes both harder to filter.

Why does my [Today] filter not work from the column header?

Microsoft says it is not possible to use the [Today] or [Me] filters when filtering using a column header. Use the classic view editor: Edit current view, then Filters.

Can I use a person's name instead of an employee number?

Yes. Use the Title column or a Person column. Our advice, not a Microsoft rule: use a number or ID if you do not need the name.

Does this replace my purchase records?

No. The lists are your team's working record. Ask your local office which records you must keep, and keep the papers they ask for.

Sources