【促销定价】背后的算法技术 1 - 业务问题拆解

2024-01-09 22:04

本文主要是介绍【促销定价】背后的算法技术 1 - 业务问题拆解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【促销定价】背后的算法技术 1 - 业务问题拆解

    • 01 业务背景
    • 02 关键挑战
    • 03 问题拆解
    • 04 核心结论
          • 参考文献

本文为转载,大佬的文章写的真好,给大佬推广推广,欢迎大家关注。
如侵删。

导读:在日常生活中,我们经常会遇见线上/线下商家推出各类打折、满减、赠品、新人价、优惠券、捆绑销售等促销活动。一次成功的促销对于消费者和商家来说是双赢的。一方面,促销活动能让消费者买到低价的商品;另一方面,促销活动也能为商家带来可观的利润。因此,对于商家来说,如何科学合理地制定促销策略是必须仔细思考的问题。


作者1:张哲铭,算法专家,某互联网大厂
作者2:向杜兵,算法专家,某制造业龙头


大家好!我们是IndustryOR团队,致力于分享业界落地的OR+AI技术。欢迎关注微信公众号/知乎【运筹匠心】 。本期我们来谈一谈《促销定价背后的算法技术》。促销活动五花八门、玩法多变,但其底层的核心商业逻辑是“价格”。因此,本期案例将选择某零售商超“促销定价”场景,共分5篇文章依次讲解:(1)业务问题拆解;(2)数据预处理生成;(3)数据挖掘分析;(4)模型算法实现-价格弹性模型;(5)模型算法实现-运筹决策模型。

本篇文章讲解(1)业务问题拆解

共分为4个部分,依次为:
01 业务背景
02 关键挑战
03 问题拆解
04 核心结论


01 业务背景

在新冠疫情、俄乌战争、巴以战争、大国博弈等时代大背景下,全球经济目前正处于下行周期,消费降级趋势已经形成,各行各业都在积极转型变革,以应对时代的挑战,寻找新的增长点。

以零售行业为例,过去几年涌现了不少新业态。如:线上渠道,直播带货、内容电商、社区团购等模式高速发展;线下渠道,折扣店、临期食品店、工厂店等门店遍地开花。不难发现,为了顺应消费降级的大趋势,“低价促销”已逐步成为现阶段零售行业的共识和最重要的竞争要素。


02 关键挑战

“低价促销”是一种可以让消费者和商家同时受益的经营手段,消费者用“低价”买到了心仪的商品,商家通过“促销”实现了利润的增长。但实现双赢的前提是要保证“促销定价”的合理性,即对每个商品均制定出最合适的价格。否则,就变成了“高价降销”或者“赔本赚吆喝”。那么,商家在“促销定价”时会遇到哪些挑战呢?

抛开活动策划、促销手段、促销时间、促销时长、促销渠道、推广方式、引流策略、售后支持等业务动作不谈。我们单从“定价”的角度上看,挑战可归纳为以下4点:

  • 不清楚选哪些商品进行促销? 选高销品利润薄可能亏本;选积压品可能不受欢迎卖不出去。

  • 不清楚促销商品定什么价格? 价格定低可能会亏本;价格定高可能会滞销。

  • **不清楚定价后商品销量会如何变化?**有些商品降价后,销量可能会大增;有些商品涨价后,销量可能不变。

  • 不清楚促销能带来多大的利润? 销量大增,利润可能减少;销量减少,利润可能增加。


03 问题拆解

站在业务的角度上考虑,商家的核心诉求可总结为一句话:在“促销”中,如何“定价”才能保证合理的利润?

要想回答这个问题,就必须知道价格和利润的关系,即定什么价格能得到什么利润。我们都知道:商品利润 = (商品售价 - 商品成本价) 商品销量* 。(注意:这里的利润指商品毛利,未考虑仓储/运营/税收等成本。)

观察上述公式,商品利润是最终的结果,商品售价是待“定价”的变量,商品成本价是已知的常量,商品销量是一个未知的变量。我们只要知道商品销量的取值,就可以知道定什么价格下能得到什么利润了

