Case Study: Custom Salon & Spa Management Software

Case Study: Custom Salon & Spa Management Software

CASE STUDY — SALON & SPA SOFTWARE

Case Study: Custom Salon & Spa Management Software

Some needed one system to run appointments, stock, staff incentives and customer rewards together — not five disconnected tools. Here’s what we built.

16+
Modules built into one system
2
Stock locations tracked live
1
Dashboard for owner & staff

Salon reception staff using GlowPoint Salon and Spa software dashboard

GlowPoint Salon & Spa runs a full-service salon and spa business, and like most growing salons, they were managing appointments on one tool, billing on another, and tracking product stock and staff performance manually. We built a single custom system covering every part of daily operations, spanning stock control, service delivery, billing, client engagement and staff management. The sections below walk through the full build in detail, organized by category so the scope of what actually went into this project is clear from end to end.

🎯 The Business Challenge Behind the Project

Before any development started, we spent time simply observing how the salon actually ran day to day — not how the owner assumed it ran. What we found is common across the salon and spa industry, but it’s rarely written down anywhere: front-desk staff were juggling a paper appointment diary, a separate notebook for package/membership balances, WhatsApp messages for client offers, and a monthly manual tally to work out staff incentives. Stock counts for retail products and back-of-house consumables lived in yet another register, updated inconsistently depending on how busy the day was.

None of these systems talked to each other. A client’s membership balance wasn’t visible from the billing counter unless someone flipped back through the notebook. A staff member’s incentive for the month couldn’t be confirmed until the owner sat down for a few hours at month-end to manually total everything from memory and receipts. And because retail stock, backend stock and job-card usage were three separate records, nobody could say with confidence exactly how much of a given shampoo or cream a single service was supposed to use — which meant there was no way to catch overuse, waste, or shrinkage until it had already happened repeatedly.

The brief from GlowPoint Salon & Spa wasn’t “build us an app.” It was closer to: give us one place where every part of the business — stock, services, staff, clients and marketing — is connected, so nothing has to be manually reconciled at the end of the day or month. That’s the lens through which every module below was designed.

🧾 What We Built, Step by Step

Salon stock room shelf with inventory tracking dashboard📦 Stock & Inventory Control

The foundation of the entire system is knowing exactly what stock exists, where it physically is, and what happened to it — down to the individual job card. Five modules make up this layer, and they were built and rolled out first because every other category depends on this data being accurate.

🗄️
Stock Management — On-Floor (Display) & On-Store (Backend)
Every salon holds two kinds of stock — what’s sitting on the display shelf for retail, and what’s stored in the back for actual services. Most salon software tracks these as a single number, which hides real problems. We track both separately, then reconcile them so nothing quietly disappears between the two.
1. New product stock from a supplier is logged into “On-Store” backend stock first
2. Staff request specific quantities to move to “On-Floor” display for retail
3. The system records the transfer, updating both stock counts in real time
4. Any mismatch between expected and physical count on either side is flagged automatically

✔ Caught misplaced/untracked stock within the first stock cycle that a single combined count would have missed.

🏷️
Barcode Scan for Products
Manual product entry at billing is slow and error-prone — a mistyped price or wrong product costs margin every day. Every retail product now carries a barcode scanned at both stock-in and billing.
1. New product stock is barcode-labeled during on-store intake
2. Front-desk staff scan the barcode at time of sale instead of manual search
3. The system auto-fills product name and price, and applies live stock deduction
4. Any product without a valid barcode is flagged before it can be sold

✔ Reduced billing time per retail sale and eliminated manual product-lookup pricing errors.

🔍
Stock Audit (Theft Reduction & Stock Protection)
Stock shrinkage in salons is rarely dramatic — it’s small, repeated leakage: a bit of product used off-book, a retail item that “went missing.” A dedicated audit workflow was built specifically to surface this pattern, not just count stock.
1. A scheduled audit cycle (e.g. weekly) triggers a physical count prompt for staff
2. Physical count is entered against the system-expected count for each product
3. Variances are automatically flagged and routed to management for review
4. Recurring variance patterns on the same product or shift get escalated separately

