Gross Profit Report Calculations and Discrepancies

Gross Profit Report discrepancies and how to resolve them

You can view the gross profit in the GP Report in the back office, under the Reports section. 

Negative GP margins

Sometimes the GP margin can be wildly and/or unexpectedly in the negative/positive:
GP report-1

In this situation, we should examine what is causing this.

In most cases, as in the example above, it is due to the cost of goods being unexpectedly high. So we need to understand why the system thinks it is so high.

Our troubleshooting steps will depend on the product type:
  1. Is it a normal product (without variants/ingredients)?
  2. Is it a variant?
  3. Does it have ingredients?
  1. Normal Product

    1. Edit the product from Products > Product List. Check the cost price section in the product settings:
      GP wrong
    2. In this example, my cost price (supplier unit) is very high, which is causing the markup to be in the negative, because we're telling the system that I'm buying this item in for far more than what I'm selling it for. To rectify: simply edit the cost price and save, and it will update the margin in the GP report instantly. If the GP report still looks wrong, continue to step C. 
    3. Check the unit conversion:
      gp unit conversion
      1. In this scenario, I'm telling the system that I buy it from my supplier in a bottle that costs £1, but that every time I sell "a bottle", the system thinks I'm selling a hundred of the bottles I receive, which is making the cost price per store unit very high (£100). 
      2. Again, if I recognise this is a mistake, to rectify: simply update the unit conversion, and save the changes, and it will update the margin in the GP report instantly. If the GP report still looks wrong, continue to step D.  
    4. If the store unit cost price and unit conversion looks correct, we will need to examine whether if a PO was placed for the product and whether the cost price and unit conversion was correct at that time. Please note this step only applies if you have the Advanced Stock module. If you don't have this module, and the above steps haven't helped to correct the GP then please contact support at pos.support.uk.ie@sumup.com. We will need to know the exact product you wish to examine, and the date range that you're running on the GP report. 

      1. This means we will need to search through old purchase orders.

        1. The easiest way to do this is by getting the product id, by editing the product and copying the long string of letters and numbers at the end of the URL:
          ingredient id
        2. Then go to Stock > Purchase Orders, and paste in the id (remember to clear the status field):
          PO
        3. Then click into each purchase order and check the cost price set at the time of the order. In the example below we can see the price (SU) is abnormally high at £500. 
          Screenshot 2022-07-27 at 14.17.07
        1. So all is needed is to edit the price (SU) so that it is correct on the purchase order. 
    1. Product with a variant/product as a variant

      1. Check whether the variants have take stock from the parent enabled:
        1. If yes:
          1. Check step 1 for the parent product.
          2. Also check that the quantifier for the variant take from stock is set correctly! Ignore the cost price settings for the individual variant - the variant cost price is overridden when you select "take from parent"!
          3. For example, in our product below:
            Screenshot 2022-07-27 at 19.38.41
            Screenshot 2022-07-27 at 19.38.52
          4. Here, although the "TSFP - quantifier variant" has the cost price set as £2.5, because "take from parent" is ticked, the system will instead use the quantifier to calculate the cost price from the parent product's cost price (0.5 of £2.50 = £1.25). It will show the £1.25 as the cost of goods in the GP report:
            Screenshot 2022-07-27 at 19.42.15
          5. If you edit the quantifier (for example to 1), Submit your changes, and re-run the same report, it will update immediately to be correct:
            Screenshot 2022-07-27 at 19.44.22
        2. If the variant does not have take stock from parent ticked:
          1. Check step one for each individual variant - ignore the settings for the parent product!
          2. Consider whether the variant should be taking stock from the parent. This is useful in case like, pints and half pints of beer, glasses of wine, but may be useful for products like stocks, burgers, etc. It depends on your setup!
    2. Product with ingredients

      1. First check that all the ingredient(s) linked to the product are themselves set up correctly. 
        1. Go to edit the ingredient (Ingredients > Ingredient List) and check the supplier cost price is correct:
          ingredient cost price 
        2. In this example, I'm telling the system that my store unit is 1 litre, and I buy it from the supplier in an 8 pack, and that the cost of all 8 is £30. The system then calculates the cost price per litre as £3.750.
        3. For all your ingredients, double check that the cost price is correct, and that the unit conversion is also correct, so that the system has got the correct store unit cost price, as the system will use the store unit cost price in the calculations for your product's cost price.
        4. Then check that the product the ingredient is linked to has the correct "amount" set:
          ingreidnt link
        5. In this example, my product is a Cappuccino, but I've told the system that every time I sell it, I take 1 litre of almond milk from stock. This is obviously too much, and also affects the cost price, as the cost price is far higher than it should be for the product:
          cost price
        6. So, to correct this, make sure that you have the correct amount set. In my example I want to use 20ml of milk in my coffee, so I put 0.02 in the amount box:
          correct cost price
        7. This ensures that the cost price is now correct for the product:
          Screenshot 2022-07-27 at 19.52.26
        8. Now the GP report will be correct (it has rounded 0.075 to 0.08):
          coffee GP
      2. If all the ingredients linked to the product are currently correct then we will need to examine whether if a PO was placed for any of the ingredients and whether the cost price and unit conversion were correct on the PO at that time. 
        Please note this step only applies if you have the Advanced Stock module. If you don't have this module, and the above steps haven't helped to correct the GP then please contact support at pos.support.uk.ie@sumup.com. We will need to know the exact product you wish to examine, and the date range that you're running on the GP report. 
        1. If you have any POs that are within the date range you are querying, then the system will only use those POs to get the cost price - so the cost price set at the time of the purchase order overrides the cost price set normally on the ingredient. So for example, if your ingredient cost price is set as £0.50, and on February 1st you do a PO for it and set the cost price as £500.00 and sell an item on February 1st then when you run the GP report for February 1st, it will show the cost of goods at £500, not £0.50. See step IV for how to identify and resolve. 
        2. If there are no immediate POs within the date range you are running on the GP report, then the system will look at POs from up to a year before to retrieve the average cost price. So for example, if your ingredient cost price is set as £0.50, and on February 1st you do a PO for it and set the cost price as £500, then sell items through February. Then in March, another mistake is made and the cost price is set as £300, and an item is again sold. When you run the GP report for the whole of February and March, the cost of goods won't reflect the £0.50 figure set on the ingredient but instead the system will average the £500 and £300 figures for the cost of goods. See step IV for how to identify and resolve.
        3. If there are no POs at all, the GP report will just use the cost price set on the ingredient itself. If you think the should should be using a cost price set on a PO, then check when the PO was processed (not delivered) - it will be because the process time does not fall into the date range you are running on the GP report. 
        4. This means you have to search through old purchase orders to examine them. The easiest way to do this is by getting the ingredient id, by editing the ingredient and copying the long string of letters and numbers at the end of the URL:
          ingredient id
        5. Then go to Stock > Purchase Orders, and search for the id (remember to clear the status field!!):
          PO
        6. Then click into each purchase order and check the cost price set at the time. In the example below, you can see for the Almond milk, the cost price at the time was £50, not the usual £30:
          PO price set
        7. To rectify, all is needed is to edit the price (SU) so that it is correct on the purchase order.