那么,商品销量这个变量该如何被量化呢? 我们都知道商品价格是影响商品销量的重要因素。从整体上看,商品的价格和商品的销量大概率呈现负相关,即价格越高,销量越低。但这并不意味着这种相关性在商品的某个局部价格区间下同样成立。

举个例子说明:泰国猫山王榴莲的是一种比较昂贵的进口水果,市场价大概90-110元/斤。如果商家打折出售1元/斤,肯定1秒就会被抢光;如果商家定价9999元/斤,估计大概率无人购买,当然土豪除外。但这一现象一定能推测出商家定价95元时肯定会比定价105元时销量高吗?显然不一定。也许这两种价格下的销量并没有太大的差别,因为能消费的起泰国猫山王榴莲的客户对10元以内价格波动的感知是微弱的。但如果10元的价格波动发生在鸡蛋上,销量可能会天差地别。

由此,我们可以得出一个重要的结论:对于不同的商品来说,在一定的价格区间内,相同幅度的价格波动所带来的销量波动的幅度可能是不同的

这也就意味着,我们如果能找到每种商品的合适的价格区间,并量化出区间内价格与销量的关系,就能预估出每种商品的在不同价格下的大致销量,进而估算出大致的利润,这种定价方式叫做精细化定价。通过这种方式,我们可以精细化地制定出每种商品合适的价格,在保证消费者享受部分商品折扣的同时,实现商家利润的合理最大化。(还有一种更精细化的定价方式叫做差异化定价,侧重于考虑到不同客户群体的消费偏好和消费能力,大家有兴趣可以了解一下。)

接下来,我们用简单的数学语言描述一下该问题:

上述公式中,表示商家售卖商品集合;表示商品的成本价;表示商品的售价;表示商品的销量;表示商品销量与商品售价之间的量化函数;和分别商品合适的价格区间的左右边界价格。式表示商家利润最大化,即所有种类商品利润加和最大化;式表示每种商品的销量与售价之间的关系;式表示每种商品的价格均要在合适的区间。


04 核心结论

经过以上拆解,我们明确促销定价的3个主要任务:

  • 量化出商品价格与销量的关系。即确定的具体形式。

  • 找到每种商品合适的价格区间。即确定和的取值。

  • 选择出能使总利润最大化的不同商品的最佳价格。即求解出能使最大化的。


至此,我们完成了本系列第1篇(共5篇)的文章分享:(1)业务问题拆解;(2)数据预处理生成;(3)数据挖掘分析;(4)模型算法实现-价格弹性模型;(5)模型算法实现-运筹决策模型。

本篇:我们把一个实际的促销定价问题拆解成了一系列的数学问题。下篇:我们将选取一份公开数据集,向大家介绍如何将原始数据加工成可分析求解的数据。敬请期待~~~

请大家多多点赞、评论、转发、关注!大家的支持是我们持续创作的动力。我们是**【运筹匠心】** ,咱们下期见~~~

注:转发至朋友圈获10个点赞,将“截图发至后台”并回复“促销定价1-集赞完成”,可自动获取本案例数据集地址连接哈~~~


参考文献
  1. Hua J, Yan L, Xu H,et al. Markdowns in E-Commerce Fresh Retail: A Counterfactual Prediction and Multi-Period Optimization Approach[J]. arxiv, 2021.(https://arxiv.org/pdf/2105.08313.pdf)

  2. Kui Zhao, Junhao Hua, Ling Yan, et al. A Unified Framework for Marketing Budget Allocation[J]. arxiv, 20.(https://arxiv.org/pdf/1902.01128.pdf)

  3. 用相关系数进行Kmeans聚类,利用利润率、打折率、销售额、毛利润得到商品价格弹性标签,建立价格折扣力度模型(https://blog.csdn.net/weixin_45934622/article/details/114382037)

  4. 2019全国大学生数学建模竞赛讲评:“薄利多销”分析(https://dxs.moe.gov.cn/zx/a/hd_sxjm_sxjmstjp_2019sxjmstjp/210604/1699445.shtml)

  5. 策略算法工程师之路-基于线性规划的简单价格优化模型(https://zhuanlan.zhihu.com/p/145192690)

这篇关于【促销定价】背后的算法技术 1 - 业务问题拆解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588581

相关文章

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时