截至2026年10月7日,Shifter拥有规模最大的美国实时IP池,超过Oxylabs和Bright Data,而成本只是其一小部分。Shifter 现在拥有数量最多的美国活跃 IP 资源池

查看基准测试

知识

在线价格究竟变化有多快?一项波动性研究

已发布的研究揭示了从零售商网站到市场Buy Box,在线价格变化的实际频率,以及这对监控频率意味着什么。

Priya Nair

2026年10月7日 · 4 分钟阅读

每个价格监控项目都从同一个问题开始:我们需要多久检查一次?检查太少,就会错过那些你花钱想看到的变化。检查太频繁,就会花钱记录那些根本没有变动的价格。

答案取决于价格实际变化的速度有多快,而这一点已经被仔细测量过。经济学家们花了二十年时间大规模抓取在线价格来研究通货膨胀,他们的论文中包含了关于零售商重新定价频率、这一频率如何变化,以及采样方式如何扭曲观察结果的最可靠数据。

本研究将这些数据汇总在一起。以下每个数字均来自论文正文或表格,来源列于文末。

关键要点

  • 在线价格变化的速度比过去更快。 在美国大型多渠道零售商中,常规价格每月变化的频率从2008-2010年的15.4%上升到2014-2017年的27.4%。典型的常规价格维持时间从约六个半月降到了不足四个月。
  • 市场平台是另一番景象。 在一组追踪六周的Amazon畅销产品中,只有13%的产品保持同一Buy Box价格不变,一半的产品价格变动超过14次。
  • 2022-2023年的通胀飙升使各行业和各国在线价格变化的频率翻了一倍多,此前多年这一行为一直保持稳定。
  • 零售商的每日和每周检查捕捉到的变化几乎相同。 按月检查会漏掉许多变化,而将一周内的价格取平均会凭空制造出从未发生过的微小变化。
  • **合适的检查节奏取决于渠道:**零售商网站每周到每天,竞争激烈的市场平台挂牌则需要每小时或更快。

价格变化如何衡量

研究中反复出现两个指标。

  • 频率是指某产品价格与前一次观测值不同的观测次数所占的比例。月度频率为20%意味着在典型的一个月里,五分之一的产品会改变价格。
  • 隐含持续时间将频率转换为价格通常维持多久。大多数论文使用公式-1/ln(1 - f),该公式假设每一期价格变化的概率恒定;有些论文则使用更简单的1/f。同样的频率在两种算法下会得出不同的数字,因此持续时间只应在同一篇论文内部进行比较。

研究中还区分了标价(包含临时促销)与常规价(剔除促销)。一个产品在周末促销中降价、之后恢复原价,在标价统计中算作两次变化,而在常规价统计中则不计为变化。

零售商价格的表现

最详尽的证据来自Alberto Cavallo在MIT和Billion Prices Project的研究,该项目到2010年时已经从50个国家300多家零售商每天收集五百万条价格数据。他2018年针对美国大型多渠道零售商的研究,使用汇总为月度频率的每日数据,展示了十年间定价速度加快了多少:

时期常规价格月度变化频率隐含持续时间涨价比例降价比例变化的平均幅度
2008-201015.4%6.5个月6.9%8.9%17.5%
2011-201322.4%4.5个月10.3%12.1%16.2%
2014-201727.4%3.7个月12.5%15.0%15.0%

来源:Cavallo (2018年),《More Amazon Effects》,表1。持续时间使用1/f计算。

若将促销计算在内,月度频率在同一时期内从21%上升到超过31%。价格变化变得更频繁,幅度也略小。

这种加速在各品类之间并不均匀。休闲娱乐和电子产品的常规价格持续时间从13.1个月降到5.5个月,家具和家居用品从14.2个月降到5.9个月。食品和非酒精饮料则持平在6.4个月。变化最快的品类正是在线竞争增长最多的品类。

竞争在产品层面也有所体现。在2016年至2018年每天追踪的约50,000件Walmart商品中,那些同时在Amazon上出售的商品价格维持时间比其他商品短约20%。在服装和鞋类品类中,这一差距更大。

线上和线下价格的联动程度超出许多人的想象。 在另一项针对10个国家56家大型多渠道零售商的研究中,在线价格与门店价格一致的比例为72%,在线价格变化的每周频率(7.6%)与线下(6.8%)并无显著差异。对于同时进行线上线下销售的零售商而言,其网站通常能可靠地反映货架情况。我们关于检测地理定向和动态定价的指南涵盖了并非如此的情况。

市场平台价格的表现

市场平台是定价变化最快的地方。东北大学研究人员在2016年的一项研究追踪了1,641件Amazon畅销产品,每25分钟记录每件产品的前20名卖家情况。在六周内:

指标结果
Buy Box价格从未变化的产品比例13%
Buy Box价格变化超过14次的产品比例50%
Buy Box获胜者从未变化的产品比例31%
被检测到使用算法定价的卖家数量543个,占所有卖家的2.4%
在某产品上变价20次以上的卖家中使用算法定价的比例38%

来源:Chen、Mislove和Wilson (2016年)。

有些产品在六周内Buy Box变化达数百次,远超过每天一次,而大多数单个卖家从未改变过自己的价格。一小部分采用算法定价的卖家带动了大部分的价格波动。有算法定价卖家参与的产品,几乎从未保持Buy Box价格不变(2%),而没有此类卖家参与的产品这一比例为20%。

重新定价工具如今在Amazon之外也很普遍。在欧盟委员会2017年的电子商务行业调查中,53%的零售商表示会追踪竞争对手的在线价格。其中三分之二使用软件来实现这一点,而在使用软件的零售商中有78%会据此调整自己的价格。关于这在实践中如何运作,请参阅我们关于构建实时竞争价格信息流的指南。

通胀飙升期间发生了什么

价格制定并非一成不变。Cavallo、Lippi和Miyahara使用来自美国及多个欧洲国家的每日抓取价格数据发现,在线价格变化的频率在2021年之前大致保持稳定,此后”在2022年和2023年显著上升,在所有行业和国家均翻了一倍多”。

起点其实很慢。在飙升发生之前的2019-2021年,食品和饮料零售商平均每年改变常规价格约1.9次,从英国的0.8次到荷兰的2.3次不等。

官方消费者价格数据(主要覆盖实体店)也呈现出同样的模式:

  • **美国:**剔除促销后的月度价格变化频率从疫情前的约10%上升到2022年初略高于20%的峰值,到2024年回落到约13%(美联储理事会,2025年)。
  • **欧元区:**月度频率从2010-2019年平均的8%上升到2022年的12%,随后在2023年和2024年回落(意大利银行,2026年)。同一研究发现,德国数据中在线价格的变化往往比线下更频繁。

2019年足够用的监控节奏,到了2022年就不够用了。节奏应随市场变化而重新审视,而非一次设定就一劳永逸。

在线与线下基准的对比

作为参考,关于美国消费者价格的经典研究发现,包含促销的价格中位持续时间为4.3个月,剔除促销后为5.5个月(Bils和Klenow,2004年)。仅就常规价格而言,1988-2005年间的中位数为8到11个月(Nakamura和Steinsson,2008年)。

与此基准相比,2014-2017年美国大型在线零售商3.7个月的常规价格持续时间大约快了两到三倍。两者使用不同的数据和方法,因此比较只是大致的,但方向是明确的。

这对监控节奏意味着什么

对监控团队最有用的发现来自Cavallo 2018年的研究,该研究比较了同一抓取数据在不同采样间隔下的结果:

采样方式美国隐含持续时间发生的情况
每日2.68个月基准
每周2.91个月几乎相同:“很少有产品每周价格变化超过一次”
每月4.7个月”月内许多价格变化未被观察到”
每周平均值约为每周价格持续时间的一半取平均会产生虚假的小幅变化

来源:Cavallo (2018年),《Scraped Data and Sticky Prices》,已发表版本。

由此可得出四条实用规则。

  1. 对于零售商网站,每周采样能捕捉到大部分变化,每天采样则几乎能捕捉到全部。 从每周改为每天,测量结果几乎没有差别。从每周改为每月,则会造成很大差异。
  2. 在测量变化之前绝不要对价格取平均。 每周平均值会使测得的持续时间和变化幅度都减半,因为一次发生在周中的降价会变成两次较小的变动。应存储每一个观测到的价格。
  3. 对于市场平台,分钟和小时级别的差异很重要。 竞争激烈的Buy Box价格一天之内可能变化多次。东北大学团队最终确定每25分钟采集一次,因为他们发现每分钟爬取大多捕捉到的是市场平台自身系统产生的短暂波动,而非真实的重新定价。
  4. 既要记录价格,也要记录库存情况。 在Cavallo的每日数据中,22%到37%的每日观测值缺失,原因是产品缺货或页面无法采集,而缺货本身被证明是一个有用的信号:在美国,缺货率在疫情期间从约14%激增到超过35%。数据中的空缺本身就是信息,而不仅仅是噪音。
渠道建议的起始节奏
零售商网站,稳定品类(杂货、家居用品)每周一次,促销期间每天一次
零售商网站,快速变化品类(电子产品、家居用品)每天一次
有多个卖家的市场平台挂牌每小时一次,畅销品更快
旅行票价和酒店房价每个出发或入住日期每天一次,临近日期时更频繁

在自己的数据上进行测量