✔ Surfaced theft/leakage patterns tied to a specific shift and product category within the first audit cycle.

🧴
Job-Card-Wise Stock Usage & Average Consumption Calculation
This was the single most requested — and most valuable — module. Every service performed is logged on a digital job card, and every product used against that service is deducted from stock at the moment of use, not estimated later.
1. Staff opens the client’s job card and selects the service being performed
2. Products used (e.g. shampoo, cream) are logged against that specific job card
3. The system calculates a rolling average — e.g. one bottle of shampoo typically lasts 20-25 job cards
4. Any job card using significantly more product than the calculated average is flagged for review

✔ Gave management, for the first time, a real per-service consumption benchmark instead of guesswork.

📊
Consumable Report
Built directly on top of job-card-wise tracking, this report tells management which products are being used at a low, normal, or high rate relative to their calculated average — turning raw usage data into an actionable weekly view.
1. The system pulls job-card-level usage data for the selected reporting period
2. Each product is compared against its own historical average consumption
3. Products are grouped into Low / Normal / High usage bands
4. High-usage products are cross-referenced against which staff member or service used them

✔ Became the primary early-warning report management checks weekly to catch waste or misuse before it compounds.

Hairstylist attending client with job card tracking💇 Service Delivery & Client Management

Every service, package and discretionary action a client receives is logged — and where it matters, approved — closing the small leaks that add up over a year. This is the layer front-desk and service staff interact with most, so usability mattered as much as accuracy here.

📋
Services — Digital Job Card Creation
The job card is the center of the entire operational system — every billable service, product used, and staff member involved is captured on one digital record per client visit, replacing paper service slips entirely.
1. Client checks in and a new job card is opened against their profile
2. Staff selects the service(s) being performed from the service menu
3. Any products used are logged against the card as the service is performed
4. The job card is closed and automatically feeds into billing, stock and reporting

✔ Eliminated the paper trail entirely and made every service instantly traceable to a client, staff member and product batch.

🎟️
Membership, Combo & Package Services
GlowPoint Salon & Spa sells memberships, service combos, and multi-session packages — and the system tracks exactly how many sessions or credits remain on each, deducting automatically as they’re used rather than relying on a manual register.
1. Client purchases a membership, combo, or package, recorded against their profile
2. Each time a covered service is performed, it’s redeemed against the job card
3. The system deducts the used session/credit and displays the remaining balance instantly
4. Expiring or near-empty packages trigger a renewal prompt for staff to raise with the client

✔ Removed disputes over “how many sessions are left” and surfaced renewal opportunities automatically.

🔐
Redemption OTP
Package and membership redemptions are exactly the kind of transaction that can quietly get exploited at the counter — extra “freebie” redemptions with no record. Every redemption now requires an OTP sent to the client’s phone before it’s approved.
1. Staff selects a package/membership session for redemption on the job card
2. The system sends a one-time OTP to the client’s registered mobile number
3. Client shares the OTP with staff to confirm and authorize the redemption
4. The redemption is logged permanently against the client’s package history

✔ Closed a specific counter-level leakage point that existed under the old manual register system.

🎁
Complimentary Services Tracking
Complimentary/free services (goodwill touch-ups, loyalty add-ons) still need to be tracked for cost and staff accountability, even though no money changes hands. This module logs them separately from paid services so they don’t distort revenue reporting.
1. Staff marks a service as “Complimentary” on the job card instead of billing it
2. The system still logs full product usage and staff time against the complimentary service
3. Complimentary services are excluded from revenue totals but included in cost/stock reports
4. Monthly complimentary service volume is reported separately for management review

✔ Gave management visibility into the real cost of goodwill services without distorting sales figures.

🛡️
Discount OTP From Admin
Just like redemptions, manual discounts at the counter are a common leakage point. Any discretionary discount now requires OTP-based approval routed through admin rather than being applied freely at billing.
1. Staff applies a requested discount on the client’s bill at checkout
2. The system routes an OTP approval request instead of applying it directly
3. Admin/manager approves via OTP, which is logged against that specific bill
4. Discount history is reportable by staff member for accountability review

