Vendion
    Analytics++

    Discount Reporting

    5 min read#18

    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

    LocationWhat you see
    Finance pageTotal discounted amount, number of orders with discount, average discount per discounted order
    SalesDaily table with columns: Gross, Discounts, Net
    Product MixDiscounts per item – which products get price cuts most often
    StaffDiscounts per server/register (column "Discounts")
    AI BossAsk directly: "Who gave the most discount last week?"

    Discount types tracked

    TypeExampleWhere it's booked
    Item discount10% off a specific pizzaLinked to order_item
    Order discount20% off entire checkLinked to order
    Campaign discount"Tuesday 15% off" from Marketing moduleTagged with campaign_id
    Staff discountEmployee meal 50%Tagged with reason="staff_meal"
    Gift card100 SEK deduction via cardSeparate – not a discount, a payment
    Stamp/loyalty10th coffee freeTagged 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:

    1. A single server with unusually high discount frequency – while colleagues discount 3% of checks, they discount 18%
    2. Large discounts on expensive checks – a server tends to give 30% off on checks over 1,500 SEK
    3. Recurring discounts on the same table/guest – "friend" shows up every Tuesday
    4. Discounts late at night – after 23:00 when the manager isn't looking
    5. Discounts from the same PIN without manager approval – if manager-override is required
    6. 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:

    1. Go to Marketing → Campaigns → select campaign
    2. See metrics: redemptions, total discounted, incremental sales
    3. 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:

    1. Measure ROI per campaign
    2. See which customers redeemed the offer
    3. 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?