You find out you've been selling a product at a loss for six weeks because your retail price never got updated after your unit cost jumped. The spreadsheet said 400 units in stock. The shelf had 23. The vendor's "sales contact" field in your records was someone who left that company eight months ago. This is the exact kind of slow-motion inventory failure that happens when product data lives in three different places and none of them talk to each other.

When a Catalog Becomes a Liability

A product catalog that doesn't stay current isn't a catalog — it's a fiction. And most small-to-midsize operations run on fiction longer than they realize. The SKU count grows, the vendor list sprawls, and at some point you're cross-referencing a Google Sheet against a supplier email chain against a text from your warehouse guy to figure out if you can fulfill an order that came in at 4:45 on a Friday.

The fundamental problem isn't laziness or bad process. It's that most catalog tools are built for visibility, not for operations. They show you what you have. They don't help you manage the difference between what you paid and what you sold, and they don't tell you when a SKU has moved enough units to warrant a reorder conversation with the vendor. That gap — between data display and operational intelligence — is where this Memento template lives.

Unit Cost vs. Retail Price: The Margin Field Nobody Watches Until It's Too Late

The two fields that matter most in this template aren't the glamorous ones. They're Unit Cost (USD) and Retail Price (USD), sitting next to each other in the record, and the calculated Gross Sales field that multiplies Retail Price by Total Units Sold in real time.

Unit Cost is what you actually paid per unit — not the MSRP, not the catalog price your vendor quotes at a trade show, but the landed cost after freight, customs, and whatever deal you negotiated with your rep. If you're not logging this at the SKU level, you are guessing at your margin. The template enforces the discipline of entering both numbers at the time of catalog entry, so when Gross Sales starts climbing on a product, you can immediately compare it against cost structure without opening a second application.

The Gross Sales calculation is a live field: #{retail price} * #{total units sold}. It doesn't require a refresh. As the Sold action script fires and Total Units Sold updates, the revenue figure moves with it. This sounds minor until you're at a trade show, someone asks how a particular product line is performing this quarter, and you can give them an actual number instead of a promise to check when you get back to the office.

The Sold Script: Operational Inventory at the Point of Transaction

The template ships with an action script named Sold. When triggered, it asks for a quantity, validates that you actually have that many units available, subtracts the number from the Quantity field, adds it to Total Units Sold, and calls recalc to update Gross Sales. One tap, four updates, zero manual arithmetic.

The validation matters more than the subtraction. The script explicitly throws a message — "You don't have enough items, you have only X items" — if the requested sale quantity exceeds available stock. This prevents overselling at the point of transaction rather than discovering the discrepancy during a cycle count. For operations running on thin margins and tight fulfillment windows, the difference between catching a stockout at sale time versus shipment time is the difference between a backorder conversation and a chargeback.

The Vendor Library: Contact Data That Actually Connects to Product Data

The linked Vendors library is where this template separates itself from a basic item list. Each vendor record carries a Catalog Link, Shipping terms, a geocoded Address, a named Sales Contact, phone, email, and a freeform Notes field. When you pull up a product and tap the Vendor field, you land directly on that supplier's record — not a company name you then have to look up elsewhere.

The Shipping field is where most of the operational nuance lives. Minimum order quantities, lead times, freight terms, who covers damaged goods — that's the kind of information that lives in email threads until someone needs it at 8 PM when the vendor's office is closed. Having it attached to the vendor record, and accessible from any SKU that supplier provides, compresses what would otherwise be a 20-minute search into a 10-second lookup.

At scale — 200 SKUs across 30 vendors — the linked library architecture means that when a vendor changes their sales contact (which happens constantly), you update one record and every product tied to that vendor reflects the change. No find-and-replace across a spreadsheet. No outdated contact data hiding in a field nobody checks.