✔ Brought all discounting under a single accountable approval trail instead of counter-level discretion.

Salon front counter billing and payment processing💰 Sales, Billing & Reporting

Every rupee that moves through the counter — service, retail, food, or advance — is tracked separately and then reconciled into one clear picture for the owner. Seven modules sit in this category, spanning both the billing counter itself and the reports built on top of it.

🛍️
Product Sale Tracking
Retail product sales (haircare, skincare items sold to clients) are tracked completely separately from service revenue, giving management a clear split between “what we did” and “what we sold.”
1. Client selects a retail product at the counter for purchase
2. Barcode scan pulls product, price and current stock level instantly
3. Sale is billed and stock is deducted from the on-floor display count
4. The product sale is logged separately from service revenue in daily totals

✔ Gave clear, separated visibility into retail revenue contribution versus service revenue.

🍽️
Food Sale Tracking
GlowPoint Salon & Spa also sells food/beverage items in-house, and this revenue stream is tracked on its own — separate from both services and retail products — for accurate category-wise reporting.
1. A food/beverage item is selected at billing alongside or independent of a service
2. The item is billed under a dedicated food-sale category
3. The sale is logged separately in daily and monthly reporting
4. Food sale volume feeds into the dedicated Food Sale Report

✔ Removed food/beverage revenue from muddying service and retail sales analysis.

🧾
POS Slip & Barcode-Scan Billing
The point-of-sale counter combines services, packages, retail products and food into one clean bill, with barcode scanning speeding up the retail portion and a printed POS slip given to every client.
1. All items for the visit (services, products, food) are pulled onto one bill
2. Retail products are added via barcode scan for speed and accuracy
3. Applicable discounts, package redemptions or OTP approvals are applied
4. The final POS slip is printed/shared with the client as their receipt

✔ Reduced average checkout time and eliminated billing category confusion at the counter.

💵
Advance Report
Clients sometimes pay advance amounts (for large packages, bridal bookings, or events), and this report gives management a live view of advance payments received versus services or value still owed against them.
1. An advance payment is recorded against a specific client and purpose
2. The system tracks the advance balance as it’s used against future bills
3. The report shows outstanding advance balances across all clients
4. Alerts flag advances nearing full utilization or long-inactive balances

✔ Removed the need to track advance payments manually in a separate register.

📈
Service Report
A consolidated view of every service performed over a selected period, broken down by service type, staff member, and revenue generated — the primary report for understanding which services actually drive the business.
1. The system aggregates all closed job cards for the reporting period
2. Services are grouped by type, staff member and revenue contribution
3. The report highlights top-performing and underperforming service categories
4. Management reviews trends weekly/monthly to adjust staffing or promotions

✔ Became the core report used to decide staff scheduling and service promotions.

📉
Sale Report
A combined revenue report across services, retail products and packages sold, giving management the full top-line picture in one place instead of piecing it together from separate registers.
1. Revenue from services, product sales and package sales is pulled for the period
2. The report consolidates totals by category and by day/week/month
3. Comparisons against prior periods highlight growth or decline
4. The report is used directly for monthly business review meetings

✔ Replaced multiple manual registers with one authoritative revenue report.

🍴
Food Sale Report
A dedicated breakdown of food/beverage revenue, separate from the main sale report, so this category can be evaluated on its own margin and performance.
1. Food/beverage sales logged during the period are aggregated
2. The report breaks down revenue by item and time of day
3. Slow-moving or high-margin items are identified for menu adjustment
4. The report feeds into overall monthly revenue reconciliation

✔ Gave visibility into whether the food/beverage offering is worth the operational overhead.

Client viewing loyalty rewards and booking app on phone📱 Client Engagement, Booking & Loyalty

Getting a client in the door once is only half the job — this layer is about making booking effortless and giving people a reason to come back. These six modules were rolled out last, deliberately, once the operational foundation underneath them was stable.

