Growthy
AI Bookkeeping
1099 FilingOBBBA raised 1099-NEC to $2,000 and reverted 1099-K to $20K/200. The bookkeeper workflow that doesn't fall apart in January.
AP ReconciliationThe monthly AP discipline that keeps vendor ledgers clean and January 1099s accurate, built for bookkeepers managing 8-25 clients.
Bookkeeper ScalingSolo bookkeeper income is capped at 15-25 clients. Here's the math behind the ceiling and the three levers that break it.
Bookkeeping AutomationTools, techniques, and strategies for automating repetitive bookkeeping tasks.
QuickBooks AutomationIntuit Assist hits ~50% on novel transactions. Bank rules break at 200+. Here's the honest map of QBO automation in 2026.
SaaS Accounting: A Practitioner's Guide to Revenue Recognition, Deferred Revenue, and the Books Behind the SubscriptionHonest, practitioner-built guide to SaaS accounting. ASC 606, deferred revenue, COA, metrics, and software comparison for bookkeepers, CPA firms, and founders.
Stripe Bookkeeping Guide: Payouts, Fees, Refunds, and QBO/XeroStripe bookkeeping starts with payouts, fees, refunds, and a clearing account. Use this guide to reconcile Stripe in QBO or Xero without guesswork now.
Chart of Accounts: The Complete Guide for BookkeepersThe working chart of accounts reference for bookkeepers: 5 account types, 20 deep-dive guides, 2026 deduction rules. Built for the people who Google 'what category is X' twenty times a day.
Asset Account CategoriesEquity Accounts ExplainedExpense Account CategoriesLiability Account CategoriesRevenue Account Types
GlossaryPlain-English definitions of accounting and bookkeeping terms — written by practitioners who use these every day.
Balance Sheet TermsBookkeeping Foundation TermsIncome Statement TermsQBO-Specific TermsTax Bookkeeping Terms
AI BookkeepingHow AI is changing transaction categorization, bank reconciliation, and bookkeeping workflows.
AI for AccountantsEvery vendor claims AI will transform your firm. Here is what it actually looks like at a 5-20 staff CPA practice in 2026.
Ecommerce Accounting
Payment Reconciliation: How to Match Merchant Deposits to Gross Revenue in 2026That $3,847.92 Stripe deposit is not $3,847.92 of revenue. Here's how to split merchant deposits correctly: fees in the right account, refunds posted, chargebacks reconciled.
QuickBooks Integrations15 clients × 6 integrations = 90 sync pipelines to babysit. Here's which QBO integrations actually hold up at scale and why a workflow layer beats adding another app.
For BookkeepersFor AccountantsPricing
Join the Alpha
Growthy

© 2026 Growthy. All rights reserved.

  1. Topics
  2. Glossary
  3. Tax Bookkeeping Terms
  4. What Counts as COGS for a SaaS Startup (and Why Your Gross Margin Is Probably Wrong)

What Counts as COGS for a SaaS Startup (and Why Your Gross Margin Is Probably Wrong)

Bobby Huang

Partner, SDO CPA LLC / CEO, Growthy

June 12, 2026
8 min read
Tax Bookkeeping Terms
What Counts as COGS for a SaaS Startup (and Why Your Gross Margin Is Probably Wrong)

In this article

Introduction

An investor looks at your deck and asks one question. "What's in your COGS?" If your answer is "not much," your 90% gross margin is about to shrink in front of the whole room.

Most founders get SaaS COGS wrong in the same direction. They leave costs out. Hosting sits in a generic "software" bucket. Support salaries sit in payroll. API bills sit in "tools." The result is a gross margin that looks amazing and means nothing.

Here is the plain version. COGS is the set of costs that rise and fall with the customers you serve. If a customer canceling would make a cost go down, that cost probably belongs in COGS. Opex is everything you would pay anyway. Rent, sales salaries, and your own engineering payroll stay in opex whether you have 10 customers or 1,000.

SaaS has no warehouse and no widgets, so "cost of goods sold" feels like someone else's problem. It isn't. Your product is a running service. The servers, the support team, and the per-call API fees that keep it running for paying customers are the goods.

This guide walks the four cost buckets founders argue about most. It gives you a clear call on each one, shows a worked example with real dollars, and ends with the gross margin bands investors actually use.

