# Financial Controls: Payment Liability, Refund Stress Test, KPI Tracking
**Date:** 2026-02-26 | **Author:** Harper (Finance/Legal)
**For:** Michael — pre-launch financial controls verification

---

## 1. STRIPE PAYMENT PROCESSOR LIABILITY ANALYSIS

### Fee Structure (AU, 2026)

| Fee Type | Amount | On a $50 Hire |
|----------|--------|---------------|
| Domestic card processing | 1.70% + $0.30 | $1.15 |
| International card | 2.90% + $0.30 | $1.75 |
| **Dispute/chargeback fee** | **$25 AUD** (non-refundable) | **$25** |
| Dispute counter fee (if you fight it) | +$15 AUD | +$15 |
| Smart Disputes (Stripe AI fights for you) | 30% of recovered amount (if won) | $15 if won |
| Refund processing | $0 (but original processing fee not returned) | -$1.15 lost |

### The Chargeback Problem at $50/Hire

**This is critical.** On a $50 transaction:
- Stripe's chargeback fee is **$25 AUD** — that's **50% of the transaction value**
- If the contractor disputes with their bank instead of requesting a refund through RateRight, we lose: $50 (refunded to customer) + $25 (dispute fee) = **$75 total loss per chargeback**
- Even if we WIN the dispute, it costs: $15 counter fee + time. At $50 transactions, fighting chargebacks is almost never worth it.

### Liability Limits

| Concern | Status | Detail |
|---------|--------|--------|
| **Per-transaction liability** | ✅ Manageable | Max exposure per hire: $75 (charge reversed + dispute fee). At $50 ticket size, individual chargebacks don't threaten the company. |
| **Dispute rate threshold** | ⚠️ Must monitor | Visa/Mastercard monitor dispute rates. **>0.75% dispute rate = warning. >1% = potential account restriction.** At 10 hires/month, 1 chargeback = 10% dispute rate — instantly in danger zone. Stripe could freeze account. |
| **Account reserve/hold** | ⚠️ Possible | If Stripe flags the account as high-risk (new business, no history, services marketplace), they may hold 10-25% of payouts in reserve for 90 days. This is automatic and common for new marketplace accounts. |
| **Account termination** | ⚠️ Extreme case | If dispute rate exceeds 1% sustained, Stripe can terminate the account with 30 days notice. Alternative processors (Square, Braintree) would also see the dispute history. |

### Mitigation Strategy

| # | Action | Purpose | Owner |
|---|--------|---------|-------|
| 1 | **Proactive refund policy** | If a contractor wants money back, process the refund BEFORE they dispute with their bank. A refund costs $1.15 (lost processing fee). A chargeback costs $25-$75. | Michael |
| 2 | **"Contact us first" on every receipt** | Stripe receipts + confirmation emails should prominently say: "Questions? Contact support@rateright.com.au or 0468 087 171 BEFORE contacting your bank." | Builder |
| 3 | **Fast refund processing (<24 hours)** | The #1 reason people dispute with their bank: the merchant was too slow to respond. If Michael processes refunds within 24 hours, most chargebacks are prevented. | Michael |
| 4 | **Stripe Radar (fraud prevention)** | Enabled by default on Stripe. Blocks suspicious cards. Costs $0.05/transaction (screened) or $0.07/transaction (Radar for Fraud Teams). At $50/hire, the $0.05 is worth it. | Verify enabled in Stripe Dashboard |
| 5 | **3D Secure authentication** | Shifts chargeback liability to the card issuer for verified transactions. Slight friction (extra authentication step) but major protection. Recommend enabling for all transactions. | Builder (Stripe config) |
| 6 | **Track dispute rate from Day 1** | If dispute rate hits 0.5%, immediate review. If 0.75%, stop all marketing and fix root cause. | Harper (monitoring) + Cog (data) |

### Adequate for Launch Volume?

| Volume | Monthly Hires | Tolerable Chargebacks (<0.75%) | Financial Exposure |
|--------|-------------|-------------------------------|-------------------|
| Month 1 | 2-6 | 0 (even 1 = 17-50% rate) | $0-$75 |
| Month 3 | 8-14 | 0 (even 1 = 7-13% rate) | $0-$75 |
| Month 6 | 20-28 | 0 (still too few for any chargeback) | $0-$75 |
| Month 12 | 40-60 | 0-1 (still marginal) | $0-$150 |

**The brutal reality: at low volumes, RateRight cannot tolerate ANY chargebacks.** One dispute in a month of 5 hires = 20% dispute rate = Stripe flags the account. The refund policy (Blocker 3 from earlier) isn't just customer service — it's **payment processor survival.** Process refunds proactively so contractors never need to dispute with their bank.

**Verdict: Stripe is adequate for launch volume, BUT the refund policy is load-bearing infrastructure, not just nice-to-have.** Enable 3D Secure, add "contact us first" to receipts, and process refunds within 24 hours.

---

## 2. EMERGENCY CASH FLOW PLAN: REFUND SPIKE SCENARIO

### What Could Cause a Refund Spike?