📅
Online Appointment Booking
Clients can book appointments directly online instead of calling in, with real-time staff and slot availability, reducing front-desk phone load and no-show rates through automated confirmations.
1. Client selects the desired service and preferred staff member online
2. The system shows live available time slots based on staff schedules
3. The booking is confirmed instantly with an automated confirmation message
4. Reminder notifications are sent ahead of the appointment automatically

✔ Reduced front-desk phone call volume and missed-booking confusion.

📲
PWA for Online Booking
Rather than requiring clients to download a native app, the booking experience is delivered as a Progressive Web App — installable to a phone’s home screen directly from the browser, with app-like speed and offline resilience.
1. Client visits the booking page once via any browser
2. The browser prompts an “Add to Home Screen” install option
3. Future visits open instantly like a native app, no app store needed
4. Push notifications for booking reminders work the same as a native app

✔ Delivered app-like convenience without the download friction that kills most salon app adoption.

💬
Marketing / Offer Messaging Through WhatsApp API
Offers, seasonal promotions and re-engagement messages are sent directly through the official WhatsApp Business API — the channel clients already check daily — rather than SMS or email that often go unread.
1. Management schedules an offer/promotion message through the system
2. Message templates are sent via the Meta-approved WhatsApp Business API
3. Client responses/interest can route back to the front desk for follow-up
4. Campaign performance (sent, read, responded) is tracked per campaign

✔ Delivered significantly higher open rates than the SMS/flyer methods previously used.

Glow Point Reward
A points-based loyalty system — clients earn “Glow Points” on every visit and purchase, redeemable against future services or products, encouraging repeat visits without discounting every transaction.
1. Client earns Glow Points automatically based on bill value at checkout
2. The points balance is visible to both staff and client at any time
3. The client redeems accumulated points against a future service or product
4. Points expiry and redemption history are tracked per client profile

✔ Created a repeat-visit incentive that doesn’t require discounting the current transaction.

🎫
Scratch Card
A gamified reward layer — clients can “scratch” a digital card after qualifying visits or purchases for a randomized reward, adding an element of surprise that plain point systems don’t offer.
1. A qualifying visit or purchase threshold triggers scratch card eligibility
2. Client scratches the digital card via the booking app or at checkout
3. A randomized reward (discount, free add-on, bonus points) is revealed
4. The reward is automatically applied to the client’s profile for next use

✔ Added a playful engagement layer that increased social sharing and repeat interest.

🔁
Non-Repeat Client Report
One of the most commercially important reports — it identifies clients who visited once (or a few times) but haven’t returned within an expected window, so re-engagement can be targeted specifically at them.
1. The system tracks last-visit date against each client’s typical visit frequency
2. Clients exceeding their expected return window are flagged as “non-repeat risk”
3. The report is generated for management/marketing to review weekly
4. Flagged clients can be directly targeted with a WhatsApp re-engagement offer

✔ Turned client retention from a guess into a specific, actionable weekly list.

Salon manager reviewing staff schedule and attendance dashboard👥 Staff & Operations

A system this detailed is only sustainable if the people running it are measured fairly and transparently — this is where staff incentives are calculated. It is a single module, but arguably the one most responsible for staff actually trusting the rest of the system.

💼
Employee Incentive Calculation
Staff incentives are calculated automatically based on service revenue, product sales, and client retention contribution per employee — replacing a manual, dispute-prone monthly calculation with a transparent, auditable one.
1. The system tracks each staff member’s service revenue, product sales and job cards
2. Incentive rules (percentage slabs, thresholds) are configured by management
3. The monthly incentive amount is calculated automatically per employee
4. Staff can view their own running incentive total, reducing month-end disputes

✔ Removed the most common source of staff-management friction — unclear or delayed incentive calculations.

Salon staff scanning a product barcode and creating a digital job cardEvery job card ties directly into stock usage, consumable tracking and staff incentives

🏗️ How We Approached the Build

With 24 distinct modules on the requirement list, the biggest risk to a project like this isn’t any single feature — it’s ending up with 24 features bolted onto separate databases that don’t actually talk to each other. So before writing any module-specific logic, we built one shared data layer: a single client profile, a single product/stock ledger, and a single job-card record that every other module reads from and writes to. Stock management, billing, reports, loyalty and staff incentives are effectively different views into that same underlying data, not five different systems pretending to be one.

