feat: Implement the promoter event creation
- Promoter can now create an event in draft mode - Place is found based on address and long/lat are automatically deducted from it - Slug is forged using the *slug* npm package instead of custom code
This commit is contained in:
410
docs/pricing-model-recommendations.md
Normal file
410
docs/pricing-model-recommendations.md
Normal file
@@ -0,0 +1,410 @@
|
||||
# Pricing Model Recommendations
|
||||
|
||||
## Current Problem Analysis
|
||||
|
||||
### Current Model: €1 Fixed Fee Per Order
|
||||
- **Revenue**: €1.00 per order (regardless of ticket price)
|
||||
- **Stripe Costs**: 1.15% + €0.25 per transaction
|
||||
- **Result**: Losing money on higher-priced tickets
|
||||
|
||||
### Financial Impact Examples
|
||||
| Ticket Price | Current Revenue | Stripe Fees | Net Profit/Loss |
|
||||
|--------------|----------------|-------------|-----------------|
|
||||
| €20 | €1.00 | €0.48 | **+€0.52** ✅ |
|
||||
| €50 | €1.00 | €0.83 | **+€0.17** ⚠️ |
|
||||
| €100 | €1.00 | €1.40 | **-€0.40** ❌ |
|
||||
| €200 | €1.00 | €2.55 | **-€1.55** ❌ |
|
||||
|
||||
**Critical Issue**: We lose money on any ticket above €65 (€1.00 - (€65 × 1.15% + €0.25) = -€0.00)
|
||||
|
||||
## Recommended Pricing Models
|
||||
|
||||
### Model 1: Percentage-Based (Recommended)
|
||||
```
|
||||
Platform Fee = 3-5% of ticket price
|
||||
```
|
||||
|
||||
**Advantages:**
|
||||
- Always profitable regardless of ticket price
|
||||
- Scales naturally with event value
|
||||
- Simple for promoters to understand
|
||||
- Industry standard approach
|
||||
|
||||
**Financial Impact:**
|
||||
| Ticket Price | 3.5% Fee | Stripe Costs | Net Profit |
|
||||
|--------------|----------|--------------|------------|
|
||||
| €20 | €0.70 | €0.48 | €0.22 |
|
||||
| €50 | €1.75 | €0.83 | €0.92 |
|
||||
| €100 | €3.50 | €1.40 | €2.10 |
|
||||
| €200 | €7.00 | €2.55 | €4.45 |
|
||||
|
||||
### Model 2: Hybrid Model (Best)
|
||||
```
|
||||
Platform Fee = €1.50 + 2% of ticket price
|
||||
```
|
||||
|
||||
**Advantages:**
|
||||
- Higher base fee covers Stripe fixed costs
|
||||
- Percentage component scales with value
|
||||
- Better margins on low-priced tickets
|
||||
- Predictable minimum revenue per transaction
|
||||
|
||||
**Financial Impact:**
|
||||
| Ticket Price | Hybrid Fee | Stripe Costs | Net Profit |
|
||||
|--------------|------------|--------------|------------|
|
||||
| €20 | €1.90 | €0.48 | €1.42 |
|
||||
| €50 | €2.50 | €0.83 | €1.67 |
|
||||
| €100 | €3.50 | €1.40 | €2.10 |
|
||||
| €200 | €5.50 | €2.55 | €2.95 |
|
||||
|
||||
### Model 3: Tiered Flat Fees
|
||||
```
|
||||
€0-25: €1.50 fee
|
||||
€26-75: €2.50 fee
|
||||
€76-150: €3.50 fee
|
||||
€151+: €5.00 fee
|
||||
```
|
||||
|
||||
**Advantages:**
|
||||
- Predictable fees for promoters
|
||||
- Simple pricing tiers
|
||||
- Better than current model
|
||||
|
||||
**Disadvantages:**
|
||||
- Less scalable than percentage
|
||||
- Requires tier management
|
||||
|
||||
## Industry Benchmarks
|
||||
|
||||
| Platform | Fee Structure | Effective Rate (€50 ticket) |
|
||||
|-------------|----------------------------|------------------------------|
|
||||
| Eventbrite | 3.7% + €0.59 | €2.44 |
|
||||
| Universe | 2.5% + €0.49 | €1.74 |
|
||||
| Ticketfly | 4% + €0.99 | €2.99 |
|
||||
| **Recommended** | **3.5%** | **€1.75** |
|
||||
|
||||
## Implementation Strategy
|
||||
|
||||
### Phase 1: Immediate Implementation (Week 1-2)
|
||||
1. **Switch to 3.5% percentage model** for new events
|
||||
2. **Grandfathering**: Existing published events keep €1 pricing
|
||||
3. **Communication**: Notify promoters 1 week before change
|
||||
4. **Update pricing display** on event creation and checkout pages
|
||||
|
||||
### Phase 2: Optimization (Month 2-3)
|
||||
1. **A/B Test different rates**: 3%, 3.5%, 4%
|
||||
2. **Monitor metrics**:
|
||||
- Promoter signup rate
|
||||
- Event creation volume
|
||||
- Revenue per transaction
|
||||
- Customer complaints
|
||||
3. **Adjust based on data**
|
||||
|
||||
### Phase 3: Premium Tiers (Month 4-6)
|
||||
1. **Volume discounts** for high-performing promoters:
|
||||
- Standard: 3.5%
|
||||
- Bronze (€5K+ monthly): 3%
|
||||
- Silver (€15K+ monthly): 2.5%
|
||||
- Gold (€50K+ monthly): 2%
|
||||
2. **Annual contracts** with reduced rates
|
||||
3. **White-label options** for enterprise clients
|
||||
|
||||
## Revenue Projections
|
||||
|
||||
### Current State (€1 fixed)
|
||||
- Average ticket price: €35
|
||||
- Monthly orders: 1,000
|
||||
- Monthly revenue: €1,000
|
||||
- Monthly Stripe costs: €628
|
||||
- **Net monthly profit: €372**
|
||||
|
||||
### With 3.5% Model
|
||||
- Monthly revenue: €1,225 (3.5% × €35 × 1,000)
|
||||
- Monthly Stripe costs: €628
|
||||
- **Net monthly profit: €597** (+60% increase)
|
||||
|
||||
### With Growth (3.5% model + 20% more events)
|
||||
- Monthly orders: 1,200 (20% growth from competitive pricing)
|
||||
- Monthly revenue: €1,470
|
||||
- **Net monthly profit: €842** (+126% increase)
|
||||
|
||||
## Technical Implementation
|
||||
|
||||
### Database Changes
|
||||
```ruby
|
||||
# Add to events table
|
||||
add_column :events, :commission_rate, :decimal, precision: 5, scale: 4, default: 0.035
|
||||
|
||||
# Add to users table (for premium tiers)
|
||||
add_column :users, :commission_tier, :string, default: 'standard'
|
||||
```
|
||||
|
||||
### Fee Calculation Logic
|
||||
```ruby
|
||||
class Order < ApplicationRecord
|
||||
def calculate_platform_fee
|
||||
event = self.event
|
||||
commission_rate = event.commission_rate || 0.035
|
||||
base_amount = total_amount_cents / 100.0
|
||||
(base_amount * commission_rate * 100).to_i # return in cents
|
||||
end
|
||||
|
||||
def platform_fee_euros
|
||||
calculate_platform_fee / 100.0
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
### Promoter Dashboard Updates
|
||||
- Show fee breakdown on event creation
|
||||
- Display projected fees during ticket setup
|
||||
- Add revenue vs. fees analytics
|
||||
- Export fee reports for tax purposes
|
||||
|
||||
## Communication Plan
|
||||
|
||||
### Email to Existing Promoters
|
||||
**Subject**: "Important Pricing Update - New Fair Fee Structure"
|
||||
|
||||
**Key Points**:
|
||||
- Current model loses money on higher-priced tickets
|
||||
- New model ensures platform sustainability
|
||||
- Better features and support with improved revenue
|
||||
- Existing events unchanged, new events only
|
||||
- Competitive with industry standards
|
||||
|
||||
### Website Updates
|
||||
- Update pricing page with clear fee calculator
|
||||
- Add FAQ about fee structure
|
||||
- Transparency about what fees cover (development, support, payment processing)
|
||||
|
||||
## Risk Mitigation
|
||||
|
||||
### Potential Issues
|
||||
1. **Promoter backlash**: Higher fees on expensive tickets
|
||||
2. **Competitor advantage**: Other platforms with lower fees
|
||||
3. **Reduced event creation**: Promoters may create fewer events
|
||||
|
||||
### Mitigation Strategies
|
||||
1. **Value communication**: Emphasize platform improvements and reliability
|
||||
2. **Competitive analysis**: Position as "fair and sustainable" vs. competitors
|
||||
3. **Volume incentives**: Quick path to reduced rates for active promoters
|
||||
4. **Feature rollout**: Launch new promoter features alongside pricing change
|
||||
|
||||
## Success Metrics
|
||||
|
||||
### Financial KPIs
|
||||
- Monthly recurring revenue growth
|
||||
- Average revenue per transaction
|
||||
- Profit margin improvement
|
||||
- Customer acquisition cost vs. lifetime value
|
||||
|
||||
### Product KPIs
|
||||
- Promoter retention rate
|
||||
- New event creation volume
|
||||
- Average ticket prices
|
||||
- Customer satisfaction scores
|
||||
|
||||
## Conclusion
|
||||
|
||||
The current €1 fixed fee model is financially unsustainable and actually costs us money on higher-value transactions. Moving to a **3.5% commission model** will:
|
||||
|
||||
1. **Ensure profitability** at all ticket price levels
|
||||
2. **Align with industry standards** for competitiveness
|
||||
3. **Scale revenue** naturally with platform growth
|
||||
4. **Fund platform improvements** and better promoter tools
|
||||
|
||||
**Recommendation**: Implement 3.5% commission model immediately, with grandfathering for existing events and a clear communication plan to promoters.
|
||||
|
||||
## Fee Collection Method: Industry Standard
|
||||
|
||||
### Current Approach vs Industry Standard
|
||||
|
||||
**Current Model (Not Recommended)**:
|
||||
```
|
||||
Customer pays: €50 + €1 fee = €51
|
||||
Promoter receives: €50
|
||||
Platform keeps: €1
|
||||
```
|
||||
|
||||
**Industry Standard (Recommended)**:
|
||||
```
|
||||
Customer pays: €50 (clean price)
|
||||
Platform keeps: €1.75 (3.5% of €50)
|
||||
Promoter receives: €48.25
|
||||
```
|
||||
|
||||
### How Major Platforms Handle Fees
|
||||
|
||||
**Eventbrite:**
|
||||
- Promoter sets: €50 ticket
|
||||
- Customer pays: €50
|
||||
- Eventbrite keeps: €1.85 (3.7%)
|
||||
- Promoter receives: €48.15
|
||||
|
||||
**Ticketmaster:**
|
||||
- Promoter sets: €50 ticket
|
||||
- Customer pays: €50
|
||||
- Ticketmaster keeps: €5-7.50 (10-15%)
|
||||
- Promoter receives: €42.50-45
|
||||
|
||||
**Universe (by Ticketmaster):**
|
||||
- Promoter sets: €50 ticket
|
||||
- Customer pays: €50
|
||||
- Universe keeps: €1.74 (2.5% + €0.49)
|
||||
- Promoter receives: €48.26
|
||||
|
||||
### Why Deducting from Payout is Better
|
||||
|
||||
#### 1. Customer Experience
|
||||
- **Price transparency**: Customer sees exactly what they expect to pay
|
||||
- **No surprise fees**: Reduces cart abandonment
|
||||
- **Competitive pricing**: Easier to compare with other events
|
||||
|
||||
#### 2. Promoter Benefits
|
||||
- **Marketing simplicity**: Can advertise clean prices
|
||||
- **Psychological pricing**: €50 sounds better than €51.75
|
||||
- **Competitive advantage**: Not adding extra fees to customer
|
||||
|
||||
#### 3. Platform Benefits
|
||||
- **Higher conversion rates**: No fee-shock at checkout
|
||||
- **Better promoter adoption**: Easier to sell to event organizers
|
||||
- **Industry standard**: Follows established practices
|
||||
|
||||
### Psychological Impact
|
||||
|
||||
**Adding Fees to Customer (Current)**:
|
||||
- Customer thinks: "€50 ticket... oh wait, €51.75 total" 😤
|
||||
- Cart abandonment risk
|
||||
|
||||
**Deducting from Payout (Recommended)**:
|
||||
- Customer thinks: "€50 ticket, €50 total" 😊
|
||||
- Smooth purchase experience
|
||||
|
||||
### Promoter Dashboard Display
|
||||
```
|
||||
Ticket Price: €50.00
|
||||
Platform Fee (3.5%): -€1.75
|
||||
Your Earnings per Ticket: €48.25
|
||||
```
|
||||
|
||||
### Communication to Promoters
|
||||
**Before:** "Platform charges €1 per order to customers"
|
||||
**After:** "Set your desired revenue per ticket, we handle the rest"
|
||||
|
||||
**Example:**
|
||||
- Promoter wants €48.25 net per ticket
|
||||
- They should set ticket price at €50
|
||||
- Customer pays €50, promoter gets €48.25
|
||||
- Clean, simple, industry standard
|
||||
|
||||
## Competitive Analysis
|
||||
|
||||
### Main Competitor: €1 Flat Fee
|
||||
|
||||
Our main competitor charges a simple €1 flat fee per order. Here's how our models compare:
|
||||
|
||||
### Hybrid Model vs Competitor Analysis
|
||||
|
||||
**Hybrid Model**: €1.50 + 2% of ticket price
|
||||
**Competitor**: €1.00 flat fee
|
||||
|
||||
| Ticket Price | Competitor Fee | Hybrid Fee | Difference | Competitive Position |
|
||||
|--------------|----------------|------------|------------|---------------------|
|
||||
| €10 | €1.00 | €1.70 | +€0.70 | More expensive |
|
||||
| €25 | €1.00 | €2.00 | +€1.00 | More expensive |
|
||||
| €50 | €1.00 | €2.50 | +€1.50 | More expensive |
|
||||
| **€75** | **€1.00** | **€3.00** | **+€2.00** | **Break-even point** |
|
||||
| €100 | €1.00 | €3.50 | +€2.50 | Much more expensive |
|
||||
|
||||
### Alternative Competitive Models
|
||||
|
||||
#### Option 1: Low-End Competitive Model
|
||||
```
|
||||
Platform Fee = €0.50 + 1.5% of ticket price
|
||||
```
|
||||
|
||||
| Ticket Price | Competitor Fee | Our Fee | Difference | Position |
|
||||
|--------------|----------------|---------|------------|----------|
|
||||
| €10 | €1.00 | €0.65 | **-€0.35** | ✅ **Cheaper** |
|
||||
| €25 | €1.00 | €0.88 | **-€0.12** | ✅ **Cheaper** |
|
||||
| €50 | €1.00 | €1.25 | +€0.25 | ⚠️ Slightly higher |
|
||||
| €100 | €1.00 | €2.00 | +€1.00 | More expensive |
|
||||
|
||||
#### Option 2: Modified Hybrid Model
|
||||
```
|
||||
Platform Fee = €0.75 + 2.5% of ticket price
|
||||
```
|
||||
|
||||
| Ticket Price | Competitor Fee | Our Fee | Difference | Position |
|
||||
|--------------|----------------|---------|------------|----------|
|
||||
| €10 | €1.00 | €1.00 | **Equal** | ✅ Competitive |
|
||||
| €25 | €1.00 | €1.38 | +€0.38 | ⚠️ Slightly higher |
|
||||
| €40 | €1.00 | €1.75 | +€0.75 | **Break-even** |
|
||||
| €75 | €1.00 | €2.63 | +€1.63 | Much more expensive |
|
||||
|
||||
### Competitive Strategy Recommendations
|
||||
|
||||
#### 1. Value Differentiation Approach
|
||||
Since we'll be more expensive on higher-priced tickets, focus on premium positioning:
|
||||
|
||||
**Value Proposition:**
|
||||
- "We're not the cheapest, we're the most complete"
|
||||
- Advanced analytics dashboard
|
||||
- Real-time sales tracking
|
||||
- Professional promoter tools
|
||||
- Superior customer support
|
||||
- Platform reliability and sustainability
|
||||
|
||||
#### 2. Market Segmentation Strategy
|
||||
|
||||
**Target Market Positioning:**
|
||||
- **Competitor**: Best for small, simple events (€10-30 tickets)
|
||||
- **Us**: Best for professional events (€40+ tickets) with serious promoters
|
||||
|
||||
#### 3. Hybrid Competitive Approach
|
||||
|
||||
**Tiered Offering:**
|
||||
- **Basic Plan**: Match competitor at €1 flat fee (limited features)
|
||||
- **Professional Plan**: Hybrid model with premium features
|
||||
- **Enterprise Plan**: Custom pricing with full feature set
|
||||
|
||||
#### 4. Volume-Based Competitive Response
|
||||
|
||||
**Free Tier Strategy:**
|
||||
- First 3 events per month at competitor's €1 rate
|
||||
- Volume discounts for high-activity promoters
|
||||
- Loyalty rewards for long-term customers
|
||||
|
||||
### Marketing Positioning
|
||||
|
||||
#### "Choose Your Business Model" Campaign
|
||||
|
||||
**For Simple Events (Under €40):**
|
||||
- "Need basic ticketing? Our competitor works fine"
|
||||
- "Pay €1 flat fee for simple events"
|
||||
|
||||
**For Professional Events (€40+):**
|
||||
- "Serious about your business? You need serious tools"
|
||||
- "Fair percentage-based pricing"
|
||||
- "Advanced analytics, marketing tools, priority support"
|
||||
|
||||
#### Brand Positioning Statement
|
||||
**"We're the Shopify of Events - Built for Growth"**
|
||||
|
||||
This positions us as the premium option for serious promoters while acknowledging the competitor's advantage on small events.
|
||||
|
||||
### Implementation Recommendation
|
||||
|
||||
Given the competitive landscape, we recommend **Option 1** (€0.50 + 1.5%):
|
||||
|
||||
**Advantages:**
|
||||
- Competitive on low-priced tickets
|
||||
- Still profitable at all price points
|
||||
- Better positioning against main competitor
|
||||
- Appeals to both small and large event organizers
|
||||
|
||||
**Financial Impact:**
|
||||
- Lower fees on tickets under €33
|
||||
- Competitive fees on tickets €33-66
|
||||
- Premium pricing on high-value tickets justified by features
|
||||
Reference in New Issue
Block a user