Discount Reporting
Discounts are one of the most common places a restaurant leaks money without noticing – either through well-meaning but uncontrolled campaigns or outright internal shrinkage. Vendion tracks every discount down to staff, timestamp, and order, so you can both measure campaigns and spot patterns.
Where to find discount information
| Location | What you see |
|---|---|
| Finance page | Total discounted amount, number of orders with discount, average discount per discounted order |
| Sales | Daily table with columns: Gross, Discounts, Net |
| Product Mix | Discounts per item – which products get price cuts most often |
| Staff | Discounts per server/register (column "Discounts") |
| AI Boss | Ask directly: "Who gave the most discount last week?" |
Discount types tracked
| Type | Example | Where it's booked |
|---|---|---|
| Item discount | 10% off a specific pizza | Linked to order_item |
| Order discount | 20% off entire check | Linked to order |
| Campaign discount | "Tuesday 15% off" from Marketing module | Tagged with campaign_id |
| Staff discount | Employee meal 50% | Tagged with reason="staff_meal" |
| Gift card | 100 SEK deduction via card | Separate – not a discount, a payment |
| Stamp/loyalty | 10th coffee free | Tagged with loyalty_type |
Gift cards and loyalty points are technically not discounts – they're booked separately. Everything else that reduces the check below list price is a discount.
Fraud detection – where the tool really shines
Discounts are the most common vector for internal fraud ("sweethearting") in the restaurant industry. Typical patterns:
- A single server with unusually high discount frequency – while colleagues discount 3% of checks, they discount 18%
- Large discounts on expensive checks – a server tends to give 30% off on checks over 1,500 SEK
- Recurring discounts on the same table/guest – "friend" shows up every Tuesday
- Discounts late at night – after 23:00 when the manager isn't looking
- Discounts from the same PIN without manager approval – if manager-override is required
- Corrections on already-closed checks – attempts to reverse sold products
How to detect it
Step 1 – Open Analytics → Staff Step 2 – Look at the "Discounts" and "Discount %" columns Step 3 – Compare across staff. If someone is 3× the average it's worth a closer look
Step 4 – Go to Analytics → Sales and filter to that person's orders Step 5 – Export as CSV and analyze in Excel by day/hour
AI Boss can do it for you
Prompt:
- "Which servers are above average in discounts this month?"
- "Has anyone given 20%+ discount more than 10 times last week?"
- "Show me all discounts on checks over 1,000 SEK"
- "Compare discount patterns weekdays vs weekends"
Discount policies that prevent problems
Go to Settings → POS → Discounts and enable:
- Require manager PIN for discounts over X% (e.g. 15%)
- Require reason (dropdown: Campaign, Regular, Complaint, Staff, Other)
- Max discount per week per staff (e.g. 2,000 SEK)
- Logging: All discounts are automatically logged with staff, time, and reason
Campaign analysis
For legitimate campaigns from the Marketing module:
- Go to Marketing → Campaigns → select campaign
- See metrics: redemptions, total discounted, incremental sales
- Calculate ROI: (Incremental sales − discount cost − campaign cost) / campaign cost
Good campaigns should generate more incremental sales than they cost in discount.
Example – legitimate vs problematic
Legitimate:
- Tuesday 15% off drives Tuesday sales from 12,000 → 18,000 SEK
- Discount cost: 2,700 SEK (15% on 18,000)
- Incremental sales: 6,000 SEK
- Margin on incremental: ~4,000 SEK (if 65% margin)
- Net: +1,300 SEK → profitable
Problematic:
- Same server gives 20% discount on 30% of their orders, no campaign codes linked
- No other server has the same pattern
- Discounts added after food delivered (not upfront)
- Likely sweethearting → investigate further
Monthly report for staff conversations
Generate from Finance → Discount Report (export):
- Per server: number of discounts, average discount %, total discounted amount
- Per category (why): Campaign / Complaint / Staff / Other
- Day-by-day curve
This gives you basis for a straight, factual conversation: "Anna, you gave 12,500 SEK in discounts last month while the other servers are at 3,000–4,000. Help me understand." Numbers beat gut feel.
Integration with the Marketing module
When a discount comes from a campaign code (Marketing module) it's automatically tagged with the campaign ID. That lets you:
- Measure ROI per campaign
- See which customers redeemed the offer
- Compare with control group (customers who didn't receive the campaign)
What is logged per discount
For every discount the system automatically records:
- Which staff member registered it
- Which register the discount was given on
- Reason (if provided)
- Link to campaign (if the discount came from a campaign code)
- Timestamp
That means you can always trace a discount back to the right person and moment.
Related: Finance Overview, Sales Report, Staff Analytics, Campaigns (Marketing).
This feature is part of Vendion Analytics++.
Curious how it looks in practice? Read more about the product or book a short demo.
Was this article helpful?
