麦时尚平价快时尚市场容量预测程序,适配M型社会大众平价穿搭赛道规模。

📅 2026/7/12 15:48:48
麦时尚平价快时尚市场容量预测程序,适配M型社会大众平价穿搭赛道规模。
定位为教学级市场容量测算工具Educational Demo去营销、中立化避免任何引流与商业承诺仅用于课程讨论、工程思维训练与战略沙盘教学。术语说明“M 型社会”源自大前研一等学者的消费结构理论指财富分配向高/低端两极集中、中产层相对收缩的现象“麦时尚”此处作为平价快时尚Mass-market Fast Fashion的简称使用非特指单一商业品牌。一、实际应用场景描述在时尚产业与品牌创新课程的“市场洞察”模块中“如何估算一个赛道容量”是高频但常被简化的议题。典型教学/实践场景包括- 课程作业学生需要为“平价快时尚 / 大众通勤穿搭”赛道估算可触达市场规模- 品牌企划判断某一价格带、某一人群是否值得进入- 战略工作坊用 TAM / SAM / SOM 框架做 What-if 推演- 行业研究入门理解“人口 × ARPU”“自上而下 / 自下而上”两类测算逻辑本工具尝试将 M 型社会人口分层 与 平价穿搭赛道 结构化通过透明、可审计的参数模型输出 TAM / SAM / SOM 三级市场容量估算用于课堂讨论与方法论训练。二、引入痛点中立表述- 市场规模常被拍脑袋引用第三方报告数字但不清楚口径与假设- 人口分层缺失直接套用“全国人口 × 人均服装消费”忽略 M 型结构下不同层级消费行为差异- TAM/SAM/SOM 混淆三者边界不清教学场景缺乏最小可运行原型- What-if 能力弱人口占比、ARPU、渗透率任一变量变化时需重新手工推算- 工程化误区把行业报告截图当作“模型”不可复现、不可审计本工具不预测真实市场规模而是回答“在给定假设下M 型社会中平价快时尚赛道的三级容量如何结构化拆解”三、核心逻辑讲解1. M 型人口分层教学模型层级 定义 对平价穿搭的意义顶层Top 高净值奢侈/设计师导向 非目标赛道可作对照中层Middle塌陷中 原中产消费趋于“精明化” 部分流向平价优质底层Bottom扩张中 价格敏感追求性价比 平价快时尚主战场2. 三级市场容量框架TAM / SAM / SOM- TAMTotal Addressable Market理论最大市场总人口 × 平价穿搭适用人口比例 × 人均年服装支出- SAMServiceable Addressable Market商业模式可触达部分TAM × 渠道/价格带覆盖比例- SOMServiceable Obtainable Market短期内可获取的份额SAM × 竞争格局/品牌份额假设自上而下公式可表达为市场规模 ≈ 目标人口 × 渗透率 × ARPU3. 关键变量变量 含义total_population 区域总人口bottom_pct / mid_pct / top_pct 人口分层占比合计1fashion_share_of_spend 服装占个人消费比例分层差异arpu_fast_fashion 平价快时尚人均年支出channel_coverage 渠道可触达比例SAMbrand_share 品牌可获取份额SOM4. 关键假设必须显式声明- 人口占比、ARPU、渗透率均为教学假设非官方统计- 未考虑地域差异、通胀、跨境、二手分流- 输出为量级估算order-of-magnitude不可直接用于融资材料四、代码模块化注释清晰目录结构m_shaped_ff_market/├── models.py # 数据结构与默认参数├── population.py # 人口分层计算├── tam_sam_som.py # 三级容量计算├── scenario.py # What-if 情景扰动├── reporter.py # 结果格式化├── main.py # CLI 入口 demo└── README.mdmodels.pymodels.py定义 M 型社会市场测算的数据结构与默认参数。所有数值均为教学示例可按课程/区域替换。from dataclasses import dataclassdataclassclass MarketInput:total_population: int # 区域总人口人bottom_pct: float # 底层人口占比mid_pct: float # 中层人口占比top_pct: float # 顶层人口占比# 各层人均年服装支出元教学假设arpu_bottom: floatarpu_mid: floatarpu_top: float# 平价快时尚在每层的可触达比例fast_fashion_penetration_bottom: floatfast_fashion_penetration_mid: floatfast_fashion_penetration_top: float# SAM / SOM 参数channel_coverage: float # SAM 占可触达市场比例brand_share: float # SOM 占 SAM 比例dataclassclass MarketResult:tam: floatsam: floatsom: floatbottom_pop: intmid_pop: inttop_pop: intdetail_by_tier: dict# 教学用默认参数示意非真实统计数据DEFAULT_INPUT MarketInput(total_population140_000_000, # 1.4 亿示例区域bottom_pct0.55,mid_pct0.30,top_pct0.15,arpu_bottom800,arpu_mid2000,arpu_top6000,fast_fashion_penetration_bottom0.70,fast_fashion_penetration_mid0.25,fast_fashion_penetration_top0.05,channel_coverage0.60,brand_share0.03,)population.pypopulation.py人口分层计算。def split_population(inp: MarketInput) - tuple[int, int, int]:返回 (bottom_pop, mid_pop, top_pop)total inp.total_populationreturn (int(total * inp.bottom_pct),int(total * inp.mid_pct),int(total * inp.top_pct),)tam_sam_som.pytam_sam_som.pyTAM / SAM / SOM 三级市场容量计算。from .population import split_populationdef calc_market(inp: MarketInput) - MarketResult:bottom_pop, mid_pop, top_pop split_population(inp)# ---- TAM分人群加总 ----# 平价快时尚可触达人群 × 对应 ARPUtam_bottom (bottom_pop * inp.fast_fashion_penetration_bottom * inp.arpu_bottom)tam_mid (mid_pop * inp.fast_fashion_penetration_mid * inp.arpu_mid)tam_top (top_pop * inp.fast_fashion_penetration_top * inp.arpu_top)tam tam_bottom tam_mid tam_top# ---- SAM商业模式可触达 ----sam tam * inp.channel_coverage# ---- SOM品牌可获取 ----som sam * inp.brand_sharefrom .models import MarketResultreturn MarketResult(tamtam,samsam,somsom,bottom_popbottom_pop,mid_popmid_pop,top_poptop_pop,detail_by_tier{bottom: {pop: bottom_pop, tam_contrib: tam_bottom},mid: {pop: mid_pop, tam_contrib: tam_mid},top: {pop: top_pop, tam_contrib: tam_top},},)scenario.pyscenario.pyWhat-if 情景扰动单变量或组合变量变化。def perturb(inputs: list[tuple[MarketInput, str]], base_result) - list[dict]:对每组 (inp, label) 重新计算并与 baseline 对比。from .tam_sam_som import calc_marketresults []for inp, label in inputs:res calc_market(inp)results.append({label: label,tam: res.tam,sam: res.sam,som: res.som,tam_delta_pct: (res.tam - base_result.tam) / base_result.tamif base_result.tam else None,})return resultsreporter.pyreporter.py终端格式化输出。def print_report(result: MarketResult, inp: MarketInput):print(\n * 56)print( M 型社会 · 平价快时尚市场容量教学演示)print( * 56)print(f\n 人口分层)print(f 底层: {result.bottom_pop:,} 人 ({inp.bottom_pct:.0%}))print(f 中层: {result.mid_pop:,} 人 ({inp.mid_pct:.0%}))print(f 顶层: {result.top_pop:,} 人 ({inp.top_pct:.0%}))print(f\n TAM理论可触达)print(f 底层贡献: ¥{result.detail_by_tier[bottom][tam_contrib]:,.0f})print(f 中层贡献: ¥{result.detail_by_tier[mid][tam_contrib]:,.0f})print(f 顶层贡献: ¥{result.detail_by_tier[top][tam_contrib]:,.0f})print(f TAM 合计: ¥{result.tam:,.0f})print(f\n SAM渠道可触达覆盖率 {inp.channel_coverage:.0%})print(f SAM: ¥{result.sam:,.0f})print(f\n SOM品牌可获取份额 {inp.brand_share:.0%})print(f SOM: ¥{result.som:,.0f})print(f\n{ * 56})print( 说明)print( - TAM/SAM/SOM 为教学级量级估算非真实统计)print( - 参数可替换为国家/城市/平台级数据)print( - 建议做多情景扰动观察结论稳健性)print(f{ * 56}\n)main.pymain.pyCLI 入口内置 baseline 两个 What-if 情景。运行python main.pyfrom models import DEFAULT_INPUT, MarketInputfrom tam_sam_som import calc_marketfrom reporter import print_reportfrom scenario import perturbdef run_demo():base DEFAULT_INPUTbase_result calc_market(base)print_report(base_result, base)# What-if 情景scenarios [(MarketInput(**{**base.__dict__, bottom_pct: 0.60, mid_pct: 0.25, top_pct: 0.15},),情景 A底层扩张至 60%M 型加剧),(MarketInput(**{**base.__dict__, arpu_bottom: 1000, channel_coverage: 0.70},),情景 B底层 ARPU↑ 渠道覆盖↑),]perturbed perturb(scenarios, base_result)print( What-if 情景对比)print( * 56)for p in perturbed:label p[label]tam p[tam]delta p[tam_delta_pct]line f {label}line f\n TAM: ¥{tam:,.0f}if delta is not None:line f ({delta:.1%} vs baseline)print(line)print( * 56)if __name__ __main__:run_demo()五、README.md# M-Shaped Fast-Fashion Market Sizing教学演示一个轻量级 Python 工具基于 **M 型社会人口分层** 与 **TAM/SAM/SOM 框架**估算平价快时尚赛道的市场容量量级。## 定位与边界- 目的把“市场规模”从引用报告数字转为可审计的参数模型- 非行业数据库不替代 Statista / Euromonitor / 券商研报- 忽略地域差异、通胀、跨境、二手、库存周转- 输出为 **order-of-magnitude 量级估算**不可直接用于融资材料- 适用于时尚产业课程、战略沙盘、作业原型## 环境- Python ≥ 3.8仅标准库## 安装与运行bashgit clone repo-urlcd m_shaped_ff_marketpython main.py## 模块说明| 文件 | 职责 ||---|---|| models.py | 数据结构、默认参数 || population.py | 人口分层 || tam_sam_som.py | TAM / SAM / SOM 计算 || scenario.py | What-if 单变量扰动 || reporter.py | 终端格式化 || main.py | CLI 入口与演示情景 |## 如何调整### 替换区域/人口修改 models.py 中 DEFAULT_INPUT.total_population 与分层占比。### 接入外部数据将 arpu_* / fast_fashion_penetration_* 替换为地方统计或报告值。### 扩展 SAM 逻辑在 tam_sam_som.py 中引入渠道、价格带、线上/线下细分。### 批量情景循环调用 scenario.perturb()或从 JSON/YAML 读取参数矩阵。## TAM / SAM / SOM 简要- TAM理论最大市场所有人 × 可触达比例 × ARPU- SAM商业模式/渠道可覆盖部分- SOM特定品牌在中短期内可获取的份额## 许可证MIT教学用途自行承担使用风险六、核心知识点卡片中立、去营销卡片 1 · M 型社会与消费分层- 大前研一等提出财富向两端集中中产相对收缩- 对时尚产业含义奢华端DSPD 平价端BLCR同步扩张中层受挤压- 教学要点人口分层是市场测算的前置假设需显式声明卡片 2 · TAM / SAM / SOM 框架- 战略分析经典工具用于区分“理论市场 / 可触达 / 可获取”- 常见误区把 TAM 当成年收入预期- Python 映射三级计算链式调用参数集中管理卡片 3 · 自上而下 vs 自下而上测算- 自上而下宏观人口/行业报告 → 细分过滤- 自下而上单客 ARPU × 客户数 → 放大- 教学建议两种并行交叉校验量级卡片 4 · What-if 敏感性分析- 核心思想单一变量扰动观察结论是否反转- 工程实现参数副本 重新计算 相对变化输出- 教学价值培养“假设意识”避免把数字当真理七、总结这个程序的核心价值不在于“算出某市场多少亿”而在于三点1. 把“市场规模”从报告引用变成可拆解、可审计的参数结构2. 展示如何用 TAM/SAM/SOM M 型分层构建一个透明的教学级测算模型3. 为课程提供一个“从消费理论到数量化”的最小可运行原型对全栈工程师而言这是典型的领域建模 参数驱动 CLI 工具对技术博主而言重点应放在方法论透明度、假设声明与教学延伸而非给出“权威市场数字”。利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