Appearance
Competition Management
Manage all aspects of competitions from creation to winner selection.
Routes
/admin/competitions- List all competitions/admin/competitions/new- Create new competition/admin/competitions/[id]- Edit competition/admin/competitions/[id]?tab=entries- Manage competition entries/admin/competitions/[id]/instant-wins- Manage instant win prizes
Competitions List
Route
/admin/competitions
Statistics
- Total Competitions - All competitions
- Active - Currently running
- Draft - Not yet published
- Ended - Completed competitions
Features
- Search - Find competitions by title
- Filter - Filter by status (including Archived)
- Sort - Sort by date, status, or entries
- Actions:
- View details
- Edit competition
- View entries
- Forecast sales
- Duplicate competition
- Archive/Delete competition
Filtering Competitions
Filter competitions by status:
- All - Show all competitions
- Active - Currently live
- Draft - Not yet published
- Ended - Closed competitions
- Archived - Hidden from public (See Archiving below)
Creating a Competition
Route
/admin/competitions/new
Steps
- Navigate to
/admin/competitions - Click "Create Competition"
- Fill in competition details through multi-step form:
Step 1: Basic Details
- Title - Competition name
- Description (optional) - Full competition description
- Short Description (optional) - Brief summary
- Tags (optional) - One or more tags for filtering and merchandising
- Video URL (optional) - YouTube/Vimeo URL shown above the prize gallery on the public competition page
Step 2: Prize Information
- Prize Title - What you're giving away
- Prize Description - Detailed prize info
- Prize Value - Retail value
Step 3: Media & Images
- Main Image - Primary competition image (1200x800px)
- Gallery Images - Additional prize photos
- Thumbnail - List view image (400x300px)
Step 4: Tickets & Pricing
- Ticket Price - Cost per entry
- Total Tickets - Total tickets available (previously labelled "Max Tickets")
- Max Per User - Entry limit per user
- Min Tickets - Minimum for draw to proceed
- Default Ticket Quantity - Pre-selected quantity in the ticket selector (optional); also drives the Quick Buy amounts on the competition page
- Exclude from Wallet Credit - Prevent wallet credit from being used on this competition (see Exclude from Wallet Credit)
- Eligibility Criteria (optional) - Restrict entry to users who have reached a minimum lifetime spend (see Eligibility Criteria)
- Access Code (optional) - Require a secret code to unlock the competition (see Access Code Protection)
Step 5: Duration
- Start Date - When competition goes live
- End Date - When entries close
Step 6: Draw Settings
- Draw Method - Manual (with optional RNG-assisted selection), Comps.gg RNG, or Instant Win
- Number of Winners - How many winners to select
- Winner Selection Mode - Unique winners preferred, or allow duplicates (see Unique Winners)
- Auto-draw - Automatically draw on end date
- Auto-draw Badge - When enabled globally in Settings → Homepage, competitions with auto-draw show a half-pill badge on their card
- Review all details
- Click "Create Competition"
- Competition is created in Draft status
Editing a Competition
Route
/admin/competitions/[id]
Sections
The edit page is organized into sections:
- Details - Basic information
- Content - Descriptions and rules
- Tickets/Pricing - Entry configuration
- Draw Settings - Winner selection method
- Media - Images and videos
- SEO - Meta tags and optimization
- Advanced - Additional settings
Section Navigation
Use the section navigation bar to jump between sections quickly.
Sales Forecast
For active competitions, view sales forecast card:
- Projected ticket sales
- Current pace vs target
- Days remaining
- Trend indicators
Actions
- Save Changes - Update competition
- Publish - Make draft live
- End Early - Close competition
- View Live - See public page
- Duplicate - Copy to new competition
Competition Status
Competitions progress through these statuses:
- Draft - Being created, not visible to users
- Active - Live and accepting entries
- Ending Soon - Within 24 hours of closing
- Ended - Closed to new entries
- Drawing - Winner selection in progress
- Completed - Winner announced
- Cancelled - Cancelled (refunds processed)
Managing Entries
Route
Navigate to a competition's edit page (/admin/competitions/[id]) and click the Entries tab.
Statistics
- Total Entries - All ticket numbers
- Purchased - Paid and confirmed
- Available - Still for sale
- Reserved - In user carts
- Unique Entrants - Individual users
Entry List
View all entries with:
- Ticket Number - Entry number
- User - Who purchased
- Status - Purchase status
- Date - When purchased
- Order ID - Associated order
Filters
- Search - Find by ticket number or user
- Status - Filter by status
- Sort - Order by date, ticket number, or user
Create Postal Entry
For postal entries:
- Click "Create Postal Entry"
- Enter customer details
- Assign ticket number(s)
- Add notes
- Create entry
Instant Wins
Route
/admin/competitions/[id]/instant-wins
Overview
Manage instant win prizes where users win immediately upon purchase.
Instant Win Reveal Types
When a user wins an instant prize, they see an animated reveal. Choose from these reveal types when creating/editing a competition:
| Type | Description |
|---|---|
| Default | Simple reveal animation showing the prize |
| Scratchcard | User scratches to reveal the prize |
| Balloon Pop | Pop balloons to discover the prize |
| Wheel Spin | Spin a prize wheel |
| Coin Flip | Flip a coin to reveal the prize |
| Hook a Duck | Fairground-style duck hooking game |
| Fishing Rod | Cast a line to catch the prize |
| BINGO | UK 90-ball bingo game where completing a row wins |
| Gem Shatter | Tap to shatter a gem and reveal the prize — high-tension single-tap reveal |
| Piñata | Swing a bat at a hanging piñata — three hits cracks it open, spilling prizes for winners or a puff of dust for losers |
BINGO Reveal
The BINGO reveal type provides an interactive UK 90-ball bingo experience:
- Each ticket generates a unique bingo card seeded by the ticket number
- User clicks "Call Ball" or uses "Auto Play" to call numbers
- Matching numbers on the card can be dabbed (auto-dab available)
- Completing any row reveals the win
- Ball colors follow UK bingo convention (white 1-9, blue 10-19, pink 20-29, etc.)
- Near-win rows highlight when 4/5 numbers are dabbed
Statistics
- Total Prizes - All instant wins
- Claimed - Prizes won
- Unclaimed - Still available
Adding Prizes
Single Prize
- Click "Add Prize"
- Enter prize details:
- Prize name
- Prize value
- Description
- Image (optional) — once the title is set, the form suggests a single best-guess image from your media library by matching against filenames, alt text, and AI-generated captions. Use the suggestion in one click, pick a different image, or upload a new file. Leave empty to skip — prizes without an image render the existing layout.
- Assignment method:
- Random - Randomly assigned ticket
- Specific - Choose ticket number
- Click "Create"
When all prizes in a batch are created at once (random mode with a quantity > 1), the chosen image is applied to every row in the batch.
Bulk Add
- Click "Bulk Add"
- Upload CSV file with:
- Prize name
- Prize value
- Ticket number (optional)
- Description
- Review preview
- Confirm import
CSV Format
csv
name,value,ticket_number,description
"£10 Gift Card",10,42,"Amazon gift card"
"Free Entry",5,156,"Next competition free entry"Prize Management
- View all instant win prizes
- See claim status
- Edit prize details
- Remove prizes
- Export prize list
Forecasting Tool
For active competitions, access forecasting:
- Navigate to competitions list
- Click "Forecast" on active competition
- View predictions:
- Expected final ticket sales
- Estimated completion date
- Daily sales trends
- Success probability
Use forecasting to:
- Adjust marketing efforts
- Optimize competition duration
- Plan draw timing
- Identify underperforming competitions
Duplicating Competitions
Quickly create a new competition based on an existing one:
How to Duplicate
- Navigate to competition list or competition edit page
- Click "Duplicate" action
- New competition is created with:
- All settings copied from original
- Draft status (not live)
- Original dates preserved (you must update manually)
- New unique ID
- No entries or tickets
What Gets Copied
- Title (with "Copy of" prefix)
- Description and short description
- Prize information
- Images and gallery
- Ticket pricing
- Entry limits
- Draw settings
- Instant win configuration (structure only, not actual prizes)
What Doesn't Get Copied
- Entries and tickets
- Instant win prizes (must be recreated)
- Orders and sales
- Competition status (starts as Draft)
- Winners and draw results
Important Notes
- Dates are not automatically advanced - You must manually update start and end dates
- Review all settings before publishing
- Update title to remove "Copy of" prefix
- Create new instant win prizes if needed
- Competition starts in Draft status for safety
Common Use Cases
- Running seasonal competitions
- Testing configuration changes
- Creating competition templates
- Reusing successful competition formats
Archiving Competitions
Hide completed competitions from public view while preserving data:
What is Archiving?
- Competition is hidden from public competition list
- Data is preserved - entries, winners, orders all remain
- Competition can be viewed in admin area with "Archived" filter
- Can be unarchived later if needed
How to Archive
Option 1: From Winner Manager
- Navigate to
/admin/winners/winner-manager - Find completed competition
- Click "Archive" button
- Confirm archiving
Option 2: Soft Delete
- Navigate to competition list
- Click "Delete" on competition
- Competition is soft deleted (archived)
Viewing Archived Competitions
- Go to
/admin/competitions - Use status filter
- Select "Archived"
- View all archived competitions
Difference from Deletion
- Archive - Hide from public, preserve all data
- Soft Delete - Same as archive (current behavior)
- Hard Delete - Permanent removal (not available for competitions with orders)
Use Cases
- Clean up old competitions from public view
- Preserve historical data for records
- Remove seasonal competitions after they end
- Keep admin area organized
Drawing Winners
See the Winners Management guide for draw execution and fulfillment tracking.
Default Ticket Quantity
Pre-select a ticket quantity for users when they view a competition:
Configuration
When creating or editing a competition:
- Navigate to Tickets & Pricing section
- Set "Default Ticket Quantity" field
- Enter the number you want pre-selected (e.g., 5, 10, 20)
- Save competition
How It Works
- When users view the competition, the ticket selector shows your default quantity
- Users can still change the quantity
- Helps guide users toward better value bundles
- Can increase average order size
Use Cases
- Popular bundles - Pre-select your most common bundle size
- Value offers - Default to quantity with best price per ticket
- Promotions - Encourage higher ticket purchases
- Simple pricing - Make checkout faster for users
Tips
- Don't set too high (can discourage smaller purchases)
- Match to your pricing strategy
- Test different defaults to optimize conversion
- Consider setting to your most popular purchase quantity
Exclude from Wallet Credit
Prevent users from applying wallet credit to specific competitions.
Configuration
When creating or editing a competition:
- Navigate to Tickets & Pricing section
- Enable "Exclude from Wallet Credit" toggle
- Save competition
How It Works
- Users cannot apply wallet credit balance to excluded competitions
- Full card payment is required for these competitions
- An indicator shows in checkout when items are excluded
- Useful for premium or promotional competitions
Use Cases
- High-value prizes - Ensure full payment for expensive items
- Promotional competitions - Keep promotional giveaways separate from credit redemption
- Partner competitions - Where revenue sharing requires full payment
- Loss-leader competitions - Prevent stacking of discounts and credits
Access Code Protection
Gate a competition behind a secret code so only recipients can enter.
Configuration
- On the competition edit page, go to the Tickets & Pricing section (or the Advanced tab for the new-comp form)
- Enter an Access Code (any string — keep it simple but not guessable)
- Save
How it works
- The competition appears as Locked in public listings; the ticket selector is replaced with a code-entry field
- Users who enter a valid code have it stored in their session and see the competition unlocked
- Wrong codes are not flagged as a Sentry error (ELIGIBILITY_NOT_MET is filtered), so you can monitor legitimate errors cleanly
- Access codes do not work retroactively — users who entered before the gate was added keep their entries
Use cases
- VIP / loyalty competitions
- Soft-launching to a test audience
- Influencer code drops
- Rewarding email subscribers
Eligibility Criteria
Restrict entry to users who have reached a lifetime-spend threshold. Useful for VIP tiers or reward-style competitions.
Configuration
- Open the competition edit page
- Expand Eligibility Criteria in the Tickets & Pricing section
- Set Minimum Spend (GBP) — completed refunds are deducted from the user's eligible spend
- Save
What users see
- Users who don't meet the threshold see a Locked card on the competition with a progress bar showing how far they have to go (e.g. "£42 / £100 to unlock")
- Completed refunds are deducted from eligibility spend so refunded purchases don't count toward unlocking
- Users who meet the threshold see the normal ticket selector
Stacking with access codes
You can combine both — e.g. a competition that requires both a £100 spend history and a VIP code. Both gates must be cleared before entries are allowed.
Quantity Discounts
Reward bulk buys with a deeper per-ticket discount across the whole order. Once a customer's basket reaches a tier's threshold, every ticket in that order reprices at the lower rate. Drop below the threshold and the price returns to normal.
Configuration
- Open the competition edit page
- Toggle on Quantity Discounts in the Tickets & Pricing section
- Click Add tier for each tier you want, and fill in:
- Tickets ≥ — the threshold customers need to hit (minimum 2)
- Discount — choose % Off or £ Off
- Value — the percentage (under 100%) or fixed pound amount per ticket. Fixed amounts can't exceed half the ticket price.
- Up to five tiers per competition
- Save
Higher thresholds must give a deeper discount than lower ones — the editor flags any tier set that breaks this rule before you save.
Stacking with early bird
If both early-bird and a quantity-discount tier are active at the same time, customers automatically get whichever gives them the better per-ticket price. Promo codes apply on top of either.
Customer experience
- The slider on the competition page shows a marker at each tier threshold
- A "Add 3 more to save 20%" nudge appears as the customer gets close to a tier
- Once they cross the threshold, every ticket in the basket reprices
Reporting
Each order detail panel flags tier-priced line items with a chip and a "Quantity Discounts" breakdown showing the regular price, tier price, tier rule and per-line savings. Aggregate tier-uptake reporting (how often each tier is hit across competitions) will follow once the dashboard lands.
Competition Tags
Route
/admin/tags
Managing tags
Tags are free-form labels you can attach to competitions for filtering, grouping on the homepage, and merchandising on category pages.
- Navigate to
/admin/tags - Click New Tag to open the create panel (now a slide panel, previously a modal)
- Enter a Name and optional Slug / Description
- Save
- Attach tags on the competition edit page, Basic Details section
Tags are also exposed on the public API so the frontend grid filter and the AI chatbot (Compy) can use them.
Video URL
Add a YouTube or Vimeo URL in the Basic Details section to embed a video player above the prize gallery on the public competition page. Useful for:
- Product demos (car detail walk-throughs, unboxings)
- Prize origin stories (e.g. a trip location teaser)
- Winner testimonials
The field accepts any URL that YouTube or Vimeo recognises; the frontend converts it to an embedded player.
Instant Win Editing Restrictions
Once a competition has sales, certain instant-win fields become locked to prevent altering prizes after users have already purchased tickets.
Locked after sales
- Cannot remove or re-assign existing instant win prizes
- Cannot change the prize type on an existing prize
- Cannot change the prize value downward
- Cannot change the reveal type mid-competition
Still editable
- Adding new prizes (if ticket numbers are available)
- Updating descriptions, images, metadata
- Increasing prize value
- Editing the alternative prize choice
The admin UI surfaces these restrictions with tooltips on disabled fields so you know why something is greyed out.
Tips
- Use high-quality prize images
- Set realistic ticket limits
- Enable auto-draw for convenience
- Monitor sales forecasts
- Create instant wins to boost engagement
- Use draft status while setting up
- Test competitions before publishing
- Keep entry limits fair