All work
Sample project · fictional client

A product catalogue built to survive being handed over

Most delivered spreadsheets are correct on the day and broken a month later, because nothing stops the next person entering data the wrong way. This one is built so that it cannot happen.

Result

40
products
6
validation rules
9
below re-order
3
sheets
Sample

Glowly.id is a fictional skincare store, and these forty products do not exist. The file is a sample I built to show how I structure a catalogue, not work delivered to a client. Everything about how it is put together — the validation, the formulas, the conventions — is exactly what I would hand over on a real job.

The workbook

Interactive preview

This is the Products sheet. Sort a column or filter by category — the same first things a client does on opening the real file. Red rows are below the re-order level; amber rows are close to it.

40 rows

GLW-CLN-001Gentle Rice Foam CleanserCleanserRp 89,000Rp 71,20020%142150 g
GLW-CLN-002Green Tea Balancing Gel WashCleanserRp 79,000Rp 63,20020%96120 g
GLW-CLN-003Centella Cream CleanserCleanserRp 95,00038130 g
GLW-CLN-004Micellar Cleansing Water 300mlCleanserRp 110,000Rp 93,50015%7300 g
GLW-CLN-005Deep Cleansing OilCleanserRp 135,000Rp 108,00020%54200 g
GLW-TNR-001Hydrating Rose TonerTonerRp 92,000Rp 78,20015%118200 g
GLW-TNR-002BHA 2% Clarifying TonerTonerRp 125,000Rp 100,00020%23150 g
GLW-TNR-003Rice Ferment Essence TonerTonerRp 148,00061180 g
GLW-TNR-004Soothing Cica MistTonerRp 68,000Rp 54,40020%4100 g
GLW-SER-001Niacinamide 10% + Zinc SerumSerumRp 165,000Rp 132,00020%20430 g
GLW-SER-002Vitamin C 15% Brightening SerumSerumRp 215,000Rp 172,00020%8730 g
GLW-SER-003Hyaluronic Acid B5 SerumSerumRp 145,000Rp 116,00020%15630 g
GLW-SER-004Retinal 0.05% Night SerumSerumRp 289,000Rp 231,20020%1930 g
GLW-SER-005Azelaic Acid 10% SuspensionSerumRp 175,0004230 g
GLW-SER-006Peptide Firming AmpouleSerumRp 265,000Rp 212,00020%830 g
GLW-SER-007Snail Mucin Repair EssenceSerumRp 158,000Rp 126,40020%73100 g
GLW-MST-001Ceramide Barrier CreamMoisturizerRp 178,000Rp 142,40020%13150 g
GLW-MST-002Oil-Free Gel MoisturiserMoisturizerRp 112,000Rp 89,60020%9450 g
GLW-MST-003Squalane Overnight MaskMoisturizerRp 195,0002780 g
GLW-MST-004Panthenol Recovery BalmMoisturizerRp 132,000Rp 105,60020%640 g
GLW-MST-005Rich Nourishing Night CreamMoisturizerRp 210,000Rp 168,00020%4950 g
GLW-SUN-001Daily Fluid Sunscreen SPF50+ PA++++SunscreenRp 139,000Rp 111,20020%31250 g
GLW-SUN-002Mineral Sunscreen SPF40 PA+++SunscreenRp 155,000Rp 124,00020%6850 g
GLW-SUN-003Sunscreen Stick SPF50 PA++++SunscreenRp 118,000920 g
GLW-EXF-001AHA 8% Glow Peeling SolutionExfoliantRp 168,000Rp 134,40020%5630 g
GLW-EXF-002Enzyme Powder WashExfoliantRp 125,000Rp 100,00020%3170 g
GLW-EXF-003PHA Gentle Exfoliating PadsExfoliantRp 142,000Rp 113,60020%390 g
GLW-MSK-001Clay Detox MaskMaskRp 108,000Rp 86,40020%77100 g
GLW-MSK-002Honey Hydrating Wash-Off MaskMaskRp 98,00044100 g
GLW-MSK-003Sheet Mask Variety Box (10pcs)MaskRp 145,000Rp 116,00020%188250 g
GLW-EYE-001Caffeine Eye SerumEye CareRp 135,000Rp 108,00020%6215 g
GLW-EYE-002Retinol Eye CreamEye CareRp 188,000Rp 150,40020%1520 g
GLW-EYE-003Hydrogel Eye Patches (60pcs)Eye CareRp 125,0005100 g
GLW-LIP-001Vitamin E Lip Sleeping MaskLip CareRp 85,000Rp 68,00020%12120 g
GLW-LIP-002Tinted Lip Balm SPF20Lip CareRp 72,000Rp 57,60020%9315 g
GLW-LIP-003Lip Scrub Sugar PolishLip CareRp 65,000215 g
GLW-TRT-001Spot Treatment Gel 2% BHATreatmentRp 78,000Rp 62,40020%14715 g
GLW-TRT-002Hydrocolloid Patches (36pcs)TreatmentRp 55,000Rp 44,00020%26510 g
GLW-TRT-003Tranexamic Acid Dark Spot SerumTreatmentRp 245,000Rp 196,00020%3430 g
GLW-TRT-004Barrier Repair AmpouleTreatmentRp 198,000130 g

40 products across 10 categories. The downloadable .xlsx carries the validation rules and formulas, which a web table cannot show.

Summary sheet

Figures the client actually asks for

In the workbook every number here is a formula referencing the Products sheet. Change a stock level and all of them move.
Total units in stock
2,972
Stock value at normal price
Rp 378,658,000
Stock value at current price
Rp 309,823,700
Products on promotion
31
Average discount
19.7%
Below re-order level (10)
9
By category
CategoryItemsStock value
Cleanser5Rp 31,892,000
Toner4Rp 23,031,000
Serum7Rp 101,480,000
Moisturizer5Rp 50,193,000
Sunscreen3Rp 54,970,000
Exfoliant3Rp 13,709,000
Mask3Rp 39,888,000
Eye Care3Rp 11,815,000
Lip Care3Rp 17,111,000
Treatment4Rp 34,569,000

Craft

What is actually in the file

The parts a screenshot cannot show, and the reason a delivered spreadsheet is still correct three months later.

Validation on every column

SKU must match GLW-XXX-000 and be unique. Category is a dropdown. Prices, stock and weight are whole numbers in range, and a discount price below zero or above the normal price is rejected at entry. Six rules in total, so the next person cannot break the format by accident.

Conditional formatting that means something

Stock below 10 turns the row red — re-order now. Below 25 turns it amber — watch it. The colour encodes an operating rule, so the file answers "what do I need to buy?" without anyone reading it row by row.

A summary of live formulas

Nothing on the summary sheet is a pasted value. Totals, stock value at both price levels, average discount and the per-category breakdown are formulas, so editing one product on the Products sheet updates every figure.

A data dictionary

A third sheet defining every column, its type, its rule, and the file's conventions — including why an empty discount cell means "not on promotion" and a zero would be wrong. This is what makes the file survive being handed to someone else.

Deliverables

The file a client receives

Open the .xlsx to see the parts this page cannot render: the dropdown on the Category column, the rejection message when a discount price goes above the normal price, and the Summary sheet recalculating when you change a stock level. If your team works in Google Sheets, the same catalogue is built there instead and shared to your Drive, rather than sent as an attachment somebody has to import.

Have a file like this?

Send a sample and what you need it to look like. You will get a quote and a turnaround, not a discovery call.