Help! A Competitor Has Undercut My Price

So to your horror you discover someone is selling your products or something similar, for cheaper. How will you compete knowing you can’t just keep lowering your prices?

Should I lower my price?

pricedropOne of the easiest and often most damaging technique is to just lower your price, DON’T. Be firm on your price. The only time you should consider lowering your price is if you see a huge drop in sales for the competing items.

Is this a like for like product? There could be a drastic variation in the actual quality of products from one store to the next. Perhaps your competition is charging less because they are selling a lower quality version of your product. Always check to see if this is a like for like product, and remember that those undercutting may actually be perceived as lower quality to a customer.

Customers will pay for quality, so prove your product is superior. It helps to ensure that your customers know that you offer a better shopping experience too.

Depending on your industry you may find products are price insensitive so it doesn't really make sense to compete on price alone.

Is the competitors price legitimate?

pound-sign-as-question-mark1Double check that your competitors are ACTUALLY offering the same price and not just using a cheeky headline. You can confirm this by running through the website up to the final payment page in order to satisfy that their price is cheaper.

Compare other elements of the purchase like returns, warranty, insurance, speed of delivery etc. This may give you an angle to justify a higher price.

You can try and reduce your headline figure by increasing other aspects of the order (like delivery charges) or offer incentives for a customer to use your company (like a loyalty scheme or a free item with purchase). For example, if your competitor has undercut you by £5, you could give away a free item with every purchase that has a wholesale value to you of say £2.50 but a retail sale value of £10. This creates a perceived image that your item/service is now a better deal without you having to actually match your competitors price.

Think carefully before you drop your price and continually monitor their prices. Your competitor may be doing this as a temporary loss leader to win business, clear stock or meet wholesale volume requirements.

As we’ve mentioned, being cheaper than a competitor is not your only weapon. Trying to compete on cost is a race to the bottom – you squeeze your margins so paper thin you are left with nothing, just remember the golden rule: You don't have to be cheaper to win customers.