We rolled the system out in four phases rather than switching everything on at once, which matters a lot for a live, walk-in business that can’t afford a broken billing counter during business hours:

🧩
Phase 1 — Core Foundation
Client profiles, digital job cards, and dual stock management (on-floor + on-store) went live first, since every other module depends on this data existing correctly.
💳
Phase 2 — Billing & Packages
POS billing, barcode scanning, membership/combo/package tracking, and OTP-secured redemptions and discounts were introduced once staff were comfortable with job cards.
🔐
Phase 3 — Protection & Reporting
Stock audit, job-card-wise consumable tracking, and the full reporting suite (service, sale, food sale, consumable, advance, non-repeat client) rolled out once there was enough historical data to calculate meaningful averages.
💬
Phase 4 — Client Engagement
Online booking, the PWA, WhatsApp API marketing, Glow Point rewards, scratch cards, and employee incentive calculation came last — these are client-facing and benefit from a stable operational base underneath them.

This phased approach meant staff learned one new layer at a time instead of being handed 24 new features on day one, and it meant modules that depend on historical data (like consumable averages) had real numbers to work with by the time they went live.

📊 Reports the Owner Actually Uses

Service report, sale report, food sale report, complimentary services report, non-repeat client report, consumable usage report, and advance payment report — all generated automatically instead of compiled manually at month-end.

💡 Why job-card-wise stock usage mattered most: Salons lose the most margin quietly through over-usage of consumables during services. Tying stock deduction to each job card gave GlowPoint Salon & Spa visibility into exactly which services or staff were using more product than the average — something a generic POS system never surfaces.

🎯 The Result

Instead of five separate tools for booking, billing, stock and staff tracking, GlowPoint Salon & Spa now runs the entire operation — from a client walking in to their next appointment reminder — from one connected system. What used to require checking a paper register, a separate notebook, and a phone full of WhatsApp chats now happens inside a single job card and a single client profile.

Just as importantly, none of these 24 modules exist as isolated features bolted onto the side. A client’s Glow Points, package balance, visit history and consumable impact all trace back to the same underlying profile — so a report generated for stock auditing and a report generated for marketing re-engagement are pulling from the same accurate source, not two different guesses about the same client.

💬 What Changed for the Team, Not Just the Numbers

The measurable results — fewer disputes, faster billing, clearer reports — are only part of the story. What actually changed daily behavior was smaller than that: front-desk staff stopped needing to interrupt a busy counter to go check a paper register for someone’s package balance. Stylists stopped guessing whether they’d used “about the usual amount” of a product, because the job card showed them the running average right there. And at month-end, the owner stopped spending an entire evening manually calculating who earned what incentive — the number was already sitting on each staff member’s dashboard, which also meant far fewer end-of-month conversations that started with “that doesn’t seem right.”

Client-facing changes were just as noticeable. Regulars who used to call in for appointments started booking directly through the PWA, and staff reported that WhatsApp offer messages got replies within minutes in a way that old SMS blasts never did. The Glow Point and scratch card system turned what used to be one-off visits into something clients actively tracked and talked about — several clients began asking staff directly how many points they had left, which is exactly the kind of engagement a loyalty system is supposed to create.

🔧 Integration Points We Had to Get Right

A system with this many modules only works if it fits into the physical reality of a salon counter, not just a screen. A few integration details mattered more than the feature list itself: the barcode scanner had to work with the same hardware already sitting at the counter rather than requiring new equipment, the POS slip printer needed to handle the combined services-plus-retail-plus-food bill format without a separate print job for each category, and the WhatsApp Business API connection had to go through Meta’s official business verification rather than an unofficial gateway that risks the number being banned during a busy festival season.

We also made sure the OTP flows for redemptions and discounts didn’t depend on the client’s phone having strong signal inside the salon — OTPs queue and retry automatically rather than failing silently, since a stuck OTP at a busy counter creates exactly the kind of friction this project was meant to remove.

