Methodology
Payment Processing Fee Comparison methodology
Educational only: Business decision support, not accounting, tax or legal advice.
Privacy: Calculations run locally; Margin101 does not receive your commercial inputs.
Update policy: Reviewed when formulas or official dependencies change.
Scope: Market-neutral small-business planning using your own assumptions.
1. Formulas and units
weightedFeePerTransaction = sum(payment share ร fee after refund recovery)Where
- weightedFeePerTransaction
- Weighted Fee Per Transaction (currency units, ex tax)Source: Calculated output
weightedEffectiveRate = weighted fee / average order valueWhere
- averageOrderValue
- Average order value (currency units, ex tax)Source: Business record
- weightedEffectiveRate
- Weighted Effective Rate (decimal rate)Source: Calculated output
totalCurrentFees = weighted fee ร transactionsWhere
- transactions
- Transactions (operational units)Source: Business record
- totalCurrentFees
- Total Current Fees (currency units, ex tax)Source: Calculated output
totalAlternativeFees = fixed period fee + alternative fee after refund recovery ร transactionsWhere
- transactions
- Transactions (operational units)Source: Business record
- alternativeFixedPeriodFee
- Alternative fixed fee (currency units, ex tax)Source: Business record
- alternativeFixedFee
- Alternative transaction fee (currency units, ex tax)Source: Business record
- totalAlternativeFees
- Total Alternative Fees (currency units, ex tax)Source: Calculated output
- fixedFee
- Fixed fee (currency units per successful transaction)Source: Business record
crossoverTransactions = ceil(fixed period fee / unit saving)Where
- transactions
- Transactions (operational units)Source: Business record
- crossoverTransactions
- Crossover Transactions (units)Source: Calculated output
- fixedFee
- Fixed fee (currency units per successful transaction)Source: Business record
subscriptionBilledPotentialRevenue = scheduledMonthlyTransactions ร monthlyPrice + scheduledAnnualTransactions ร annualPriceWhere
- transactions
- Transactions (operational units)Source: Business record
- scheduledMonthlyTransactions
- Scheduled monthly charges (whole transactions)Source: User decision
- monthlyPrice
- Monthly price (currency units)Source: Business record
- scheduledAnnualTransactions
- Scheduled annual charges (whole transactions)Source: User decision
- annualPrice
- Annual price (currency units)Source: Business record
- subscriptionBilledPotentialRevenue
- Billed potential revenue (currency units)Source: Calculated output
subscriptionCollectedGrossRevenue = successfulMonthlyTransactions ร monthlyPrice + successfulAnnualTransactions ร annualPriceWhere
- transactions
- Transactions (operational units)Source: Business record
- successfulMonthlyTransactions
- Successful monthly charges (whole transactions)Source: Business record
- monthlyPrice
- Monthly price (currency units)Source: Business record
- successfulAnnualTransactions
- Successful annual charges (whole transactions)Source: Business record
- annualPrice
- Annual price (currency units)Source: Business record
- subscriptionCollectedGrossRevenue
- Collected gross revenue (currency units)Source: Calculated output
subscriptionFailedRevenue = subscriptionBilledPotentialRevenue โ subscriptionCollectedGrossRevenueWhere
- subscriptionBilledPotentialRevenue
- Billed potential revenue (currency units)Source: Calculated output
- subscriptionCollectedGrossRevenue
- Collected gross revenue (currency units)Source: Calculated output
- subscriptionFailedRevenue
- Failed revenue (currency units)Source: Calculated output
subscriptionGrossFees = subscriptionCollectedGrossRevenue ร percentageFee + (successfulMonthlyTransactions + successfulAnnualTransactions) ร fixedFeeWhere
- transactions
- Transactions (operational units)Source: Business record
- successfulMonthlyTransactions
- Successful monthly charges (whole transactions)Source: Business record
- successfulAnnualTransactions
- Successful annual charges (whole transactions)Source: Business record
- percentageFee
- Percentage fee (decimal rate)Source: Business record
- fixedFee
- Fixed fee (currency units per successful transaction)Source: Business record
- subscriptionCollectedGrossRevenue
- Collected gross revenue (currency units)Source: Calculated output
- subscriptionGrossFees
- Subscription gross fees (currency units)Source: Calculated output
subscriptionFeeRefunds = subscriptionGrossFees ร refundRate ร refundableFeeRateWhere
- refundRate
- Refund rate (decimal rate)Source: User assumption
- refundableFeeRate
- Refundable fee share (decimal rate)Source: Business record
- subscriptionGrossFees
- Subscription gross fees (currency units)Source: Calculated output
- subscriptionFeeRefunds
- Subscription fee refunds (currency units)Source: Calculated output
subscriptionFailedPaymentCost = ((scheduledMonthlyTransactions โ successfulMonthlyTransactions) + (scheduledAnnualTransactions โ successfulAnnualTransactions)) ร failedPaymentCostPerAttemptWhere
- transactions
- Transactions (operational units)Source: Business record
- scheduledMonthlyTransactions
- Scheduled monthly charges (whole transactions)Source: User decision
- successfulMonthlyTransactions
- Successful monthly charges (whole transactions)Source: Business record
- scheduledAnnualTransactions
- Scheduled annual charges (whole transactions)Source: User decision
- successfulAnnualTransactions
- Successful annual charges (whole transactions)Source: Business record
- failedPaymentCostPerAttempt
- Failed-payment cost per attempt (currency units per failed attempt)Source: Business record
- subscriptionFailedPaymentCost
- Failed-payment cost (currency units)Source: Calculated output
subscriptionNetFeeLeakage = subscriptionGrossFees โ subscriptionFeeRefunds + subscriptionFailedPaymentCostWhere
- subscriptionGrossFees
- Subscription gross fees (currency units)Source: Calculated output
- subscriptionFeeRefunds
- Subscription fee refunds (currency units)Source: Calculated output
- subscriptionFailedPaymentCost
- Failed-payment cost (currency units)Source: Calculated output
- subscriptionNetFeeLeakage
- Net fee leakage (currency units)Source: Calculated output
subscriptionEffectiveLeakageRate = subscriptionNetFeeLeakage รท subscriptionCollectedGrossRevenueWhere
- subscriptionCollectedGrossRevenue
- Collected gross revenue (currency units)Source: Calculated output
- subscriptionNetFeeLeakage
- Net fee leakage (currency units)Source: Calculated output
- subscriptionEffectiveLeakageRate
- Effective leakage rate (decimal rate)Source: Calculated output
Money inputs and outputs use the currency selected in the scenario without changing the canonical methodology. Rates, margins, utilisation and buffers are entered as percentages and converted to decimal values for calculation.
2. Worked example
Input assumptions
The worked rows below come directly from the registered engine and visible default fixture.
Calculation and outputs
Example
The worked rows below come directly from the registered engine and visible default fixture.
- Weighted Fee Per Transaction
- 3.07 currency units
- Weighted Effective Rate
- 3.1%
- Total Current Fees
- 3,072 currency units
- Total Alternative Fees
- 2,596 currency units
- Crossover Transactions
- 174
- Billed potential revenue
- 4,000 currency units
- Collected gross revenue
- 3,400 currency units
- Failed revenue
- 600 currency units
- Subscription gross fees
- 131.4 currency units
- Subscription fee refunds
- 6.57 currency units
- Failed-payment cost
- 18 currency units
- Net fee leakage
- 142.83 currency units
- Effective leakage rate
- 4.2%
The exact engine-derived outputs are shown in the labelled rows below.
Interpretation
The fee comparison shows whether the alternative contract costs less for the entered transaction cohort and where its fixed fee crosses over.
3. Validation and boundary checks
- Scheduled and successful charge counts must be finite non-negative whole numbers; successful charges cannot exceed scheduled charges.
- Prices, fixed fees and failed-payment cost per attempt must be finite and non-negative.
- Percentage fee is below 100%; refund and refundable-fee rates remain between 0% and 100%.
- Billed potential, collected and failed revenue reconcile exactly; fees apply only to successful charges.
- Net fee leakage equals gross fees less fee refunds plus explicit failed-payment cost before display rounding.
- Effective leakage rate is explicitly unreachable when collected gross revenue is zero.
- All values must be finite and inside the visible validation boundaries.
- Rates are entered as percentages and calculations retain decimal precision.
- Money uses one consistent ex-tax currency and planning period.
4. Assumptions and source classification
- Provider fees, exchange rates, return behaviour and operating performance are user-entered scenarios.
- No provider plan, jurisdiction, tax rate or market benchmark is embedded.
- The engine retains full precision and display formatting never feeds back into calculation.
- Monthly and annual cadence values are editable user scenarios inside the owner workflow.
- The entered refund rate and refundable-fee share apply symmetrically to the current and alternative payment contracts.
- No processor fee, refund rule or billing-cadence benchmark is embedded.
This comparison calculator has no current policy-data dependency. Its commercial assumptions are user supplied. Registered family-level regression suites exercise the shared business-logic engine and worked-result reconciliation.
5. Limitations
- The model does not forecast demand, provider changes, exchange rates or operational performance.
- It does not replace accounting, tax, legal or financial advice.
- Processor fees, refundability and failed-payment costs are editable contract inputs; chargeback rules, reserves, settlement timing, tax and provider eligibility are not modelled.
This is educational decision support, not tax, accounting, legal or financial advice. Check the treatment of your actual transactions under the rules that apply to your business and seek qualified advice where appropriate.
6. Update and evidence policy
Registered family-level suites test formula invariants and example reconciliation; the release ledger records that coverage without claiming a separate oracle for every line of public copy. There is no official threshold or benchmark to refresh for this comparison calculator. Commercial inputs remain user-supplied because they vary by business and contract.
Change history
- : Initial public release of the planner and methodology after pre-launch calculation, content, source and interaction review.
Related reading
Guides to interpret the decision and its assumptions.
- How Fixed Payment Fees Affect Small Orders
Use a neutral fixed-plus-percentage scenario to see why the same fee schedule produces a different effective rate at different order values.
Read guide