Definition Box: COGS (cost of goods sold) for SaaS means the direct costs of delivering your service to paying customers, such as production hosting, customer support, and per-use API fees. Gross margin is revenue minus COGS, divided by revenue. Costs that don't move with customer count, like sales and engineering payroll, stay in operating expenses.

Key Takeaways

  • COGS is the serve-the-customer slice. Production hosting, support, and in-product API costs belong there. Sales, marketing, and R&D stay in opex.
  • Hosting splits in two. Production infrastructure serving customers is COGS. Dev and staging environments are R&D opex.
  • Support counts, success usually doesn't. Reps answering customer tickets are COGS. A success team focused on upsells is a sales cost.
  • AI inference is the new blind spot. Per-call model and API costs inside the product path are COGS, and they're getting big.
  • Benchmarks have teeth. Healthy SaaS gross margin runs 75-80% or better. Below 60% reads as a services business, and the valuation follows.

Hosting and infrastructure

Start with the easiest call. Are hosting costs COGS? For production, yes. The AWS, GCP, or Azure spend that serves live customer traffic is the clearest COGS line a SaaS company has.

The nuance is the split. Not all cloud spend serves customers. Say your total cloud bill is $14,000 a month. Production workloads run $11,000 of it. The other $3,000 covers dev and staging environments your engineers use to build. That $11,000 is COGS. The $3,000 is R&D opex.

Most founders book the whole $14,000 to one account and move on. That single habit distorts both your gross margin and your R&D picture. Tag your cloud accounts by environment once, and the split maintains itself.

A few related lines ride along with hosting. CDN fees, database hosting, monitoring tools that watch production, and backup storage for customer data all serve live customers, so they sit in COGS too. If you prepay for reserved instances or a committed-use discount, the spend still follows the same split. The discount changes the price, not the classification.

Customer support

Support is the bucket where the test earns its keep. Ask what the person actually does all day.

A support rep answering tickets from existing customers is delivering the service. Customers expect help as part of what they pay for. That salary is COGS. If you doubled your customer count, you'd need more reps. The cost climbs as you add customers, which is the whole definition.

Customer success is different when the role is really sales. A CSM whose goals are expansion revenue and upsells is growing revenue, not delivering the service. That salary belongs in sales and marketing opex.

Plenty of teams blend the two roles. Split the cost by time if you have to. A rough 70/30 split that follows reality beats a clean 100% that doesn't.

Put numbers on it. Say you pay one blended support-and-success person $72,000 a year, or $6,000 a month. She spends about 70% of her week in the ticket queue and 30% running expansion calls. Book $4,200 to COGS and $1,800 to sales opex. Write the split down somewhere you'll find it later, and revisit it when the role changes. Auditors and analysts don't mind estimates. They mind estimates nobody can explain.

The same logic covers the software your support team runs on. Your help desk tool and the chat widget your customers use are part of delivering support, so they belong in COGS with the salaries they support.

Third-party APIs and data costs

This is the bucket AI-era SaaS gets most wrong, and the dollars are growing fast.

The rule: if the cost sits in the product path, it's COGS. OpenAI tokens that power a feature your customers use? COGS. Plaid calls that pull your customers' bank data? COGS. Twilio messages your app sends on a customer's behalf? COGS. A data license that feeds content into the product? Same answer.

Internal tools are not in the product path. Slack, Linear, Notion, and your CRM are opex. Your customers never touch them.

Model inference deserves a hard look. Teams shipping AI features can watch per-call costs climb to one of the biggest lines on the income statement. Founders who bury inference in a "tools" account are reporting a SaaS gross margin that no longer reflects the cost of goods sold. SaaS companies with heavy inference loads have real unit-economics questions, and hiding the line doesn't make those questions go away.

Payment processing fees

Stripe takes 2.9% plus 30 cents on every transaction. Where does that go?

Two answers are defensible. You can net fees against revenue, which is the contra-revenue approach. Or you can book them in COGS. GAAP practice varies, and both choices show up at diligence without raising eyebrows. Pick one and stay consistent.

The wrong answer is the common one. Burying processing fees in general opex flatters your gross margin by the full fee load. On $1.2 million of card-collected annual revenue, that's roughly $35,000 of cost pretending to be overhead. An analyst will find it in about ten minutes.

What stays in opex

