TL;DR
Semi-variable costs (also called mixed costs or step costs) have a fixed floor plus a variable component that scales with activity. They are the hardest cost category to model because they don't scale linearly. Common examples: customer support teams, tiered SaaS subscriptions, and cloud compute with reserved + on-demand pricing. Misclassifying semi-variable costs as purely fixed or purely variable distorts every financial model that depends on them.
What is a semi-variable cost?
A semi-variable cost (also called a mixed cost, step cost, or stepped fixed cost) is any business expense that contains two components: a fixed floor that is paid regardless of activity level, and a variable component that scales with a specific activity driver. A customer support team illustrates this clearly — the base team of 4 agents is a fixed cost, but overtime hours paid when ticket volume exceeds 800 per month are variable. The total cost is neither purely fixed nor purely variable.
Semi-variable costs occupy the middle ground between fixed costs and variable costs on the cost behavior spectrum. Fixed costs are flat lines; variable costs are straight lines through the origin; semi-variable costs are flat lines that slope upward at a threshold. This non-linear behavior is what makes them the hardest category to model — standard linear forecasting assumptions do not apply.
For B2B SaaS companies building financial models and operators allocating budget across departments, semi-variable costs represent the category where forecasting errors are most expensive. Treat them as fixed and you underestimate costs at scale. Treat them as variable and you underestimate costs at low volume. Neither approach produces an accurate breakeven model or contribution margin calculation.
Common semi-variable costs in B2B SaaS: customer support headcount (base team plus overtime or contract surge capacity), cloud infrastructure on reserved plus on-demand pricing, tiered SaaS tool subscriptions that change pricing at usage thresholds, sales team compensation (base salary is fixed; commission is variable), and mobile or communication plans with a base fee plus per-minute or per-message charges above the allowance.
Why semi-variable costs matter for operators
The cost of misclassifying semi-variable costs as purely fixed is a broken breakeven model. A company that treats its cloud infrastructure as entirely fixed will project the same infrastructure cost whether it has 500 or 5,000 active users. When the variable component kicks in at scale, the actual cost can be 2-4x the modeled cost. This is one of the most common reasons SaaS companies blow through their gross margin targets in high-growth quarters.
For operators allocating departmental budgets, semi-variable costs introduce a planning challenge: when does the variable component trigger, and by how much? A support team may handle up to 600 tickets per month without overtime. At 601, the overtime component activates. At 900, a new hire becomes necessary — a discrete jump in the fixed floor. Modeling the step thresholds is the only way to produce an accurate cost forecast.
Fairview customers who connect their accounting tools alongside CRM and product analytics data find that semi-variable costs — particularly support labor and cloud compute — are the most frequently under-forecast line items in the annual plan. The fixed floor is easy to model; operators consistently underestimate the activity driver and the timing of each step-up in the variable component.
Semi-variable cost formula
Core formula and high-low decomposition method:
Semi-Variable Cost = Fixed Component + (Variable Rate × Activity Level) Example (Customer Support Team): - Fixed Component: $32,000/month (4 base agents × $8,000 fully loaded) - Variable Rate: $45/hour for overtime above 600 tickets/month - Activity Level: 850 tickets in March - Overtime triggered: 250 tickets above threshold - Assuming 12 minutes per ticket: 250 × 0.2 hrs = 50 overtime hours - Variable Component: 50 × $45 = $2,250 - Total Semi-Variable Cost: $32,000 + $2,250 = $34,250 High-Low Method (to decompose an unknown semi-variable cost): - High month: 900 tickets, total cost $35,400 - Low month: 400 tickets, total cost $32,600 - Variable Rate = ($35,400 - $32,600) / (900 - 400) = $2,800 / 500 = $5.60/ticket - Fixed Component = $32,600 - ($5.60 × 400) = $32,600 - $2,240 = $30,360
- Fixed Component: The cost incurred at zero or minimum activity. This is the floor — it is paid regardless of volume.
- Variable Rate: The cost per unit of activity above the fixed base. Determine this using the high-low method or regression analysis on historical cost data.
- Activity Level: The specific driver that triggers the variable component — ticket volume, user count, API calls, data processed. Identifying the correct driver is critical; the wrong driver produces an inaccurate model.
- Step Threshold: The activity level at which the fixed floor "steps up" — a new hire, a new pricing tier, a contract renewal at higher volume. Model each threshold explicitly.
Core components of a semi-variable cost
How the fixed and variable parts break down across the most common semi-variable cost categories in B2B SaaS operations.
| Cost type | Fixed component | Variable component | Activity driver | Step threshold |
|---|---|---|---|---|
| Customer support team | Base agent headcount salaries ($28-40K/agent/year) | Overtime hours or contract surge capacity | Monthly ticket volume | Hire additional agent at 150-200 tickets/agent/month |
| Cloud infrastructure | Reserved instance or committed spend ($X/month) | On-demand compute above reserved capacity | Active users or data processed | Reserved tier exhausted — on-demand pricing activates |
| Sales team compensation | Base salary ($60-120K/rep/year) | Commission on closed revenue (6-10% of ARR) | Closed ARR in period | Accelerators activate at quota attainment above 100% |
| Tiered SaaS subscriptions | Base tier subscription fee | Overage charges above included usage | Seats, API calls, or storage consumed | Plan limit reached — overage rate or tier upgrade required |
| Mobile / communication plans | Monthly base plan fee | Per-minute or per-message charges above allowance | Minutes used or messages sent | Included allowance exhausted each billing cycle |
Sources: industry-observed cost structures; commission rates from Bridge Group SDR/AE Compensation Report 2025; cloud pricing from AWS and Google Cloud published rate cards.
Common mistakes when modeling semi-variable costs
1. Treating semi-variable costs as purely fixed
Classifying a support team or a tiered cloud subscription as entirely fixed ignores the variable component entirely. The result: the financial model shows costs as flat while the actual P&L shows them rising with usage. At 2x the activity level, the actual cost may be 30-50% above the model. This is the most common cause of gross margin misses in high-growth SaaS quarters.
2. Treating semi-variable costs as purely variable
The opposite error: modeling semi-variable costs as fully variable means the model predicts near-zero cost at near-zero volume, which ignores the fixed floor. A support team of 4 agents costs $32,000/month whether you have 10 customers or 600. At low revenue, a fully variable model dramatically understates costs and overstates contribution margin.
3. Not identifying the correct activity driver
The variable component of a semi-variable cost scales with a specific driver — not with revenue. A support team's overtime scales with ticket volume, not ARR. Cloud compute scales with active users and data processed, not with seats sold. Using revenue as a proxy for the activity driver produces an inaccurate variable rate and breaks the model at any volume level.
4. Using average cost instead of marginal cost at the step threshold
When a semi-variable cost is about to step up — a new support hire, a tier upgrade, a reserved instance renewal — the relevant cost is the marginal cost of the next unit of activity, not the average cost across all units. Operators who use average cost underestimate the expense of the next growth increment and delay corrective action until the step-up has already occurred.
5. Not modeling the step threshold in the annual plan
Every semi-variable cost has a threshold where the fixed floor steps up: a new hire, a new cloud tier, a contract renewal at higher volume. If the annual plan does not explicitly model when these thresholds will be crossed, the cost forecast is wrong for every month after the crossing. Build a step-cost schedule: identify each threshold, the expected crossing date, and the cost jump at each step.
How Fairview tracks semi-variable costs automatically
Fairview's Margin Intelligence connects to QuickBooks and Xero to import cost data and to product analytics or CRM data to capture the activity drivers — ticket volume, active users, API call volume, closed deals. It uses a configurable high-low decomposition model to separate the fixed and variable components of each cost line flagged as semi-variable.
When the variable component of a semi-variable cost increases faster than the corresponding activity driver — signaling that a step threshold has been crossed or a rate has changed — the Next-Best Action Engine surfaces the alert: "Support labor cost increased 34% while ticket volume grew 18%. Variable rate per ticket has risen from $5.60 to $8.10 — check whether overtime rates or contractor costs have changed."
Semi-variable costs in the context of the full cost structure
Semi-variable costs sit between fixed costs and variable costs and must be modeled separately from both. A complete operating cost model decomposes every P&L line into one of three categories — then aggregates to calculate contribution margin and breakeven. Semi-variable costs misassigned to either extreme category corrupt the model.
| Fixed Cost | Semi-Variable Cost | Variable Cost | |
|---|---|---|---|
| Behavior at zero volume | Fully incurred | Fixed floor incurred | Zero |
| Behavior at scale | Unchanged | Fixed floor + scaled variable component | Scales proportionally with volume |
| Modeling approach | Flat line in forecast | Fixed floor + variable rate × activity driver | Rate × volume |
| Examples | Office rent, base engineering salaries | Support team, cloud compute (reserved + on-demand) | Payment processing fees, sales commissions |
| Key risk if misclassified | Underestimate costs at scale if treated as fixed | Corrupt both breakeven and contribution margin calculations | Overestimate costs at low volume if treated as variable |
At a glance
- Category
- Financial Metrics
- Related
- 5 terms
Frequently asked questions
What is a semi-variable cost in simple terms?
A semi-variable cost is an expense with two parts: a fixed base you pay no matter what, plus an additional amount that grows with activity. A customer support team is a good example — you pay for 4 agents whether you have 100 or 500 tickets (fixed floor), but above 600 tickets per month you pay overtime or hire contract support (variable part). The total cost is partly fixed, partly variable.
What are examples of semi-variable costs for a SaaS company?
Common SaaS semi-variable costs: customer support headcount (base team plus overtime or contract surge), cloud infrastructure on reserved plus on-demand pricing, tiered SaaS subscriptions with overage charges, sales rep compensation (base salary is fixed; commission is variable), and phone or communication plans with a base fee and overage rates above the included allowance. Each has a fixed floor and a variable component triggered by a specific activity.
How do semi-variable costs affect contribution margin?
Semi-variable costs affect contribution margin differently depending on how they are classified. The fixed floor component should be excluded from contribution margin (contribution margin is Revenue minus Variable Costs only). The variable component should be included. If you treat the entire semi-variable cost as variable, you understate contribution margin at low volume. If you treat it as entirely fixed, you overstate it at scale.
What is the difference between a semi-variable cost and a step cost?
A step cost is a specific type of semi-variable cost where the fixed floor increases in discrete jumps at defined thresholds. A support team that adds one agent at every 150 new tickets per month is a step cost — the fixed floor steps up in $8,000 increments. A semi-variable cost can also have a continuously variable component above a fixed floor. Step costs are the subset where the fixed component itself is discontinuous.
How often should you review semi-variable costs?
Monthly, with particular attention to the step thresholds. Set alerts for when an activity driver — ticket volume, active users, API calls — approaches the threshold where the next step-up occurs. Review the fixed floor annually when contracts renew. For cloud infrastructure, review the reserved versus on-demand split quarterly; demand patterns change, and the optimal reserved capacity level changes with them.
Sources
Fairview is an operating intelligence platform that models semi-variable costs by decomposing fixed and variable components automatically — so step-cost thresholds appear in your forecast before they hit your P&L. Start your free trial →
Siddharth Gangal is the founder of Fairview. He built semi-variable cost tracking into Margin Intelligence after watching operators consistently underestimate support and infrastructure costs in high-growth quarters — always because the step thresholds were invisible in their models.
See it in Fairview
Track Semi-Variable Cost automatically.
14-day free trial. No credit card. First data source connected in 5 minutes.