North Metric

    What are Refunds?

    Total refund amounts issued in the period — revenue returned to customers, subtracted directly from your cash flow.

    SAAS METRIC · OPERATIONALBy Riyad Yahya
    IN SHORT

    In North Metric's 2026 benchmarks, the median Refund Rate is 1.0% for SaaS companies under $10K MRR and 0.5% at $500K+ MRR. The top quartile reaches 0.5% and 0.2% at those stages, so compare your own figure with your MRR band, not one SaaS-wide average.

    BY RIYAD YAHYA, CO-FOUNDER & CTO · UPDATED NOV 14, 2026

    What are Refunds?

    Refunds is the total amount of money returned to customers in a period. Unlike failed charges (money never collected), refunds represent money that was successfully collected and then given back.

    Every refund directly reduces Net Cash Flow. The payment was already settled, so the refund reverses that cash movement. Stripe also typically does not return the original processing fee, meaning the net cost of a refund is the refund amount plus the fee you already paid to collect it.

    Refunds are a signal. A rising refund rate can indicate pricing misalignment, product gaps, onboarding friction, or support-driven appeasement refunds masking deeper issues. Tracking the amount and rate together reveals whether refunds are growing in line with revenue or accelerating ahead of it.

    The Refunds formula

    RefundsRefunds = Sum of all refund amounts issued in the period
    VARIABLEWHAT IT IS
    Total RefundsSum of all refund amounts (from Stripe's /v1/refunds), using the refund creation date — not the original charge date

    Refund Rate

    The rate version normalizes refunds as a percentage of total billings:

    Refund RateRefund Rate = Total Refunds ÷ (Paid Invoices + Total Refunds) × 100
    See the customers behind this numberMoney at risk across your paying customers, money leaking to old prices and forever discounts, and the first 5 to act on.Get your free churn report →

    Worked example

    March 2026: Your company has $52,300 in paid invoices and issues 4 refunds:

    RefundReasonAmount
    #1Duplicate charge$99
    #2Customer downgraded mid-cycle$150
    #3Product didn’t meet expectations$299
    #4Prorated annual cancellation$302
    Total Refunds$850
    ExampleRefund Rate = $850 ÷ ($52,300 + $850) × 100 = 1.6%

    A 1.6% refund rate is within the healthy range for most SaaS companies. The $850 is subtracted from Net Cash Flow, and the processing fees originally paid on those charges (~$25 at 2.9%) are not returned by Stripe — making the true cost of these refunds closer to $875.

    How it’s computed

    North Metric pulls refund data directly from Stripe’s /v1/refunds API during the daily snapshot:

    VARIABLEWHAT IT IS
    SourceStripe /v1/refunds — all refund objects created in the period
    Amount fieldrefund.amount — the refunded amount in cents (divided by 100)
    Date fieldrefund.created — when the refund was issued, not when the original charge was created
    AggregationSum of all refund amounts in the period

    Full vs partial refunds

    Stripe supports both full and partial refunds. A $200 charge refunded $50 creates a $50 refund object — the Refunds metric captures the actual amount refunded, not the original charge amount. Multiple partial refunds on the same charge each create separate refund objects and are summed individually.

    The hidden cost of refunds

    Stripe does not return the original processing fee when you issue a refund. A $100 charge incurs ~$3.20 in fees (2.9% + $0.30). If you refund the full $100, you’ve lost $103.20 — the refund amount plus the non-recoverable fee. At scale, this makes refunds more expensive than they appear in the raw metric.

    Refunds in Net Cash Flow

    The total_refunds variable feeds directly into the Net Cash Flow equation: total_cash_received - total_refunds - total_fees. A refund spike in one month can depress Net Cash Flow even if MRR is growing steadily.

    Refunds vs Failed Charges

    Both reduce your effective revenue, but at different stages of the payment lifecycle.

    RefundsFailed Charges
    What happenedPayment succeeded, then money was returnedPayment was attempted but never succeeded
    Cash impactCash leaves your account (negative settlement)Cash was never collected (no settlement to reverse)
    Fee impactOriginal processing fee is not returned — you pay twiceNo fee charged — Stripe doesn't charge for failed attempts
    Root causeProduct misfit, billing errors, cancellation policies, disputesExpired cards, insufficient funds, bank declines
    PreventionBetter onboarding, clearer pricing, prorated downgrades instead of full refundsCard updater services, smart retry timing, dunning emails

    Common Refunds mistakes

    1. Attributing refunds to the wrong month. A charge from January refunded in March should appear in March’s refund total, not January’s. This matches when the cash actually leaves your account. Backdating refunds to the charge month distorts both months.
    2. Ignoring the processing fee loss. Stripe keeps the original processing fee on refunds. At 2.9% + $0.30, a $500 refund actually costs $514.80. At scale, this hidden cost can be material — a company issuing $10K/month in refunds loses an additional $300+ in non-recoverable fees.
    3. Not segmenting by reason. Duplicate-charge refunds are billing bugs (fix the system). Product-dissatisfaction refunds are churn signals (fix the product). Prorated cancellation refunds are policy-driven (evaluate the policy). A single refund total hides these distinctions.
    4. Confusing refunds with chargebacks. A refund is voluntary — you initiate it. A chargeback (dispute) is involuntary — the customer’s bank reverses the charge. Chargebacks carry additional fees ($15–$25 per dispute) and, at high rates, can result in Stripe placing your account under review.
    5. Using refunds to mask churn. Proactively refunding a dissatisfied customer prevents a chargeback and preserves the relationship, but if the customer then cancels, the refund just accelerated the cash impact of churn. Track whether refunded customers stay or leave.

    Refund Rate benchmarks

    Refund Rate benchmarks are segmented by MRR tier. Lower is better — a rate below 0.5% is strong, and above 2% warrants investigation. Larger companies tend to have lower refund rates due to more mature billing systems and clearer pricing.

    Stage · MRRBottom 25%MedianTop 25%
    Seed · < $10K2.0%1.0%0.5%
    Early · $10K – $50K1.5%0.8%0.3%
    Growth · $50K – $100K1.2%0.7%0.3%
    Scale · $100K – $500K1.0%0.5%0.2%
    Enterprise · $500K+1.0%0.5%0.2%
    Lower is better. Benchmarks by revenue stage, compiled from published SaaS studies and North Metric’s own analysis.
    After Stripe's retries endA personal note when Stripe's retries end, and hard declines and missing cards handled at once.Failed payment recovery →

    Frequently asked questions

    What is a good Refund Rate for SaaS?

    Below 0.5% is strong. The median refund rate across SaaS companies ranges from roughly 0.5% to 1.0% depending on stage. Above 2% suggests a systemic issue — pricing misalignment, product gaps, or an overly generous refund policy that’s being exploited.

    Does Stripe return processing fees on refunds?

    No. Stripe keeps the original processing fee when you issue a refund. A $100 charge with a $3.20 fee costs you $103.20 if fully refunded — you return $100 to the customer but don’t get the $3.20 fee back. This makes refund prevention more valuable than the refund amount alone suggests.

    How do refunds affect MRR?

    Refunds don’t directly affect MRR. MRR measures the subscription amount, not cash collected. A refund reduces Net Cash Flow but leaves MRR unchanged unless the customer also cancels or downgrades their subscription. If refunds consistently precede cancellations, they’re an early churn signal.

    Should I use the refund date or the charge date?

    The refund date. North Metric uses the refund creation timestamp (refund.created), not the original charge date. This matches cash-basis accounting — the cash leaves your account on the refund date. Backdating to the charge date distorts both the original period (inflated refunds) and the current period (understated refunds).

    What is the difference between a refund and a chargeback?

    A refund is voluntary — your team initiates it through Stripe. A chargeback (dispute) is involuntary — the customer’s bank reverses the charge on their behalf. Chargebacks carry additional fees ($15–$25 per dispute), can take months to resolve, and at high rates (>1% of transactions) can trigger Stripe account review. Proactive refunds to dissatisfied customers prevent chargebacks and their compounding costs.

    From metric to action

    North Metric estimates the money leaking to old prices and discounts on your Stripe account. See revenue leakage.

    Further reading

    Related metrics

    All metrics →
    SAAS METRIC

    Failed charges

    Failed Charges = Sum of amounts from failed/open invoicesRevenue that wasn't collected — the other side of payment-related revenue loss.Open metric →
    SAAS METRIC

    Net cash flow

    Net Cash Flow = Total Cash Received − Total Refunds − Total FeesRefunds are subtracted directly from Net Cash Flow.Open metric →
    SAAS METRIC

    Average revenue per account (ARPA)

    ARPA = Total MRR ÷ Active Paid SubscriptionsRefunds reduce effective revenue per customer when concentrated in specific segments.Open metric →
    See the customers behind your refunds.Actions off until you turn them onGet your free churn report →