32.27msRequest Duration4MBMemory UsageGET {a?}/{b?}/{c?}/{d?}/{e?}/{f?}/{g?}RouteAuth status
    • Booting (14.76ms)
    • Application (28.14ms)
      8 templates were rendered
      • v2.site.cms.article (resources/views/v2/site/cms/article.blade.php)14blade
        Params
        0
        background_image
        1
        h1_title
        2
        faq_content
        3
        title
        4
        description
        5
        head
        6
        v2
        7
        alert_text
        8
        services_text
        9
        services_collection_country
        10
        services_delivery_country
        11
        global_services_text
        12
        services_text_cn
        13
        breadcrumb
      • v2.templates.main (resources/views/v2/templates/main.blade.php)21blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        background_image
        5
        h1_title
        6
        faq_content
        7
        title
        8
        description
        9
        head
        10
        v2
        11
        alert_text
        12
        services_text
        13
        services_collection_country
        14
        services_delivery_country
        15
        global_services_text
        16
        services_text_cn
        17
        breadcrumb
        18
        __currentLoopData
        19
        bc
        20
        loop
      • v2.inc.script.head (resources/views/v2/inc/script/head.blade.php)21blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        background_image
        5
        h1_title
        6
        faq_content
        7
        title
        8
        description
        9
        head
        10
        v2
        11
        alert_text
        12
        services_text
        13
        services_collection_country
        14
        services_delivery_country
        15
        global_services_text
        16
        services_text_cn
        17
        breadcrumb
        18
        __currentLoopData
        19
        bc
        20
        loop
      • v2.inc.head (resources/views/v2/inc/head.blade.php)21blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        background_image
        5
        h1_title
        6
        faq_content
        7
        title
        8
        description
        9
        head
        10
        v2
        11
        alert_text
        12
        services_text
        13
        services_collection_country
        14
        services_delivery_country
        15
        global_services_text
        16
        services_text_cn
        17
        breadcrumb
        18
        __currentLoopData
        19
        bc
        20
        loop
      • v2.inc.script.body (resources/views/v2/inc/script/body.blade.php)21blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        background_image
        5
        h1_title
        6
        faq_content
        7
        title
        8
        description
        9
        head
        10
        v2
        11
        alert_text
        12
        services_text
        13
        services_collection_country
        14
        services_delivery_country
        15
        global_services_text
        16
        services_text_cn
        17
        breadcrumb
        18
        __currentLoopData
        19
        bc
        20
        loop
      • v2.inc.header (resources/views/v2/inc/header.blade.php)21blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        background_image
        5
        h1_title
        6
        faq_content
        7
        title
        8
        description
        9
        head
        10
        v2
        11
        alert_text
        12
        services_text
        13
        services_collection_country
        14
        services_delivery_country
        15
        global_services_text
        16
        services_text_cn
        17
        breadcrumb
        18
        __currentLoopData
        19
        bc
        20
        loop
      • v2.inc.footer (resources/views/v2/inc/footer.blade.php)21blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        background_image
        5
        h1_title
        6
        faq_content
        7
        title
        8
        description
        9
        head
        10
        v2
        11
        alert_text
        12
        services_text
        13
        services_collection_country
        14
        services_delivery_country
        15
        global_services_text
        16
        services_text_cn
        17
        breadcrumb
        18
        __currentLoopData
        19
        bc
        20
        loop
      • v2.inc.script.footer (resources/views/v2/inc/script/footer.blade.php)21blade
        Params
        0
        obLevel
        1
        __env
        2
        app
        3
        errors
        4
        background_image
        5
        h1_title
        6
        faq_content
        7
        title
        8
        description
        9
        head
        10
        v2
        11
        alert_text
        12
        services_text
        13
        services_collection_country
        14
        services_delivery_country
        15
        global_services_text
        16
        services_text_cn
        17
        breadcrumb
        18
        __currentLoopData
        19
        bc
        20
        loop
      uri
      GET {a?}/{b?}/{c?}/{d?}/{e?}/{f?}/{g?}
      middleware
      web
      controller
      App\Http\Controllers\CMSController@index
      namespace
      App\Http\Controllers
      prefix
      null
      where
      file
      app/Http/Controllers/CMSController.php:25-344
      7 statements were executed6.72ms
      • select * from `cms_pages` where `page_name` = 'articles' and `archived_by_cms_page_id` is null and `cms_page_id` is null and `online` = '1' and `is_draft` = '0' limit 12.08ms/app/Repository/Cms/CmsPageHelper.php:34parcelbroker-back
        Metadata
        Bindings
        • 0. articles
        • 1. 1
        • 2. 0
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 12. /app/Repository/Cms/CmsPageHelper.php:34
        • 13. /app/Http/Controllers/CMSController.php:56
        • 21. /app/Http/Middleware/AutoLogout.php:26
        • 33. middleware::old:37
        • 54. /vendor/fideloper/proxy/src/TrustProxies.php:56
        • 63. /public/index_laravel.php:62
      • select * from `cms_pages` where `page_name` = 'help-competitor-undercut-price' and `archived_by_cms_page_id` is null and `cms_page_id` = '81' and `online` = '1' and `is_draft` = '0' limit 1590μs/app/Repository/Cms/CmsPageHelper.php:34parcelbroker-back
        Metadata
        Bindings
        • 0. help-competitor-undercut-price
        • 1. 81
        • 2. 1
        • 3. 0
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 12. /app/Repository/Cms/CmsPageHelper.php:34
        • 13. /app/Http/Controllers/CMSController.php:56
        • 21. /app/Http/Middleware/AutoLogout.php:26
        • 33. middleware::old:37
        • 54. /vendor/fideloper/proxy/src/TrustProxies.php:56
        • 63. /public/index_laravel.php:62
      • select * from `cms_pages` where `page_name` = 'cms-global-settings' limit 11.82ms/app/Http/Controllers/CMSController.php:83parcelbroker-back
        Metadata
        Bindings
        • 0. cms-global-settings
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 12. /app/Http/Controllers/CMSController.php:83
        • 20. /app/Http/Middleware/AutoLogout.php:26
        • 32. middleware::old:37
        • 53. /vendor/fideloper/proxy/src/TrustProxies.php:56
        • 62. /public/index_laravel.php:62
      • select * from `cms_pages` where `id` = '81' limit 1400μs/app/Models/CmsPage.php:24parcelbroker-back
        Metadata
        Bindings
        • 0. 81
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 12. /app/Models/CmsPage.php:24
        • 13. /app/Models/CmsPage.php:55
        • 14. /app/Http/Controllers/CMSController.php:348
        • 15. /app/Http/Controllers/CMSController.php:311
        • 23. /app/Http/Middleware/AutoLogout.php:26
        • 35. middleware::old:37
        • 56. /vendor/fideloper/proxy/src/TrustProxies.php:56
        • 65. /public/index_laravel.php:62
      • select * from `cms_pages` where `id` is null limit 1240μs/app/Models/CmsPage.php:24parcelbroker-back
        Metadata
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 12. /app/Models/CmsPage.php:24
        • 13. /app/Models/CmsPage.php:55
        • 14. /app/Http/Controllers/CMSController.php:348
        • 15. /app/Http/Controllers/CMSController.php:311
        • 23. /app/Http/Middleware/AutoLogout.php:26
        • 35. middleware::old:37
        • 56. /vendor/fideloper/proxy/src/TrustProxies.php:56
        • 65. /public/index_laravel.php:62
      • select * from `cms_templates` where `cms_templates`.`id` = '9' limit 1350μs/app/Http/Controllers/CMSController.php:337parcelbroker-back
        Metadata
        Bindings
        • 0. 9
        Hints
        • Use SELECT * only if you need all columns from table
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 17. /app/Http/Controllers/CMSController.php:337
        • 25. /app/Http/Middleware/AutoLogout.php:26
        • 37. middleware::old:37
        • 58. /vendor/fideloper/proxy/src/TrustProxies.php:56
        • 67. /public/index_laravel.php:62
      • select AVG(stars), COUNT(id) from `reviews` where `stars` >= '4' limit 11.24ms/app/Helpers/Review.php:13parcelbroker-back
        Metadata
        Bindings
        • 0. 4
        Hints
        • LIMIT without ORDER BY causes non-deterministic results, depending on the query execution plan
        Backtrace
        • 12. /app/Helpers/Review.php:13
        • 13. view::v2.inc.head:66
        • 19. view::v2.templates.main:7
        • 25. view::v2.site.cms.article:70
        • 32. /vendor/symfony/http-foundation/Response.php:201
        • 36. /app/Http/Middleware/AutoLogout.php:26
        • 48. middleware::old:37
        • 69. /vendor/fideloper/proxy/src/TrustProxies.php:56
        • 78. /public/index_laravel.php:62
        web
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
        api
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
        admin
        array:2 [ "name" => "Guest" "user" => array:1 [ "guest" => true ] ]
          _token
          UJHgAx2YIHShlnRds6NjV3iupbKq2hSNpnQVvZng
          _previous
          array:1 [ "url" => "https://vanguard.parcelbroker.co.uk/articles/help-competitor-undercut-price" ]
          PHPDEBUGBAR_STACK_DATA
          []
          format
          html
          content_type
          text/html; charset=UTF-8
          status_text
          OK
          status_code
          200
          request_query
          []
          request_request
          []
          request_headers
          array:17 [ "priority" => array:1 [ 0 => "u=0, i" ] "accept-encoding" => array:1 [ 0 =>...
          request_server
          array:40 [ "USER" => "forge" "HOME" => "/home/forge" "HTTP_PRIORITY" => "u=0, i" "HTTP_ACCEP...
          request_cookies
          []
          response_headers
          array:3 [ "cache-control" => array:1 [ 0 => "no-cache" ] "content-type" => array:1 [ 0...
          path_info
          /articles/help-competitor-undercut-price
          session_attributes
          array:3 [ "_token" => "UJHgAx2YIHShlnRds6NjV3iupbKq2hSNpnQVvZng" "_previous" => array:1 [ "u...