🔭 What’s Next for This System

A few modules on the current roadmap, planned as natural extensions once the current 24 modules have a full quarter of usage data behind them: a staff-performance leaderboard view (built on top of the existing Service Report and incentive data, just presented differently for team motivation), an automated low-consumable-stock reorder suggestion (extending the Consumable Report to recommend reorder quantities rather than just flagging usage bands), and a client-facing loyalty tier system layered on top of Glow Points, so top clients get recognized status rather than just a running point balance.

None of these are separate systems bolted on afterward — because every module in this build reads from the same client, stock and job-card data, adding a new report or client-facing feature is a matter of building a new view on existing data, not standing up a new database and reconciling it with everything else. That underlying design decision is, in many ways, the real deliverable of this project — the 24 modules above are what it looks like in practice today, but the architecture is what makes the next 24 possible without starting over.

🧭 Design Principles We Followed Throughout

Three principles kept coming up as we built out all 24 modules, and they’re worth naming explicitly because they explain why certain decisions were made the way they were, rather than the more “standard” salon software approach.

First, friction should sit where accountability matters, and nowhere else. That’s why OTP approval exists specifically on redemptions and discretionary discounts — the two places where counter-level leakage historically happens — but not on routine actions like opening a job card or logging a retail sale. Adding approval friction everywhere would have slowed the counter down without actually protecting anything extra.

Second, every number should be explainable, not just displayed. The consumable report doesn’t just say a product is “high usage” — it shows the average it’s being compared against and which job cards drove the deviation. The incentive calculation doesn’t just show a final number — staff can see exactly which services and sales contributed to it. A system that just displays numbers without explaining them tends to get ignored the first time it produces a number someone disagrees with; a system that shows its work gets trusted.

Third, client-facing features had to reduce staff work, not add to it. Online booking, the PWA, and WhatsApp marketing were all evaluated on one question: does this reduce a manual task the front desk currently does, or does it just add a new screen for staff to maintain? Online booking reduces phone-answering load. Automated WhatsApp offers replace manual message copy-pasting. If a proposed feature would have added staff workload without removing an equivalent amount elsewhere, it was reconsidered or simplified before going into the build.

❓ Frequently Asked Questions

Can this system work for a single-location salon too?

Yes, the modules scale down for single-location salons — you don’t need multiple branches to benefit from job-card-wise stock tracking or the loyalty system.

Does the WhatsApp marketing module require separate approval?

Yes, it uses the official WhatsApp Business API which requires Meta verification and template approval — we handle this as part of setup.

How long did this project take to build?

The full module set was built and rolled out over approximately 8-10 weeks, including staff training on the job-card and POS workflows.

Can other salons get the same combination of features?

Yes — see our companion guide below for the full feature checklist we recommend for salon and spa businesses in general.

How does the system decide what counts as “average” consumption for a product before enough history exists?

For the first few weeks on a new product, the system uses a conservative industry-standard estimate, then automatically recalculates the true average once enough job cards have logged real usage data — typically within 20-30 services.

Can management restrict which staff can approve OTP-based discounts or redemptions?

Yes, OTP approval routing can be restricted to specific admin/manager roles rather than being open to all staff, which keeps the accountability trail meaningful.

What happens to Glow Points and package balances if a client visits a different branch in the future?

Since everything is tied to one client profile rather than a branch-specific record, points, packages and history stay with the client regardless of which location they visit, if the business expands to multiple branches.

Is staff training required to use all 24 modules, or is it rolled out gradually?

We rolled this out in four phases specifically so staff weren’t trained on all 24 modules at once — each phase came with focused training only on the modules going live at that stage.

Can this same system be adapted for a different salon or spa business?

Yes — the underlying module set is reusable for any salon or spa business; see our companion guide below for the general feature checklist we recommend evaluating.

Want the full feature list to compare against your own salon software? Read: Salon & Spa Management Software: Complete Feature Checklist for 2026.

Running a Salon or Spa Without a Connected System?

Talk to Digital Darzee about building software like this for your business.

Tags:

Leave a Reply