From ea312879242d86c7b0be6527d1bfca82107413ec Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sun, 1 Nov 2026 00:06:41 +0800 Subject: [PATCH] Keep webpage maintenance dates out of ARR financial cutoffs --- apps/docs/scripts/auth-cli.ts | 2 +- apps/docs/tests/research.test.ts | 9 +- content/research/ai-companies.seed.json | 139 +++++++++++++++++++-- content/research/ai-companies.sources.json | 8 +- content/research/ai-income-analysis.json | 2 +- 5 files changed, 137 insertions(+), 23 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index 8b14313..19984d2 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, 1199); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 4667); + assert.equal(research.evidence.length, 4673); 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 a08a777..381b8e1 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -124,7 +124,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, 1199); - assert.equal(initial.evidence.length, 4667); + assert.equal(initial.evidence.length, 4673); assert.equal(initial.observations.length, 453); const businessReviews = initial.reviews.filter((review) => review.type === businessModelReviewType); assert.equal(businessReviews.length, 4); @@ -169,8 +169,8 @@ 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, 214); - assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 143); + assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 216); + assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 144); assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 46); const review = snapshot.reviews.find((r) => r.id === "R4")!; assert.deepEqual(reviewCompanyIds(snapshot, review), ["AI007", "AI013", "AI021", "AI034"]); @@ -712,7 +712,8 @@ test("the fifth uncertain cohort separates dated ARR, service run rates, booking assert.equal(figures.length, 18); const dated = figures.find((o) => o.id.endsWith("TRELLIS-ARR-AUG"))!; assert.equal(dated.metric, "arr"); - assert.equal(dated.observedAt, "2026-08-24"); + assert.equal(dated.observedAt, undefined, "a page maintenance date is not a financial cutoff"); + assert.ok(arrFieldGaps(dated, snapshot.asOf).includes("date")); assert.equal(dated.bound, "≥"); assert.equal(figures.find((o) => o.id.endsWith("INSTA-RUNRATE"))!.metric, "annualized-revenue"); assert.equal(figures.find((o) => o.id.endsWith("INSTA-LAUNCH-ARR"))!.metric, "arr"); diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index a71eb3a..95181ab 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-business-models-1", + "version": "2026-11-01-arr-time-basis-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -1529,7 +1529,9 @@ "ARRCHECK2-BASE-PRICE", "ARRCHECK2-BASE-TERMS", "SACRA1-BASE-SACRA", - "SACRA1-BASE-SEC" + "SACRA1-BASE-SEC", + "TIME1-BASE-Q4-TIME", + "TIME1-BASE-Q1-TIME" ], "revenueStatus": "self", "pricingEvidence": "ARRCHECK2-BASE-PRICE", @@ -34128,8 +34130,8 @@ "location": null, "business": "用Agent执行客人消息、清洁维护、任务及业主报告等物业运营。", "buyer": "短租及度假屋管理公司", - "delivery": "YC未注明业务截至日的500K ARR/35客户/3000房源,与官网2026-08-24的600K+ ARR/45+公司/4000+房源分别保存。报价749.99美元符号/月起,上线费另计,默认草稿/转人工,不当无监督全自动。", - "notes": "YC未注明业务截至日的500K ARR/35客户/3000房源,与官网2026-08-24的600K+ ARR/45+公司/4000+房源分别保存。报价749.99美元符号/月起,上线费另计,默认草稿/转人工,不当无监督全自动。 法律主体、确认收入、合同与独立技术效果仍待核。", + "delivery": "YC未注明业务截至日的500K ARR/35客户/3000房源,与官网标更新2026-08-24、未注明业务截至日的600K+ ARR/45+公司/4000+房源分别保存。报价749.99美元符号/月起,上线费另计,默认草稿/转人工,不当无监督全自动。", + "notes": "YC未注明业务截至日的500K ARR/35客户/3000房源,与官网标更新2026-08-24、未注明业务截至日的600K+ ARR/45+公司/4000+房源分别保存。报价749.99美元符号/月起,上线费另计,默认草稿/转人工,不当无监督全自动。 法律主体、确认收入、合同与独立技术效果仍待核。", "cohort": "公司官网自述2026-02成立,YC字段2026;独立注册待核", "teamBasis": "YC Team Size;2026-10-31读取,业务人数截至日未给", "price": "官网原文$749.99/月起,按房源另报价,一次性white-glove上线费另计;实际合同未知", @@ -34140,7 +34142,8 @@ "UNCLEAR5-31372-LAUNCH1", "UNCLEAR5-31372-HOME", "UNCLEAR5-31372-PRICE", - "UNCLEAR5-31372-FACTS" + "UNCLEAR5-31372-FACTS", + "TIME1-TRELLIS-TIME" ], "revenueStatus": "self", "extraUrl": "https://trellistech.com", @@ -43998,15 +44001,14 @@ "kind": "公司事实页ARR自述", "value": 600000, "unit": "原文$,币种待核", - "timing": "页面更新2026-08-24", + "timing": "网页标更新2026-08-24;精确财务截至日未注明", "scope": "公司自述物业软件业务,实施费是否剔除未核", "selection": "historical", - "reason": "不把报价/一次性上线混作ARR,独立账单及经常性需核 observedAt沿用页面更新时间,不代表财务截止日已核。", + "reason": "更新日仅属页面元数据,不能代财务截至日;保留原金额/下界与未知币种,实施费剔除、独立账单及经常性定义仍需核。", "evidence": "UNCLEAR5-31372-FACTS", "bound": "≥", "comparisonGroup": null, - "metric": "arr", - "observedAt": "2026-08-24" + "metric": "arr" }, { "id": "UNCLEAR5-O-TRELLIS-YC-CUSTOMERS", @@ -44045,10 +44047,10 @@ "kind": "客户/房源采用自述", "value": 45, "unit": "公司", - "timing": "2026-08-24", + "timing": "网页标更新2026-08-24;采用规模截至日未注明", "scope": "物业运营采用,不是独立付费订阅", "selection": "adoption", - "reason": "按来源时点分别保存,不相加或反推ARPA/收入", + "reason": "保留各来源原值,不将页面更新日当业务统计日;客户/房源不相加或反推付费分母/ARPA/收入。", "evidence": "UNCLEAR5-31372-FACTS", "bound": "≥", "comparisonGroup": null @@ -44060,10 +44062,10 @@ "kind": "客户/房源采用自述", "value": 4000, "unit": "房源", - "timing": "2026-08-24", + "timing": "网页标更新2026-08-24;采用规模截至日未注明", "scope": "物业运营采用,不是独立付费订阅", "selection": "adoption", - "reason": "按来源时点分别保存,不相加或反推ARPA/收入", + "reason": "保留各来源原值,不将页面更新日当业务统计日;客户/房源不相加或反推付费分母/ARPA/收入。", "evidence": "UNCLEAR5-31372-FACTS", "bound": "≥", "comparisonGroup": null @@ -96191,6 +96193,72 @@ "kind": "公司原始资料/公开代码许可与主体沿革补核", "summary": "隐私正文以EZsite及ezsite.ai为服务定义,提供美国数据处理描述,页首仍显示产品介绍。", "limitation": "隐私生效日不等成立;未提供可独立核验的完整注册信息,不把处理地点当办公室。多个页面的价格片段不替当前完整套餐/合同。" + }, + { + "id": "TIME1-TRELLIS-TIME", + "companyId": "YC31372", + "title": "Trellis网页更新日与财务截至日重新核对", + "url": "https://www.trellistech.com/ai-info", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "页面标Last updated August24,2026,另列ARR原$600K+、45+客户及4000+房源,没有说明这些经营指标的精确截至日。", + "limitation": "更新日仅作为页面元数据,不再填observedAt或当客户/房源统计日。保留金额/下界/原$与不同来源,实施费、付费分母及独立财务仍未核。" + }, + { + "id": "TIME1-BASE-Q4-TIME", + "companyId": "AI056", + "title": "Base44一亿ARR的近期措辞", + "url": "https://www.wix.com/press-room/home/post/wix-reports-fourth-quarter-and-full-year-2025-results", + "publishedAt": "2026-03-04", + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "原公告称Base44 recently reached一亿ARR,没有给精确业务截至日;2025季度标题不代表该里程碑截至2025年末。", + "limitation": "只复核相关段落,不作全篇财务审阅;近期不能填公告日或季度末,不新增重复里程碑,集团财务不移作产品独立数据。" + }, + { + "id": "TIME1-BASE-Q1-TIME", + "companyId": "AI056", + "title": "Base44五月ARR时间精度与集团季度末分开", + "url": "https://www.globenewswire.com/news-release/2026/05/13/3293644/0/en/Wix-Reports-First-Quarter-2026-Results.html", + "publishedAt": "2026-05-13", + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "Base44约1.5亿ARR写as of May;同公告另列Wix集团一季度末总ARR。", + "limitation": "月级业务时点保留,不猜月首/月末/公告日,也不借集团季度末给Base44补日期;金额近似及原观测身份保持,非新增财务点。" + }, + { + "id": "TIME1-SACRA-ACCESS", + "companyId": null, + "title": "Sacra公开目录仍未取得公司行", + "url": "https://sacra.com/explore/companies/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "浏览工具仍只返回筛选外壳;普通公开HTTP请求同入口返回403,未取得公司结果行。", + "limitation": "保留可读/不可读的工具差异,不认全站无公司或已完整覆盖;不登录、绕过或探测私有接口。四个定向档案不能替目录全量。" + }, + { + "id": "TIME1-PH25-PAGE2-ACCESS", + "companyId": null, + "title": "Product Hunt2025 All第二页可读范围", + "url": "https://www.producthunt.com/leaderboard/yearly/2025/all?page=2", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "浏览工具不能访问该公开第二页,普通HTTP返回403,无新增可核卡片。", + "limitation": "不是证明第二页为空或年度名单结束;首屏19张文字卡范围及发现快照保持,不尝试绕过访问控制。" + }, + { + "id": "TIME1-PH26-PAGE2-ACCESS", + "companyId": null, + "title": "Product Hunt2026 All第二页可读范围", + "url": "https://www.producthunt.com/leaderboard/yearly/2026/all?page=2", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "浏览工具不能访问该公开第二页,普通HTTP返回403,无新增可核卡片。", + "limitation": "不是证明第二页为空或年度名单结束;原Featured/All各首屏19张文字卡范围不扩大,不擅认年度全量。" } ], "reviews": [ @@ -105063,6 +105131,51 @@ "SACRA1-GI-TERMS" ], "handling": "待验证判断:只有客户任务的独立质量收益能覆盖训练、数据许可、推理和支持成本,自研模型才构成可评估的商业路线。我们的下一步应先建立任务基线和可重复评估,再核付费试点的预算/采购周期、数据权利、训练摊销和单位推理成本;技术代码、合作标志与融资都不能代付费需求。当前证据不足以比较此路线与订阅应用的财务回报。" + }, + { + "id": "TIME1-R-TRELLIS", + "type": "网页更新日不代经营截至日", + "company": "Trellis", + "companyIds": [ + "YC31372" + ], + "scope": "companies", + "summary": "原600K+ ARR观测的observedAt误取页面更新日,已移除;采用规模也改为截至日未知,原金额/下界/币种与来源不变。", + "evidenceIds": [ + "UNCLEAR5-31372-FACTS", + "TIME1-TRELLIS-TIME" + ], + "handling": "页面事实的维护日不能证明每项指标结算日。ARR仍明确标签,但不能作为精确同日样本;不能从45+客户与600K+相除推出已核ARPA,需合同、收费/实施费边界及财务日。" + }, + { + "id": "TIME1-R-BASE", + "type": "近期、月级与集团季度末不可混用", + "company": "Base44", + "companyIds": [ + "AI056" + ], + "scope": "companies", + "summary": "一亿ARR为近期,约1.5亿为as of May,均未给具体日;同公告Wix集团季度末指标不能为产品里程碑补日期。", + "evidenceIds": [ + "E092", + "E093", + "TIME1-BASE-Q4-TIME", + "TIME1-BASE-Q1-TIME" + ], + "handling": "保留原时长/月份和金额精度,不填虚构日、不重复收入。产品/集团与自述/审计边界继续区分,未取得同期可比样本,不因不同口径判财务造假。" + }, + { + "id": "TIME1-R-ACCESS", + "type": "公开目录分页与访问限制", + "company": "Sacra / Product Hunt", + "scope": "dataset", + "summary": "2026-11-01重核Sacra目录和PH两年All第二页,浏览工具未取得名单,普通公开HTTP均403。", + "evidenceIds": [ + "TIME1-SACRA-ACCESS", + "TIME1-PH25-PAGE2-ACCESS", + "TIME1-PH26-PAGE2-ACCESS" + ], + "handling": "不能把工具不可读认作名单结束;现有有限批次保留,来源全量覆盖未证。研究统计截至仍2026-10-31,本次仅后续核对历史资料/访问范围,不追加截止日后的经营数字。" } ], "coverage": { diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index 1bb2d85..5ba160a 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-business-models-1", + "version": "2026-11-01-arr-time-basis-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -2810,7 +2810,7 @@ "producthunt.com" ], "initialAccess": "官网可读取", - "boundary": "已登记2025/2026 Featured及两年All入口各19张文字卡,共76个发现位置,含重复产品/集团旧业务/推广,非76家独立新公司或全年全量。Featured原38卡当前5关联、2范围外对照、26范围外、3年份待核、2推广;2025 All当前1关联(Ada/ChartGen)、14范围外、3年份待核、1推广;2026 All3关联位置、2范围外对照、7范围外、6年份待核、1推广。StoreClaw新增AI105;Ada/ChartGen据条款同名主体与ACRA2025注册新增AI107;Base44/Goldfish等复用公司。旧业务/更名不重置成立,Happycapy销售法人注册不证明全球新创业,Codity年份/创始人差异未消歧。四批原页面发现范围保留;未取得分页和仅图片位置仍缺,未新增收入观测。 DUIX补申请稿旧平台/股份转换、仓库重定向与现许可;EZsite补CEO/跨域嵌入、条款缓存和NewOaks旧业务,两候选当前签约/资产链仍缺,保持待核,不增公司或收入。", + "boundary": "已登记2025/2026 Featured及两年All入口各19张文字卡,共76个发现位置,含重复产品/集团旧业务/推广,非76家独立新公司或全年全量。Featured原38卡当前5关联、2范围外对照、26范围外、3年份待核、2推广;2025 All当前1关联(Ada/ChartGen)、14范围外、3年份待核、1推广;2026 All3关联位置、2范围外对照、7范围外、6年份待核、1推广。StoreClaw新增AI105;Ada/ChartGen据条款同名主体与ACRA2025注册新增AI107;Base44/Goldfish等复用公司。旧业务/更名不重置成立,Happycapy销售法人注册不证明全球新创业,Codity年份/创始人差异未消歧。四批原页面发现范围保留;未取得分页和仅图片位置仍缺,未新增收入观测。 DUIX补申请稿旧平台/股份转换、仓库重定向与现许可;EZsite补CEO/跨域嵌入、条款缓存和NewOaks旧业务,两候选当前签约/资产链仍缺,保持待核,不增公司或收入。 2026-11-01重核两年All第二页:浏览不可访问/普通公开HTTP403,无新增名单;不能据此认末页,四批有限范围保留。", "nextCheck": "继续补两年其余分页/日期及仅图片位置;Fundraisly、Happycapy、MGX/Atoms、Duix、EZsite、Acti TypeX、Spira、Codity、PollyReach的未决主体/年份/旧业务链。保留Pazi、Zeta旧业务与年份冲突证据,不转移历史收入。Ada/ChartGen已核同名公司注册与品牌关联,仍缺业务资产沿革、实际办公/团队、当前价格/币种、付费/续费和推理/报告成本;StoreClaw实收与工具成本待核。有限首屏不替全年全量。 DUIX现海外签约登记及集团授权关系、云分钟/本地SDK模型许可;EZsite New Oaks LLC登记及NewOaks业务资产衔接、有效7/30日退款与终身/订阅合同优先补核。", "limitation": "上线时间不等于成立时间", "accessRecheckedAt": "2026-10-30" @@ -2825,7 +2825,7 @@ "sacra.com" ], "initialAccess": "官网可读取", - "boundary": "已用于定向估算及日期口径交叉核查;无全站公司名录读取台账。 本轮确认公开目录实际入口/explore/companies仅筛选外壳,另定向登记Gimlet/General Intuition/Peec/Base44四档案,非完整名单。General Intuition据公司自述2025及MIRA代码新增AI106;Gimlet投资方2023暂范围外,保留目录2023/2025及融资字段冲突;Peec/Base44复用既有公司和财务观测,无收入新增。", + "boundary": "已用于定向估算及日期口径交叉核查;无全站公司名录读取台账。 本轮确认公开目录实际入口/explore/companies仅筛选外壳,另定向登记Gimlet/General Intuition/Peec/Base44四档案,非完整名单。General Intuition据公司自述2025及MIRA代码新增AI106;Gimlet投资方2023暂范围外,保留目录2023/2025及融资字段冲突;Peec/Base44复用既有公司和财务观测,无收入新增。 2026-11-01目录再读仍筛选外壳,普通HTTP403,无目录结果行;未扩大定向四例覆盖。", "nextCheck": "保留估算与公司披露差异,核实历史截至日。 继续取得公开目录结果/两年筛选边界与估算方法底表;General Intuition注册/Medal沿革及商业API合同、Gimlet原始登记和财务口径、Peec真实付费分母、Base44产品独立收入及集团定义/毛利实际值仍缺。不能据四例宣布全站覆盖。", "limitation": "部分付费;不能把估算当审计数" }, @@ -2984,7 +2984,7 @@ "status": "per-company", "hosts": [], "initialAccess": "按公司逐一核验", - "boundary": "公司官网和官方材料逐条绑定证据;不是可预先列尽的全站候选池。 定向新增企智芯与九昇智能的2025成立自述及交付资料,精确注册、实际客户与收入未核;两个官网不代表中文公司全集。 本轮复读Gojiberry/Floot/Nexor/Eloquent原始定价/条款/披露,补订阅扩展、AI与托管credit和支付净费边界;Eloquent/Floot旧ARR原$撤销USD推断,当前定价不倒推历史合同或币种。非所有公司官网全量核验。 补Peec/Base44原始定价/条款/API与监管附件ARR定义:有效订阅MRR年化不等独立审计收入,模型/额度成本和预测毛利分列;不新增收入数字。", + "boundary": "公司官网和官方材料逐条绑定证据;不是可预先列尽的全站候选池。 定向新增企智芯与九昇智能的2025成立自述及交付资料,精确注册、实际客户与收入未核;两个官网不代表中文公司全集。 本轮复读Gojiberry/Floot/Nexor/Eloquent原始定价/条款/披露,补订阅扩展、AI与托管credit和支付净费边界;Eloquent/Floot旧ARR原$撤销USD推断,当前定价不倒推历史合同或币种。非所有公司官网全量核验。 补Peec/Base44原始定价/条款/API与监管附件ARR定义:有效订阅MRR年化不等独立审计收入,模型/额度成本和预测毛利分列;不新增收入数字。 Trellis事实页更新日与财务/采用截至日重新分离,移除错误observedAt;Base44近期/月级原时点不填精确日。", "nextCheck": "核定价、主体、交付与收入定义,自述与独立验证分开。", "limitation": "自述不等于独立审计" }, diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index ce5846a..9fa2ecb 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-31-business-models-1", + "sourceVersion": "2026-11-01-arr-time-basis-1", "asOf": "2026-10-31", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business",