| Trigger | Probability | Refund Volume | Timeline |
|---------|------------|---------------|----------|
| **Empty marketplace** — contractors post, get 0 matches | HIGH (if supply not seeded first) | 100% of hires | Week 2-4 |
| **Worker no-shows** — matched workers don't appear | Medium | 10-30% of hires | Ongoing |
| **Algorithm failure** — terrible match quality | Low-Medium | 20-50% of hires | Week 2+ |
| **Payment confusion** — contractors charged when they didn't intend to hire | Low | 5-15% of transactions | Week 1+ |
| **Viral negative event** — one very public bad experience | Very Low | Spike of 5-10 refund demands | Any time |

### Stress Test: Refund Spike Scenarios

**Scenario A: 25% refund rate (bad but survivable)**

| Month | Hires | Refunds (25%) | Refund Cost | Lost Processing Fees | Net Revenue | Cash Impact vs No Refunds |
|-------|-------|--------------|-------------|---------------------|-------------|--------------------------|
| 1 | 5 | 1 | $50 | $1.15 | $194 | -$51 |
| 3 | 12 | 3 | $150 | $3.45 | $440 | -$153 |
| 6 | 25 | 6 | $300 | $6.90 | $928 | -$307 |

**Total 6-month impact: -$307. Irrelevant against $24K cash.**

**Scenario B: 50% refund rate (crisis — product is broken)**

| Month | Hires | Refunds (50%) | Refund Cost | Lost Fees | Net Revenue | Cash Impact |
|-------|-------|--------------|-------------|-----------|-------------|-------------|
| 1 | 5 | 3 | $150 | $3.45 | $98 | -$153 |
| 3 | 12 | 6 | $300 | $6.90 | $293 | -$307 |
| 6 | 25 | 13 | $650 | $14.95 | $586 | -$665 |

**Total 6-month impact: -$665. Still manageable financially but product is clearly broken. Stop marketing, fix matching.**