Don't over-rotate and stuff everything into COGS. These stay out:

  • Engineering salaries. Building the product is R&D, not delivering it. (The cloud bill for production is COGS; the people writing code are not.)
  • Sales and marketing. Ads, sales salaries, commissions, and the upsell-focused success team.
  • Rent and G&A. Office, legal, insurance, and accounting. You'd pay these with zero customers.

COGS is the serve-the-customer slice. Nothing more.

The benchmarks, with a worked example

Here are the SaaS gross margin benchmarks investors carry into every meeting. Healthy SaaS runs 75-80% gross margin or better. The strongest products clear 80%. Below 70%, expect questions. Below 60%, investors stop reading the margin as software. The business looks like a services company wearing a SaaS valuation, and the revenue multiple drops to match.

Why so much weight on one ratio? Because SaaS valuations are built on revenue multiples, and those multiples assume software-grade margins. Every point of gross margin moves what the company is worth.

There's a second reason the band matters: gross margin sets the ceiling on everything below it. Whatever survives COGS has to fund sales, marketing, R&D, and overhead, and still leave something over. A company at 78% gross margin has 78 cents of every revenue dollar to work with. A company at 55% has 55 cents, and no amount of new revenue fixes the gap. That's why an investor reads the margin line before reading your roadmap.

Now the worked example. A startup at $100,000 MRR reports a 92% gross margin. Its COGS line holds almost nothing: $8,000 of miscellaneous infrastructure.

Then the books get classified correctly:

  • Production hosting: $14,000 a month
  • Support team: $6,000 a month
  • In-product API and inference costs: $4,000 a month

True SaaS COGS is $24,000 a month. Gross margin lands at 76%. Same company, same product, same cash in the bank. The honest number sits inside the healthy band, and it holds up when someone checks.

The reusable test: if a customer canceling would make this cost go down, it's probably COGS.

One more habit keeps the number honest over time. Reclassify once, then close your books on the same rules every month. A margin that jumps from 76% to 88% because someone recoded the hosting account mid-year looks worse in diligence than either number on its own. Consistency is half the credibility.

Conclusion

The cost of goods sold SaaS founders report is usually too thin, and the inflated margin it produces is a liability with a delay on it. Classify the four buckets honestly. Production hosting in, dev environments out. Ticket support in, upsell success out. Product-path APIs in, internal tools out. Processing fees netted or in COGS, never buried.

Then recompute your gross margin and compare it to the 75-80% band. If the honest number is lower than the deck number, fix the deck now. A 76% margin you can defend beats a 92% margin that dies in diligence.

This is exactly the kind of classification work that should not depend on a founder remembering the rules at midnight. Start your free alpha with Growthy — it categorizes your SaaS COGS lines automatically, and you review and approve every call before it syncs. Walk into your next investor meeting with a gross margin you can defend.

See It Work on Your Data

Free during alpha. Read-only access. You review every sync.

✓ No credit card✓ Works with QuickBooks✓ 85% accuracy
Request Early Access

Bobby Huang • Partner, SDO CPA LLC / CEO, Growthy

CPA firm partner who got tired of watching bookkeepers click categorize 500 times a day. Built Growthy to fix it.

View author profile

Growthy is dedicated to helping businesses of all sizes make informed decisions. We adhere to strict editorial guidelines to ensure that our content meets and maintains our high standards.

Keep reading

Bank statements and a calculator on a desk during a monthly bank feed reconciliation
Tax Bookkeeping Terms

Bank Feed Reconciliation: Why 'Matched' Isn't 'Reconciled'

Every transaction in the feed shows a green checkmark. The client's books still don't tie to the bank statement. Off by $1,240. If you run bank feed reconciliation for 15 or 20 clients, you've hit this exact moment. The feed says done.

B
Bobby Huang
9 min
Featured image for 5 Ways Bookkeepers Grow Their Client Base Without Burning Out
Tax Bookkeeping Terms

5 Ways Bookkeepers Grow Their Client Base Without Burning Out

Five concrete ways pro bookkeepers grow without working more nights. Productize intake, tier pricing, niche down, sell advisory, and use AI on coding.

B
Bobby Huang
6 min
Featured image for The Month-End Close Checklist for SaaS Founders: A 7-Step Sequence
Tax Bookkeeping Terms

The Month-End Close Checklist for SaaS Founders: A 7-Step Sequence

A 7-step month-end close checklist built for SaaS founders. Deferred revenue, MRR roll-forward, prepaid expenses, and accruals, in order.

B
Bobby Huang
6 min