尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

港股02128研报复现:塑料管道CR5与目标价敏感性分析

港股02128研报复现:塑料管道CR5与目标价敏感性分析 简介这份港股公司首次覆盖研报聚焦中国联塑02128面向关注地产建筑、建材与港股配置的读者系统回应工程塑管龙头的成长弹性、持续性与估值定价问题。PDF 单文件压缩包 1 个 PDF、约 1.36MB目录层级完整涵盖投资评级、目标价、盈利预测、行业供需测算、渠道与成本优势及风险提示等模块便于按章节检索引用。内容上报告给出买入首次评级与 21.08 港元目标价测算 21—23 年归母净利依次为 31.1/40.9/48.3 亿元需求端拆解地产竣工、基建、老旧小区改造和农业灌溉对 2022 年塑管需求的拉动判断行业增速约 6%供给端指出 2020 年 CR5 仅 24%对标欧美仍有集中度提升空间。公司层面梳理 16% 市占率、303 万吨产能、30 余个生产基地和 2512 家经销商网络并提示建材家居、供应链平台 21H1 收入增速达 69%、74% 的第二增长极。目前已有 80 人学习下载适合需要快速掌握个股逻辑、行业格局与估值框架的读者。1. 02128 这份首次覆盖报告真正的信息量不在评级上14.5 港元的现价、21.08 港元的目标价、6 个月“买入”这三个数字最容易被截图转发也最不该先看。这份针对港股 02128 的首次覆盖报告真正的复用价值藏在两处一是把“2022 年塑料管道需求增速约 6%”拆成地产竣工、基建专项债、老旧小区改造、农业灌溉四块可以分别验算的口径二是把“20 年市占率 16%、行业 CR5 仅 24%”这条集中度逻辑落到销量口径、产能口径和吨净利链条上。前者决定你能不能自己改假设后者决定你改完假设之后知不知道去盯哪张报表。适合做地产链与建材行业研究、写行业模型、或者想用 pandas 把一份研报测算从头复现一遍的人。下面按“需求—供给—公司—估值”的顺序拆每一段都给出能直接跑的代码和必须人工核对的参数。2. 需求端四块拼图把“2022 年 6% 增速”拆成可复算的口径2.1 按下游拆不要按 GDP 拍2017 年塑料管道的下游分布是农业用管 27%与地产相关的建筑给排水与供暖 19%与基建相关的市政给排水、燃气用管、电力光缆护套合计 38%三大领域加总超过 80%。材质上PVC 管 2019 年占约 47%口径一般在 400mm 以下主要吃建筑给排水PE 管口径 400mm 到 1200mm用于市政给水和城市燃气PP 管口径多在 160mm 以下其中 PPR 约占 PP 管的 80%家装热水管基本是 PPR 的天下。三者是场景互补不是替代关系。这意味着四类需求的驱动变量完全不同用一个宏观单变量去回归残差会大到没法解释。常见做法是分块建模再相加每块单独给假设、单独能证伪。下游领域2017 年占比主流材质核心驱动变量报告给出的 2022 年拉动农业用管27%PE 为主有效灌溉面积、农村供水管网1.2%建筑给排水与供暖19%PVC、PPR竣工面积、精装渗透率近 1%市政给排水、燃气、电力护套38%PE、PVC专项债发行进度、管网投资1.2%老旧小区改造交叉项单列PVC、PE改造开工套数与投资额3%注意第四行是交叉项它同时落在建筑给排水和市政管网里这也是后面最容易重复计算的地方。2.2 地产侧为什么用竣工而不是销售额房地产新开工领先竣工约三年2017 年以来新开工与竣工增速的“剪刀差”缺口在收窄意味着前期积压的未交付项目进入施工末端窗口。塑管安装集中在主体封顶之后、竣工验收之前属于后周期里的末端工序所以看竣工面积比看销售金额更贴近真实用管量。精装修渗透率提升是第二个变量。它把原本分散在装修队手里的采购权收归开发商集采模式下投标资质、账期承受力、供货半径都变成门槛龙头天然占优。落地到模型里地产侧用管量 ≈ 竣工面积 × 单位面积用管量 × 精装渗透率系数三个参数里最先被质疑的是单位面积用管量建议用历史三年均值做基准、上下浮动 15% 做情景。2.3 专项债到实物工作量有 36 个月时滞新增专项债额度和发行进度累计值是最前置的观测指标但管道属于项目里的配套材料进场时间点在项目开工之后而不是债券发行当月。做年度测算时用上年四季度到当年三季度的累计发行额作为当年需求的代理变量比用全年额度更稳。这里有个容易被忽略的坑发行进度是“累计值”曲线1 月到 12 月单调递增直接拿来做线性回归会得到一个漂亮但没有意义的相关系数。正确做法是先做差分取“季度新增发行额”再和管网投资完成额对齐。2.4 老旧小区改造与农业两块最容易重复计算的需求老旧小区改造的用管包括给排水立管更换、燃气管道改造、雨污分流本质是存量替代加局部新建。如果在 2.2、2.3 里已经按竣工面积和管网投资各算过一遍再按改造投资额乘用管系数就是重复计入。处理办法是新建口径与存量改造口径分列最后做一次去重校验——把各块加总结果与行业总产量增速做残差比对残差超过 2 个百分点就回头查口径。农业侧看农田有效灌溉面积增速和农村供水管网建设这块的波动比前两块小参数可以给得保守一些报告测算 2022 年拉动 1.2%。2.5 用 pandas 合成增速并做情景压测import pandas as pd # 口径说明每一行是“该驱动项对 2022 年塑管需求增速的拉动”单位是百分点 # 不是增速本身所以四行可以直接相加 drivers pd.DataFrame( { 驱动项: [地产竣工精装集采, 基建专项债, 老旧小区改造, 农业灌溉与供水], 悲观: [0.6, 0.7, 2.0, 0.8], 中性: [1.0, 1.2, 3.0, 1.2], 乐观: [1.6, 1.8, 3.8, 1.6], } ).set_index(驱动项) print(drivers) print(三情景加总百分点) print(drivers.sum().round(2)) # 去重系数老旧小区改造与地产/基建存在口径重叠农业与基建部分重叠 overlap pd.Series( {地产竣工精装集采: 1.0, 基建专项债: 1.0, 老旧小区改造: 0.8, 农业灌溉与供水: 0.9} ) print(去重后的中性情景) print(drivers.mul(overlap, axis0).sum().round(2))逻辑说明drivers的每个单元格是“拉动的增速百分点”天然可加这与把增速百分比相乘的做法完全不同后者会系统性低估。set_index之后按索引对齐mul(..., axis0)表示按行即按驱动项逐行乘以去重系数而不是按列广播。参数说明三列情景分别对应“竣工增速 0% / 3% / 6%”“专项债实物工作量同比持平 / 小幅增长 / 明显加速”“改造开工套数完成计划的 80% / 100% / 120%”。中性情景加总 6.4 个百分点去重后 5.68报告给出的“约 6%”正好落在两者之间说明它的口径介于去重与不去重之间。你自己跑的时候只要把三列假设换成自己的判断结论就能立刻更新。3. 供给端集中度CR5 只有 24%提升这件事怎么量化3.1 产量口径与销量口径必须先对齐报告里有一处细节很关键头部企业市占率对比时分母用全国总产量而联塑的分子用的是销量。这不是随手为之。联塑 21H1 产能 303 万吨产能与实际出货之间有开工率和库存的缓冲用销量更接近真实市场份额但多数同业公司只披露产量甚至只披露产能如果统一用产能做分子就会把开工率不足的企业份额算高。口径数据来源适用场景常见坑企业销量年报分产品附注计算市场份额部分公司不披露需用产量倒推企业产量年报、调研纪要产能利用率分析含自用与外销与销量有口径差行业总产量行业协会与咨询机构做分母统计范围含出口与内需口径不匹配表观消费量产量进口-出口需求侧测算没剔除库存变动统一的原则只有一条分子分母必须来自同一维度。要么都按内销口径要么都按含出口口径混用会让份额出现两三个百分点的漂移而这个量级足以改变“集中度是否在提升”的结论。3.2 海外对标的可比性边界报告引用的两个对标数字是2014 年欧洲塑料管道行业 CR10 已达 40%2012 年美国龙头 JM Eagle 市占率约 22%。这两个数用来说明国内 CR5 仅 24% 有优化空间方向没问题但直接照搬会出问题。管道是典型的“运输半径敏感”品类大口径管材的运输成本占比高天然形成区域格局。欧洲的 CR10 是在跨国并购和统一产品标准的基础上形成的美国的 22% 背后是几十年城镇化完成后的存量替换市场。国内的区域差异还很大2019 年头部企业在华东和华南的市占率结构完全不同所以更合理的对标方式是按区域拆先看华东、华南这类成熟市场头部企业的实际份额再看全国加权后的数字用区域收敛速度外推全国。3.3 集中度提升的两条传导链第一条链是地产集中度传导开发商集中度提升精装渗透率提升集采模式强化龙头在资金和规模上占优中小厂退出。第二条链是成本传导上游 PVC 树脂、PE 粒子价格波动时大厂的大规模采购议价能力和套期保值能力更强单位成本曲线更平小厂在原料高位时直接亏损停产。两条链的共同点是都需要时间所以集中度提升是一条斜率不大的趋势线做模型时建议给“每年 1 到 1.5 个百分点”的提升斜率而不是一步跳到海外水平。3.4 pandas 复算 CR5 与龙头份额import pandas as pd # 分母2020 年全国塑料管道总产量万吨来源口径需与分子一致 industry_output 1600.0 # 分子企业销量。这里用联塑“20 年市占率约 16%”反推出 256 万吨作为锚点 # 其余为占位值实际使用时请用年报附注里的销量替换 firms pd.DataFrame( {企业: [中国联塑, 同业A, 同业B, 同业C, 同业D, 其他], 销量_万吨: [256.0, 62.0, 45.0, 21.0, 18.0, 1198.0]} ).set_index(企业) firms[份额_%] (firms[销量_万吨] / industry_output * 100).round(1) top5 firms[份额_%].sort_values(ascendingFalse).head(5) print(firms) print(fCR5 {top5.sum().round(1)}%龙头份额 {top5.iloc[0]}%) # 校验所有份额之和应等于 100%允许四舍五入误差 0.1 print(f份额合计校验{firms[份额_%].sum():.1f}%)逻辑说明先把分母固定成单一来源避免中途换口径再用份额合计做一次自检如果和 100% 差超过 0.3说明分子里有企业销量口径不一致比如把口径含出口的销量放进了内需分母。参数说明industry_output换成别的咨询机构数据时CR5 会整体平移所以任何引用 CR5 的地方都要把分母来源写清楚。销量_万吨是唯一需要手工维护的输入建议在表格里加一列“来源页码”方便复核时回溯到具体年报附注。4. 公司层面渠道密度、吨净利与杜邦拆解怎么验4.1 渠道效率看单位销售费用不看经销商总数报告提到公司与 2512 名独立独家经销商建立合作关系并建立了生产基地与一级经销商协同的渠道结构。经销商数量本身不是优势单位销量对应的销售费用才是。同样卖一吨管谁花更少的销售费用把货铺到下沉市场谁的渠道效率就更高。import pandas as pd # 占位数据演示计算流程实际请替换为年报数值 data pd.DataFrame( {公司: [中国联塑, 同业A], 销售费用_亿元: [12.0, 3.0], 营业收入_亿元: [280.7, 60.0], 销量_万吨: [256.0, 55.0]} ).set_index(公司) data[销售费用率_%] (data[销售费用_亿元] / data[营业收入_亿元] * 100).round(2) data[单位销售费用_元每吨] ( data[销售费用_亿元] * 1e8 / (data[销量_万吨] * 1e4) ).round(0) print(data)逻辑说明两个指标要一起看。销售费用率低但单位销售费用高说明产品单价高、走的是高端小批量路线单位销售费用低但费用率高说明销量大、摊薄能力强这正是规模效应在渠道端的体现。参数说明销量_万吨必须用与 3.4 节相同的口径否则跨公司比较无意义。坤彩、雄塑这类以产能代替销量的公司需要先用产能利用率折算出销量再入表。4.2 产能—销量—吨净利的链条联塑 21H1 产能 303 万吨20FY 收入 280.7 亿元、同比 6.6%21H1 收入 147.2 亿元、同比 28.1%归母净利 21H1 为 18.1 亿元、同比 30.7%。这几组数字背后是同一条链条产能利用率决定固定成本摊薄采购规模决定原料单价自动化、数字化、智能化产线决定人工与能耗三者叠加形成吨净利。吨净利 归母净利 ÷ 销量。这个指标容易被原料价格带偏所以看的时候要拆成“吨售价 - 吨成本”而不是只看绝对数。指标计算方式观察窗口异常信号产能利用率销量 ÷ 产能半年度长期低于 70% 说明扩张超前于需求吨售价管道收入 ÷ 销量半年度与 PVC、PE 现货价背离超过 10% 需查产品结构吨成本管道成本 ÷ 销量半年度原料下行期成本没跟降说明采购或库存有问题吨净利归母净利 ÷ 销量年度波动幅度大于毛利率波动通常是费用端出问题4.3 杜邦拆解与现金流质量ROE 拆成净利率 × 总资产周转率 × 权益乘数之后才能看清增长是靠利润、靠周转还是靠杠杆。报告给出的资产负债率是 59.51%这个水平在制造业里不算低所以要特别关注权益乘数的贡献占比。import pandas as pd # ROE 杜邦拆解数值为占位示例 dupont pd.DataFrame( {项目: [净利率_%, 总资产周转率_次, 权益乘数, ROE_%], 基期: [13.4, 0.98, 2.47, 32.4], 预测期: [13.8, 1.02, 2.45, 34.5]} ).set_index(项目) # 三项相乘复核 ROE允许四舍五入误差 rolled (dupont.loc[净利率_%] / 100 * dupont.loc[总资产周转率_次] * dupont.loc[权益乘数] * 100).round(1) print(pd.DataFrame({披露ROE: dupont.loc[ROE_%], 复核ROE: rolled}))逻辑说明复核的意义在于发现口径差。披露 ROE 如果明显低于三项相乘的结果通常是用了平均净资产而非期末净资产或者归母净利与其他口径混用这类差异在高分红公司身上尤其明显。参数说明三项因子里权益乘数由资产负债率直接决定权益乘数 1 ÷ (1 - 资产负债率)59.51% 对应 2.47 倍。另外还要配两个现金流指标经营现金流净额 ÷ 净利润应长期大于 1总资产周转天数、应收账款周转天数、存货周转天数要与同业横向对比这三项是判断“增长质量”而不是“增长速度”的关键。4.4 把研报表格抽成 DataFrame研报里的图表大部分是图片能自动抽的只有少数嵌入了文本表格的页面。抽的时候保留页码方便回溯核对。import pdfplumber import pandas as pd pdf_path 中国联塑-2128-工程塑管龙头重视成长弹性及持续性.pdf rows [] with pdfplumber.open(pdf_path) as pdf: for page_no, page in enumerate(pdf.pages, start1): for table in page.extract_tables(): for row in table: if row and any(cell for cell in row): clean [(c or ).replace(\n, ).strip() for c in row] rows.append([page_no] clean) df pd.DataFrame(rows) # 用关键词过滤出含收入、销量、产能、市占率的行减少人工筛选量 mask df.apply(lambda r: r.astype(str).str.contains(收入|销量|产能|市占率).any(), axis1) df[mask].to_csv(extracted_tables.csv, indexFalse, encodingutf-8-sig) print(f总行数 {len(df)}命中 {mask.sum()} 行)逻辑说明extract_tables对无边框表格识别率较高对跨页合并单元格会拆成两段所以页码列必须保留人工合并时按页码和表头拼。图像类图表抽不到只能用 tabula 或者手工录入这部分工作量要提前估进项目排期。参数说明replace(\n, )处理的是单元格内换行不清掉会让后续的数值转换全部失败。utf-8-sig编码是为了在 Excel 里直接打开不乱码。5. 目标价 21.08 港元的反算与敏感性5.1 目标价三件套净利 × PE ÷ 股本# 目标价反推 np_2022 40.9 # 22 年归母净利预测亿元 pe_target 16.0 # 目标 PE shares 31.0242 # 港股总股本亿股 target_price np_2022 * pe_target / shares print(f目标价 ≈ {target_price:.2f} 港元) # 21.10与 21.08 的差来自四舍五入这个算式说明目标价由三个数唯一决定22 年归母净利 40.9 亿元、目标 PE 16 倍、总股本 31.02 亿股。反推的好处是任何一处假设变化都能立刻量化到股价上。提示这里的算法是用人民币净利除以港币股本隐含了 1:1 的汇率假设。真要严格建模净利需按当期汇率折算同一个 PE 得到的目标价会有明显差异做横向对比时要先统一这一步。5.2 净利与 PE 的敏感性网格目标 PE \ 22 年归母净利36.8 亿40.9 亿45.0 亿13x15.4217.1418.8614x16.6118.4620.3116x18.9821.1023.2118x21.3523.7326.11单位港元。这张网格里PE 每上下 1 倍目标价变动约 1.3 港元净利每变动 10%目标价变动约 2.1 港元。也就是说净利假设的敏感度高于 PE 假设估值讨论的重心应该放在盈利预测而不是倍数上。5.3 风险提示对应到哪个参数四条风险提示都能映射到模型里的具体输入上游原材料涨价对应吨成本上行、吨净利假设下调基建投资与地产竣工不及预期对应 2.5 节里“基建专项债”和“地产竣工”两行直接打折老旧小区改造执行力度不及预期对应那 3 个百分点可能要砍掉三分之一竞争加剧对应 3.3 节里每年 1 到 1.5 个百分点的份额提升斜率下修。把风险写成参数模型才是活的。下次拿到一份首次覆盖报告先按“净利 × PE ÷ 股本”把目标价反算一遍再逐个检查这三个数的口径来源、时间点和去重处理能挡掉大部分看起来精确实则不可比的结论。本文还有配套的精品资源点击获取
返回列表