**Scenario C: 100% refund rate (catastrophe — product doesn't work at all)**

| Month | Hires | Refunds (100%) | Refund Cost | Lost Fees | Net Revenue | Cash Impact |
|-------|-------|---------------|-------------|-----------|-------------|-------------|
| 1 | 5 | 5 | $250 | $5.75 | $0 | -$256 |
| 3 | 0 (stopped marketing) | 0 | $0 | $0 | $0 | -$256 total |

**Even total product failure only costs ~$256 in refunds before we'd stop marketing.** The financial risk of refunds is negligible. The reputational risk is catastrophic, but that's a product problem not a cash flow problem.

### Emergency Response Protocol

| Trigger | Action | Timeline |
|---------|--------|----------|
| **Refund rate >15%** (2+ refunds in a month of <15 hires) | Review: What's causing refunds? Match quality? No-shows? Confusion? | Within 48 hours |
| **Refund rate >25%** | PAUSE contractor marketing. Fix root cause before acquiring more contractors. | Immediately |
| **Refund rate >50%** | STOP all marketing. Emergency product review. Consider pausing platform. | Immediately |
| **Any chargeback** (contractor goes to bank, not us) | Process refund immediately (faster than bank dispute timeline). Add "contact us first" to all touchpoints. | Within 4 hours |
| **Stripe flags account** (dispute rate warning) | Process all pending refund requests immediately. Contact Stripe support proactively. Enable 3D Secure if not already. | Within 24 hours |

### Cash Reserve for Refunds

| Period | Max Hires | Max Refunds (worst case) | Max Refund Cost | Reserve Needed |
|--------|-----------|-------------------------|----------------|---------------|
| Month 1 | 6 | 6 | $300 | $300 |
| Month 1-3 | 25 | 25 | $1,250 | $1,250 |
| Month 1-6 | 80 | 80 | $4,000 | $4,000 |

**Recommended refund reserve: $500 (Month 1), $1,500 (Month 1-3).** This is included in the $5,000 risk reserve I recommended in the 30-day model. No additional capital needed.

**Bottom line: Refund spikes cannot threaten RateRight's cash position.** Even 100% refund rate on 6 months of hires = $4,000 — that's 16% of the bank balance. The real damage from refunds is reputational, not financial.

---

## 3. KPI TRACKING SYSTEM — DAY 1

### The 12 KPIs That Matter

Organised into three categories: Acquisition, Monetisation, Efficiency.

#### Acquisition KPIs (Are we growing?)

| # | KPI | Formula | Target (Month 1) | Red Flag | Track |
|---|-----|---------|------------------|----------|-------|
| A1 | **Worker CAC** | Marketing spend ÷ worker signups | <$5/signup | >$15/signup | Weekly |
| A2 | **Contractor CAC** | Marketing spend ÷ contractor signups | <$10/signup | >$25/signup | Weekly |
| A3 | **Worker signup rate** | Signups ÷ page visits (by channel) | >20% | <10% | Daily (Week 1), Weekly after |
| A4 | **Contractor signup rate** | Signups ÷ leads contacted | >25% | <10% | Weekly |

#### Monetisation KPIs (Are we making money?)

| # | KPI | Formula | Target (Month 1) | Red Flag | Track |
|---|-----|---------|------------------|----------|-------|
| M1 | **Match rate** | Hires ÷ jobs posted | >20% | <10% | Daily (Week 1), Weekly after |
| M2 | **Revenue per hire** | Net revenue after Stripe fees & refunds | >$45 | <$35 | Per transaction |
| M3 | **Monthly revenue** | Total hires × net revenue | >$100 (Month 1) | $0 after Day 21 | Weekly |
| M4 | **Refund rate** | Refunds ÷ total hires | <10% | >25% | Per transaction |

#### Efficiency KPIs (Are we spending well?)

| # | KPI | Formula | Target (Month 1) | Red Flag | Track |
|---|-----|---------|------------------|----------|-------|
| E1 | **Burn rate** | Total monthly costs | <$1,100 | >$1,500 | Monthly |
| E2 | **Runway** | Cash balance ÷ monthly burn | >24 months | <18 months | Monthly |
| E3 | **LTV:CAC ratio** | Lifetime revenue per contractor ÷ CAC | >3:1 (by Month 6) | <1:1 | Quarterly (insufficient data Month 1) |
| E4 | **Revenue per marketing $** | Revenue ÷ marketing spend | >$0.50 | <$0.10 | Monthly |

### LTV Estimation Framework

We can't calculate real LTV in Month 1 — we need repeat hire data. But we can estimate:

| Assumption | Value | Basis |
|-----------|-------|-------|
| Hires per contractor per year (estimate) | 3-6 | Construction contractors hire frequently; seasonality affects |
| Net revenue per hire | $48.85 | $50 - $1.15 Stripe fee |
| Average contractor lifespan (estimate) | 2-3 years | Marketplace retention benchmarks |
| **Estimated LTV** | **$293-$879** | 3-6 hires × $48.85 × 2-3 years |
| Contractor CAC target | <$10 | Susan's blended CAC |
| **LTV:CAC ratio** | **29:1 to 88:1** | Exceptional if estimates hold |

**These are estimates only.** Real LTV data requires 6+ months of hire history. Track repeat hire rate from Month 1 — it's the earliest signal of LTV.

### Tracking Implementation

**I don't build tracking systems (hard rule — code goes through Builder).** But here's what's needed:

#### Option A: Simple Spreadsheet (Day 1 — Michael can do this)

| Date | Channel | New Workers | New Contractors | Jobs Posted | Matches | Hires | Revenue | Refunds | Marketing $ |
|------|---------|------------|----------------|-------------|---------|-------|---------|---------|-------------|
| Mar 1 | Facebook | 3 | 0 | 0 | 0 | 0 | $0 | $0 | $0 |
| Mar 1 | Hostel | 0 | 0 | 0 | 0 | 0 | $0 | $0 | $73 |
| ... | | | | | | | | | |

**5 minutes/day to update.** Formulas auto-calculate: CAC, match rate, revenue per marketing $, cumulative totals.

#### Option B: Automated Dashboard (Week 2+ — Builder task)

Builder pulls data from:
- Platform DB → signups, jobs, matches, hires
- Stripe API → revenue, refunds, fees
- Marketing spend → manual input or Apollo/Twilio API

Outputs: real-time dashboard with all 12 KPIs, colour-coded red/yellow/green.

**Recommendation: Start with Option A on Day 1. Request Option B from Builder for Week 2.**

### Weekly Financial Review Template

Every Monday, I (Harper) produce a 10-line financial summary:

```
WEEKLY FINANCIAL REVIEW — [Date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Cash balance:      $XX,XXX  (Δ -$XXX from last week)
Revenue (week):    $XXX     (X hires × $48.85)
Refunds (week):    $XX      (X refunds, X% rate)
Marketing (week):  $XXX     (channels: FB $X, hostel $X, SMS $X)
Burn rate (proj):  $X,XXX/month

ACQUISITION: Worker CAC $X.XX | Contractor CAC $X.XX
MONETISATION: Match rate XX% | Revenue/hire $XX.XX
EFFICIENCY: LTV:CAC est. XX:1 | Revenue per marketing $ $X.XX

STATUS: 🟢 On track / ⚠️ Watch [issue] / 🔴 Action needed [issue]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**This goes to Michael + Rivet every Monday.** Takes me 10 minutes with data access (still waiting on AirWallex/Stripe access — Michael confirmed end of Feb).

---

## COMBINED VERDICT

| Control | Status | Adequate for Launch? |
|---------|--------|---------------------|
| Stripe liability limits | ⚠️ Tight at low volume | ✅ Yes — IF refund policy prevents chargebacks and 3D Secure is enabled |
| Refund spike resilience | ✅ Strong | ✅ Yes — even 100% refund rate on 6 months = $4K loss (16% of cash). Financial risk negligible. |
| KPI tracking | ⚠️ Manual until Builder automates | ✅ Yes — spreadsheet Day 1, dashboard Week 2 |

**Financial controls are adequate for launch.** The one non-obvious risk is Stripe account health at low volumes — a single chargeback in a month of 5 hires = 20% dispute rate = account flag. The refund policy is the firewall. Process refunds fast, before contractors go to their bank.
