') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); 【案例】出海单品前置财报决算官 · 跨境核价决策官 · Issue #33 · modelstudioai/modelstudioai.github.io · GitHub
Skip to content

【案例】出海单品前置财报决算官 · 跨境核价决策官 #33

Description

@xiaofenggan01

我做了什么

跨境电商财务场景的百炼 Skill——把「单品利润测算」固化成确定性流水线(找价 → 过滤 → 决算 → 财务巡检 / 反推),同一输入永远同一结果、可审计、可批量。

  • 品类通用:config 配品类档案(潮玩 / 3C,可扩),引擎不含品类词。
  • 竞品价取价bl search web 偏置到已实测 bl 可达的 Amazon / eBay / AliExpress / Temu,按 url 过滤 + 聚合解析(套装÷件数归一成单件、同 IP 纳入)。
  • 表格批量 + 缺数据先问:发一张 CSV 批量核价;任一行缺必填 → exit 3 列出「第几行缺哪列」,补齐再跑,绝不臆造。
  • --reverse 反推模式:已知零售价 → 反推各档净利率下的最高可接受进价(绿线≥20% / 红线≥10% / 盈亏平衡),纯本地计算、瞬间出,采购谈判底牌。
  • 财务巡检 9 道关 · 硬拦截(严肃财务,容不得失误)。

使用的工具

  • 百炼 CLI:bl vision describe / bl text chat / bl search web(MCP)
  • Skill 名称:chuhai-pricing(自研,SKILL.md 符合 Anthropic Agent Skill 规范)
  • 其他:Node.js(零依赖 CSV 批量 + 反推 + fetch)、纯 HTML/CSS(Bento Box 海报 + 汇总页 + 路演 PPT)

财务巡检(9 道关,任一不过 → 非零退出、不出海报)

  • A 输入合法 / B 公式自洽 + 物流费独立复算(从原始尺寸重推,堵引擎分支 bug)
  • C 价格可信(5 重):①来源白名单 ②样本≥2 交叉印证 ③离散度 cv≤0.4 ④同款确认(bl 判结果名 vs 输入名,防搜 A 给 B)⑤second opinion(中位价独立再判合理性)
  • D 结果合理:公允价落品类合理区间、净利率界值、毛利率 ≥ 净利率、成本占比 ≤ 100%
  • 逃生口:--ref-price(人工背书)/ --allow-estimate(仅放行模型估算,演示用)

效果展示

反推测试(us.shopvidi.com 真实上架 SKU · 已知零售 → 最高进价,纯本地计算):

SKU站点零售绿线最高进价 (≥20%)
Link Click 棋子盲盒$7.49¥23.65
Blue Lock 拼图盲盒$10.49¥38.95
MIFFY Picnic 盲盒$17.49¥74.65
BRUCREO 初音未来 Figure$20.49¥89.95
Bonnie 1/6 BJD 盲盒$58.49¥283.75

取价决算 + 校验:

  • silicone phone case(3C·真联网取价)→ bl 搜四平台命中 amazon/ebay/aliexpress,中位 $7.37,净利率 71.7% 🟢
  • Nanci(潮玩,ref-price)→ 净利率 50.6% 🟢,巡检全过
  • silicone phone case 通用款(异款搜索结果)→ C4 同款确认硬拦、不出海报 ✅(真实抓到「搜 A 给 B」)
  • Sony WH-1000XM5($348 超 3C 合理区间 [3,120])→ D1 硬拦

仓库:https://github.com/xiaofenggan01/chuhai-pricing

踩坑记录

  • bl search web动漫 IP 名词面碰撞严重("Blue Lock" 搜出 Master Lock 挂锁、"MIFFY" 搜出动漫服饰)→ 取价解析器改成「套装÷件数归一、同 IP 纳入」并给清晰拒因;对已在自有平台上架、有零售价的商品,改走 --reverse 反推(绕开搜索引擎天花板)。
  • 旗舰 IP 第三方站少正品 + 炒价严重 → 取价三级兜底 + D1 区间硬拦。
  • 严肃财务容不得失误 → 巡检做成多层独立校验 + 硬拦截;价格不只认「来源」,还在「数值层面」交叉验证(C4 实测真抓到异款)。--ref-price 是人工背书逃生口。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions