From 5b86f0895907c9abdaa9c41ae979b0bb1cf7e306 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 31 Oct 2026 21:23:02 +0800 Subject: [PATCH] research: verify ARR currency and current contract models --- apps/docs/scripts/auth-cli.ts | 2 +- apps/docs/tests/research.test.ts | 7 +- content/research/ai-companies.seed.json | 168 ++++++++++++++++++--- content/research/ai-companies.sources.json | 4 +- content/research/ai-income-analysis.json | 2 +- 5 files changed, 157 insertions(+), 26 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index d342e16..d4c4064 100644 --- a/apps/docs/scripts/auth-cli.ts +++ b/apps/docs/scripts/auth-cli.ts @@ -184,7 +184,7 @@ async function main() { const research = await researchResponse.json(); assert.equal(research.companies.length, 1188); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 4372); + assert.equal(research.evidence.length, 4380); assert.equal(research.observations.length, 453); assert.equal((await request("/api/research/ai-companies", { method: "POST", headers })).status, 405); const researchPage = await request("/docs/other-research/ai-company-research/overview", { headers }); diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index 5923b1a..8303f6b 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -50,6 +50,9 @@ test("ARR ledger preserves historical estimates without promoting targets, run r assert.ok(!ids.has(id), `${id}: excluded or ambiguous records cannot enter the ARR ledger`); assert.equal(rows.find((row) => row.observation.id === "O066")?.observation.selection, "historical-estimate"); assert.equal(rows.find((row) => row.observation.id === "O046")?.observation.unit, "原文$,币种待核"); + for (const id of ["O045", "O047"]) + assert.equal(rows.find((row) => row.observation.id === id)?.observation.unit, "原文$,币种待核", + "current subscription prices cannot establish the currency of a historical ARR claim"); const category = snapshot.companies.find((company) => company.id === "AI055")!.cat; const filtered = arrDisclosures(snapshot, { category, foundedYear: 2025 }); assert.ok(filtered.length > 0); @@ -75,7 +78,7 @@ test("research revisions share the authentication database and preserve replay l assert.equal(consumeCode(config, "invalid"), "limited"); const initial = readResearchSnapshot(); assert.equal(initial.companies.length, 1188); - assert.equal(initial.evidence.length, 4372); + assert.equal(initial.evidence.length, 4380); assert.equal(initial.observations.length, 453); assert.deepEqual(initial.candidateBatches, seed.candidateBatches, "candidate gaps persist in the same database metadata"); assert.deepEqual(initial.directoryRechecks, seed.directoryRechecks, "follow-up classifications persist without rewriting the discovery audit"); @@ -116,7 +119,7 @@ test("research validation rejects broken evidence and unsafe source links", () = test("reviews link explicit companies without turning global or excluded cases into companies", () => { const snapshot = structuredClone(seed) as ResearchSnapshot; assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 198); - assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 103); + assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 105); assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 44); const review = snapshot.reviews.find((r) => r.id === "R4")!; assert.deepEqual(reviewCompanyIds(snapshot, review), ["AI007", "AI013", "AI021", "AI034"]); diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index e1da54c..b377c2b 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-perfingo-lineage-1", + "version": "2026-10-31-arr-contracts-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -460,7 +460,8 @@ "E015", "E102", "ELOQ-HOME", - "ELOQ-OUTCOME" + "ELOQ-OUTCOME", + "ARRCHECK1-ELOQ-YC" ], "revenueStatus": "self", "businessModel": "复杂任务按成功结果收费,分类和路由等简单任务按用量收费;具体合同待核", @@ -487,11 +488,11 @@ "business": "识别购买意图并自动执行销售触达", "buyer": "B2B销售团队", "delivery": "页面列示付费客户与ARR里程碑", - "notes": "页面含140万与250万美元两阶段数字,日期不明", + "notes": "页面含140万与250万美元两阶段数字,日期不明 合同机制补查:基础订阅另有Agent/线索源/独立workspace和credit扩展;一般条款循环续费,真实合同/实收及ARR定义仍缺。", "cohort": "2025年成立", "teamBasis": "YC Team Size,公司自述;访问快照,业务截至日未注明", "datePrecision": "年", - "price": "PRO原文$99/月,含2个Agent和至多1800个月度触达;CUSTOM含更高用量、集成、引导与专人支持,询价;币种代码待核", + "price": "PRO原文$99/月,含2个Agent和至多1800个月度触达;CUSTOM含更高用量、集成、引导与专人支持,询价;币种代码待核 原始帮助另列每月200credits、追加Agent原$59、额外线索源29、组织成员99及credit包25起;组织成员独立workspace,非普通席位。", "stage": "公开资料,商用成熟度待核验", "sourceType": "公司在YC的自述资料", "pricingEvidence": "E131", @@ -499,10 +500,13 @@ "E016", "MR-E-superfruits", "E101", - "E131" + "E131", + "ARRCHECK1-GOJI-HELP", + "ARRCHECK1-GOJI-TERMS" ], "revenueStatus": "self", - "businessModel": "软件订阅" + "businessModel": "软件订阅", + "entityBasis": "SUPERFRUITSSAS及RCSParis988586111为条款自述,独立登记待核。" }, { "id": "AI017", @@ -1075,19 +1079,24 @@ "location": "美国旧金山", "business": "承载由AI生成的应用及其后端", "buyer": "非技术创业者与应用构建者", - "delivery": "公开产品;当前强调按平台收费", - "notes": "创始人披露100万美元ARR,但业务时点待核", + "delivery": "通过Claude/ChatGPT等客户端构建App并提供后端托管;当前套餐含构建动作、可选平台AI和移动App构建额度,效果未独立测试。", + "notes": "创始人披露100万美元ARR,但业务时点待核 后续复核原始$1MARR未明币种,不能因当前套餐USD倒推历史币种。旧仅平台费说明与当前可选AI/托管用量、支付抽成并存,原时点合同仍缺。", "cohort": "2025年成立", "teamBasis": "YC Team Size,公司自述;访问快照,业务截至日未注明", "datePrecision": "年", - "price": "当前公司介绍强调平台收费,无单独AI点数加价;模型调用使用用户已有订阅。", + "price": "当前原始文档明确USD:Free;Pro25/月或250/年,Power100/月或1000/年,含不同构建动作/AIcredits/托管额度。可选FlootAgent与用户自备模型订阅分开。", "stage": "公开资料,商用成熟度待核验", "sourceType": "公司在YC的自述资料", - "pricingEvidence": "E133", + "pricingEvidence": "ARRCHECK1-FLOOT-PRICE", "evidenceIds": [ - "E040" + "E040", + "ARRCHECK1-FLOOT-PRICE", + "ARRCHECK1-FLOOT-SUB", + "ARRCHECK1-FLOOT-TERMS", + "ARRCHECK1-FLOOT-ARR" ], - "revenueStatus": "self" + "revenueStatus": "self", + "businessModel": "订阅平台费+可选AI/托管充值;当前客户App支付平台抽成Pro1%/Power0%,交易流水、Stripe处理费及Shippo标签费不作平台软件净费。" }, { "id": "AI041", @@ -1149,20 +1158,22 @@ "business": "跨语音与消息渠道执行收入运营任务", "buyer": "企业销售与增长团队", "delivery": "投资方披露270家客户及ARR里程碑", - "notes": "成立年和人数来自a16z Speedrun资料", + "notes": "成立年和人数来自a16z Speedrun资料 官网200余公司与机构270客户为不同快照,缺同期付费定义;五个月ARR仍缺币种/日历时点,旧创始人房产交易及融资不继承。", "extraUrl": "https://speedrun.a16z.com/companies/nexor-ai", "channel": "S12", "cohort": "2026年成立", "team": 8, "teamBasis": "投资机构名录,业务截至日未注明", "datePrecision": "年", - "price": "未逐一核验定价页", + "price": "当前官网预约演示,单位价格/最低承诺和实际合同未核", "stage": "公开资料,商用成熟度待核验", "sourceType": "公司或投资机构资料", "evidenceIds": [ - "E043" + "E043", + "ARRCHECK1-NEXOR-HOME" ], - "revenueStatus": "self" + "revenueStatus": "self", + "businessModel": "收入Agentharness、多渠道交付和CRM接入;软件持续费、用量/结果、一次定制集成需按实际合同拆分。" }, { "id": "AI044", @@ -37918,12 +37929,12 @@ "name": "Eloquent AI", "kind": "原文称ARR", "value": 500000, - "unit": "USD", + "unit": "原文$,币种待核", "timing": "推出后四周,日历时点未注明", "evidence": "E102", "scope": "公司整体", "selection": "signal", - "reason": "统计时点未知,经常性定义待核", + "reason": "统计时点未知,经常性定义待核 本轮原始披露复读仅$,撤销旧USD推断;当前定价币种不倒推历史ARR。", "bound": "=", "comparisonGroup": null, "metric": "arr" @@ -37950,12 +37961,12 @@ "name": "Floot", "kind": "原文称ARR", "value": 1000000, - "unit": "USD", + "unit": "原文$,币种待核", "timing": "推出约6个月,帖子日期待核", "evidence": "E104", "scope": "公司整体", "selection": "signal", - "reason": "创始人自述,保留时点不确定性", + "reason": "创始人自述,保留时点不确定性 本轮原始披露复读仅$,撤销旧USD推断;当前定价币种不倒推历史ARR。", "bound": "=", "comparisonGroup": null, "metric": "arr" @@ -92458,6 +92469,94 @@ "kind": "原始赛事档案/公司法律及产品反链核查", "summary": "TeakSoftwareStudio官网将SaveFirst列自家待上线iOS产品,直接链savefirst.app;团队MurshedAlAmin/AmitAditaya/IfazAlam。", "limitation": "工作室两年业务/十万触达非SaveFirst成立/付费数;官网AI标签与SaveFirst政策确定性解析/后备未启用分列,不将工作室接案收入或旧PerfingoS$报价继承新产品。" + }, + { + "id": "ARRCHECK1-GOJI-HELP", + "companyId": "AI016", + "title": "Gojiberry原始套餐扩展机制", + "url": "https://help.gojiberry.ai/en/articles/12960396-gojiberry-pricing-explained", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "原始公司定价/条款/经营披露复核", + "summary": "标准含2Agent/2LinkedIn席位及200月credits;追加Agent原$59/月、线索源29/月、组织成员99/月及额外credit包25起。", + "limitation": "原$未核币种;组织成员为独立workspace/账户不等普通seat,标价非已实现收入,附加用量和基础订阅净额需分列。" + }, + { + "id": "ARRCHECK1-GOJI-TERMS", + "companyId": "AI016", + "title": "Gojiberry原始法律主体及续费条款", + "url": "https://blog.gojiberry.ai/generalterms", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "原始公司定价/条款/经营披露复核", + "summary": "SUPERFRUITSSAS、RCSParis988586111,订阅循环扣费及当期末取消。", + "limitation": "主体/号码自述非独立注册核验;一般条款支持订阅形式但不验证每笔ARR合同、退款实收或日历截止日。" + }, + { + "id": "ARRCHECK1-FLOOT-PRICE", + "companyId": "AI040", + "title": "Floot当前原始套餐及额度", + "url": "https://floot.com/en/pricing", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "原始公司定价/条款/经营披露复核", + "summary": "Free/Pro25/Power100月包,付费含不同buildingactions、5000/15000AIcredits及10/25托管月额度;AIcredits用于App内AI或可选FlootAgent。", + "limitation": "当前套餐不覆盖旧ARR时点定价,额度不是实际消耗收入;不要按月价反推客户数,既有自备模型订阅与可选平台AI分别核。" + }, + { + "id": "ARRCHECK1-FLOOT-SUB", + "companyId": "AI040", + "title": "Floot原始订阅币种和年付", + "url": "https://floot.com/docs/faqs/managing-your-subscription", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "原始公司定价/条款/经营披露复核", + "summary": "当前定价文档明确USdollars,年付Pro250/Power1000;扣税/升级/降级/欠费流程,AI/托管充值另开票。", + "limitation": "当前报价USD不自动证明历史创始人$1MARR币种;年预付不是新增ARR重复项,充值余额/税费/实际退款与净经常费需拆分。" + }, + { + "id": "ARRCHECK1-FLOOT-TERMS", + "companyId": "AI040", + "title": "Floot原始软件净费与支付流水", + "url": "https://floot.com/terms?redirected_from_combini=true", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "原始公司定价/条款/经营披露复核", + "summary": "FlootInc条款当前Payments平台费Pro1%/Power0%,另有Stripe处理费;客户连接自有账户收款,运输标签由Shippo收费;月credits不滚存。", + "limitation": "客户App交易总额/运输费不是Floot收入,平台抽成是否纳ARR待合同;托管预充值/信用额度非现金收入即确认,未调用支付或下单。" + }, + { + "id": "ARRCHECK1-FLOOT-ARR", + "companyId": "AI040", + "title": "Floot创始人旧ARR币种和日期复核", + "url": "https://www.linkedin.com/posts/yjyao_floot-just-hit-1m-arr-a-year-ago-floot-activity-7424496952190521344-CHBU", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "原始公司定价/条款/经营披露复核", + "summary": "原始作者说$1MARR、上线六个多月,当前页面仍只显示相对8mo。", + "limitation": "原$未明USD,日历发布/财务截止日未核;不由URL数字推日期,不把新套餐反推旧ARR或客户数,读者质疑不是独立财务证据。" + }, + { + "id": "ARRCHECK1-NEXOR-HOME", + "companyId": "AI043", + "title": "Nexor当前原始交付与客户口径", + "url": "https://www.getnexor.ai/en", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "原始公司定价/条款/经营披露复核", + "summary": "多渠道收入Agentharness/CRM集成、按目标跟进,官网200余公司/19国;Speedrun另列270客户和五个月2.5M原$ARR。", + "limitation": "官网和机构客户数无同日/付费定义,差异不自动作虚报;前创始人房产交易总额/旧事业融资非Nexor营收,当前无可核单位价格。" + }, + { + "id": "ARRCHECK1-ELOQ-YC", + "companyId": "AI015", + "title": "Eloquent原始YC财务措辞复核", + "url": "https://www.ycombinator.com/companies/eloquent-ai", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "原始公司定价/条款/经营披露复核", + "summary": "YC直达无正文,原始搜索缓存仍列四周$500KARR、2025成立和5人,以及金融操作Agent;旧Streetbees履历独立。", + "limitation": "原$未明确币种代码,四周不是日历财务截至日;8000万旧融资/200人旧团队不继承本公司。原始结果/用量定价文章不证明每份合同最低经常承诺。" } ], "reviews": [ @@ -100354,6 +100453,35 @@ "TCAL25-SAVE-PRIVACY" ], "handling": "将历史名称对应从待核改为证据支持的对应,不把它升级为当前法律主体同一性。2025总入口现193原样URL+8原始反链/历史档案对应=201,无历史名单名称待对应;仍保留SaveFirst当前运营/AI/成立缺项。无新增主公司或收入,不继承旧报价/用户/资产、工作室项目费为新AppARR。" + }, + { + "id": "ARRCHECK1-R-CURRENCY", + "type": "历史ARR币种与当期价格分开", + "company": "Eloquent / Floot", + "scope": "dataset", + "summary": "原始旧披露仅$且缺日历财务截至日,O045/O047撤销USD推断为币种待核,金额/用途不变。", + "evidenceIds": [ + "ARRCHECK1-ELOQ-YC", + "ARRCHECK1-FLOOT-ARR", + "ARRCHECK1-FLOOT-SUB" + ], + "handling": "当前报价USD不自动适用旧ARR;相对月份/上线时长不转换业务日期,不据读者流量质疑或分布认定造假;保留26家公司34ARR证据表和平台MRR统计。" + }, + { + "id": "ARRCHECK1-R-MODELS", + "type": "销售Agent与应用构建平台收费拆分", + "company": "Gojiberry / Nexor / Floot / Eloquent", + "scope": "dataset", + "summary": "订阅加可选Agent/工作区/credits、结果与用量收费、托管预充值、客户交易平台抽成分别核。", + "evidenceIds": [ + "ARRCHECK1-GOJI-HELP", + "ARRCHECK1-GOJI-TERMS", + "ARRCHECK1-FLOOT-PRICE", + "ARRCHECK1-FLOOT-SUB", + "ARRCHECK1-FLOOT-TERMS", + "ARRCHECK1-NEXOR-HOME" + ], + "handling": "报价/信用余额/客户交易流水/旧事业融资不当软件ARR;月年优惠和使用量波动、佣金净费、实施服务及最低合同承诺是商业模式评估缺项。本轮无新收入观测,四家公司截至日/合同实收仍缺。" } ], "coverage": { diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index 52b2c48..83ef001 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-perfingo-lineage-1", + "version": "2026-10-31-arr-contracts-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -2984,7 +2984,7 @@ "status": "per-company", "hosts": [], "initialAccess": "按公司逐一核验", - "boundary": "公司官网和官方材料逐条绑定证据;不是可预先列尽的全站候选池。 定向新增企智芯与九昇智能的2025成立自述及交付资料,精确注册、实际客户与收入未核;两个官网不代表中文公司全集。", + "boundary": "公司官网和官方材料逐条绑定证据;不是可预先列尽的全站候选池。 定向新增企智芯与九昇智能的2025成立自述及交付资料,精确注册、实际客户与收入未核;两个官网不代表中文公司全集。 本轮复读Gojiberry/Floot/Nexor/Eloquent原始定价/条款/披露,补订阅扩展、AI与托管credit和支付净费边界;Eloquent/Floot旧ARR原$撤销USD推断,当前定价不倒推历史合同或币种。非所有公司官网全量核验。", "nextCheck": "核定价、主体、交付与收入定义,自述与独立验证分开。", "limitation": "自述不等于独立审计" }, diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 823fc02..5f41c53 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-31-perfingo-lineage-1", + "sourceVersion": "2026-10-31-arr-contracts-1", "asOf": "2026-10-31", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business",