{
  "slug": "lash-extension-fill-economics",
  "title": "Lash Extension Fill Economics Calculator",
  "heading": "Lash Extension Fill Economics Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/lash-extension-fill-economics",
  "summary": "Compare full set and fill pricing to find your real revenue per lash hour.",
  "description": "Lash extension businesses run on a full-set-then-fills cadence, and pricing fills too low relative to how long they take is one of the most common ways lash artists undercharge themselves. This calculator compares your full set price and time against your fill price and time, computing revenue per hour for each and the blended average revenue per client accounting for typical fill frequency over a client's lifecycle. It also shows how many fills a full set client generates before falling off (either refilling into a new set or leaving), which determines total client lifetime value and whether your fill pricing is subsidizing your full-set client acquisition or eating your margin.",
  "formula": "Revenue per hour = price ÷ service hours. Blended revenue per client-month = (full set revenue ÷ full set cycle weeks + fill revenue × fills per cycle) normalized to weeks.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=lash-extension-fill-economics",
  "inputs": [
    {
      "id": "fullSetPrice",
      "label": "Full set price",
      "kind": "number",
      "hint": null,
      "default": 150,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "fullSetHours",
      "label": "Full set time",
      "kind": "number",
      "hint": null,
      "default": 2.25,
      "unit": "hrs",
      "min": 0.25,
      "max": null
    },
    {
      "id": "fillPrice",
      "label": "Fill price",
      "kind": "number",
      "hint": null,
      "default": 65,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "fillHours",
      "label": "Fill time",
      "kind": "number",
      "hint": null,
      "default": 1.25,
      "unit": "hrs",
      "min": 0.25,
      "max": null
    },
    {
      "id": "fillIntervalWeeks",
      "label": "Weeks between fills",
      "kind": "number",
      "hint": null,
      "default": 3,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "cycleWeeks",
      "label": "Weeks before a new full set is needed",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": null,
      "min": 1,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "blendedHourly",
      "label": "Blended revenue per hour (full cycle)",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "fullSetHourly",
      "label": "Full set revenue per hour",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "fillHourly",
      "label": "Fill revenue per hour",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "fillsPerCycle",
      "label": "Fills per full-set cycle",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "revenuePerWeek",
      "label": "Average revenue per client per week",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Full set price: 150 $",
      "Full set time: 2.25 hrs",
      "Fill price: 65 $",
      "Fill time: 1.25 hrs",
      "Weeks between fills: 3",
      "Weeks before a new full set is needed: 12"
    ],
    "outputs": [
      "Blended revenue per hour (full cycle): $57.50",
      "Full set revenue per hour: $66.67",
      "Fill revenue per hour: $52.00",
      "Fills per full-set cycle: 3",
      "Average revenue per client per week: $28.75"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter full set price ($).",
      "Enter full set time (hrs).",
      "Enter fill price ($).",
      "Enter fill time (hrs).",
      "Enter weeks between fills.",
      "Enter weeks before a new full set is needed.",
      "Read your blended revenue per hour (full cycle) on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "fullSetPrice": 90,
        "fullSetHours": 1.3499999999999999,
        "fillPrice": 40,
        "fillHours": 0.75,
        "fillIntervalWeeks": 1.7999999999999998,
        "cycleWeeks": 7
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "fullSetPrice": 150,
        "fullSetHours": 2.25,
        "fillPrice": 65,
        "fillHours": 1.25,
        "fillIntervalWeeks": 3,
        "cycleWeeks": 12
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "fullSetPrice": 240,
        "fullSetHours": 3.6,
        "fillPrice": 105,
        "fillHours": 2,
        "fillIntervalWeeks": 4.800000000000001,
        "cycleWeeks": 19
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Why do fills usually have a lower hourly rate than full sets?",
      "a": "Fills are priced lower in absolute dollars but often take proportionally longer per dollar earned because removing outgrown lashes and filling gaps evenly is fiddly work. If your fill hourly rate is meaningfully below your full-set hourly rate, it's worth testing a fill price increase or tightening the fill time window."
    },
    {
      "q": "How does fill interval affect total revenue per client?",
      "a": "Shorter fill intervals (2 weeks vs 4 weeks) increase visit frequency and total revenue per client but also increase your booked-hours demand per client, which can cap how many total clients you can serve. Many lash artists price 2-week fills higher specifically to balance demand against calendar capacity."
    },
    {
      "q": "Should I ever raise fill prices independent of full set prices?",
      "a": "Yes, especially if fill hourly rate lags full set hourly rate significantly. Since fill clients are already loyal and less price-sensitive than new full-set clients, a fill price increase (with notice) is usually one of the lowest-risk pricing changes a lash business can make."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/salon-service-pricing-target-hourly",
    "https://www.revenuelab.fyi/toolbox/esthetician-day-rate-calculator",
    "https://www.revenuelab.fyi/toolbox/salon-double-booking-capacity"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Lash Extension Fill Economics Calculator (https://www.revenuelab.fyi/toolbox/lash-extension-fill-economics)"
}