如果你已经在收集价格数据,就可以测量自己市场的波动性,而不必依赖别人样本的平均值。下面的函数可根据每日观测值计算频率、隐含持续时间、涨价比例以及变化幅度的中位数:

import math
from collections import defaultdict


def change_stats(observations, min_change=0.0):
    """observations: (product_id, day, price) tuples from a daily scrape.

    Compares each price with the product's previous observed price on the day
    before. Gaps are skipped, not filled: a price carried across a missing day
    would hide changes, and an interpolated one would invent small ones.
    """
    by_product = defaultdict(dict)
    for product, day, price in observations:
        by_product[product][day] = price

    pairs = changes = increases = 0
    sizes = []
    for prices in by_product.values():
        for day in sorted(prices):
            previous = prices.get(day - 1)
            if previous is None:
                continue
            pairs += 1
            change = (prices[day] - previous) / previous
            if abs(change) > min_change:
                changes += 1
                increases += change > 0
                sizes.append(abs(change))

    frequency = changes / pairs if pairs else 0.0
    sizes.sort()
    return {
        "daily_pairs": pairs,
        "frequency": round(frequency, 4),
        # Mean days between changes if each day were an independent draw.
        "implied_duration_days": round(-1 / math.log(1 - frequency), 1) if 0 < frequency < 1 else None,
        "share_increases": round(increases / changes, 3) if changes else None,
        "median_abs_change": round(sizes[len(sizes) // 2], 4) if sizes else None,
    }

它只将每个价格与前一天的价格进行比较。缺失的日期会被跳过而非填补,因为将最后一个价格延续下去会掩盖真实变化,而用估算值填补空缺则会凭空制造出微小的变化。这正是研究在平均化数据中发现的同一种扭曲。

一个简单的例子:

from price_changes import change_stats

observations = [
    ("sku-1", 1, 19.99), ("sku-1", 2, 19.99), ("sku-1", 3, 17.99), ("sku-1", 4, 17.99),
    ("sku-2", 1, 5.49), ("sku-2", 2, 5.49), ("sku-2", 4, 5.79), ("sku-2", 5, 5.79),
    ("sku-3", 1, 249.00), ("sku-3", 2, 239.00), ("sku-3", 3, 249.00), ("sku-3", 4, 249.00),
]
print(change_stats(observations))
{'daily_pairs': 8, 'frequency': 0.375, 'implied_duration_days': 2.1, 'share_increases': 0.333, 'median_abs_change': 0.0418}

第二个产品的价格在缺失的一天内从5.49涨到5.79,因此该变化未被计入。在真实数据中,缺失的日期往往是缺货和采集失败的日期,应在报告结果时一并说明缺失的数量。一开始就干净地采集数据会有所帮助:因被封锁而导致的缺失观测,看起来与因缺货而导致的缺失观测并无二致。我们关于每条干净记录的成本的指南阐述了失败率如何影响监控预算。

针对每个品类和每个竞争对手分别运行该函数。隐含持续时间只有几天的品类需要每天或更频繁地采集。以月为单位计量的品类则可以每周检查一次而不会错失信息。

常见问题

在线价格多久变化一次?

在美国大型多渠道零售商中,2014-2017年间约27%的产品在典型月份内改变了常规价格,因此一个常规价格大约维持四个月。市场平台的价格变化要快得多:在一项研究中,一半的Amazon畅销产品在六周内Buy Box价格变化超过14次。

每日价格监控是否必要?

对大多数零售商网站来说,每周监控就能捕捉到大部分变化,比较每日和每周采样的研究发现两者结果几乎相同。每日监控对快速变化的品类、促销活动和市场平台而言很重要。按月监控会漏掉许多变化。

在线价格是否比实体店价格变化更频繁?

在同时经营线上线下业务的零售商中,价格一致的比例约为72%,变化速率也相近。只有线上渠道的竞争,尤其是市场平台,才是价格变化最频繁的地方。

通货膨胀是否改变了价格变化的频率?

是的。在线价格变化的频率在2022年和2023年翻了一倍多,美国和欧元区的官方价格数据也显示出类似的上升,随后部分回落到早先水平。

结论

如今在线价格变化的速度比十年前更快,市场平台上的变化速度远远快于零售商网站,而通胀上升时变化速度还会进一步加快。研究给出了一条明确的监控准则:在零售商网站上,每周采集能捕捉到每日采集所能捕捉到的大部分内容,按月采集会漏掉许多变化,而取平均的数据会扭曲真实情况。衡量你自己的品类,根据它们实际变化的速度设定节奏,并在市场变化时重新审视这一节奏。

来源与参考文献

Cavallo的多项研究使用了来自PriceStats的数据,他是该公司的联合创始人;相关论文对此均有披露。

准备好开始了吗?

试用 Shifter 住宅代理,205M+ 个 IP,195+ 个国家,低至 $0.10/GB。

立即开始