ThearchyHelios
|
3ecc6223df
|
分析算子给结论里以比率存的列和数记换算:契约加 ResultTable.formats、AnalysisResult.value_formats(换算同 [[m:]] 的后缀,另加 pp 表示百分点),各算子逐个填全——可加、乘积拆解的 pct、share;比率拆解的 w_*、r_* 记 pct,mix、rate、total 是比率之差记 pp;波动基线按变化率比较时的 change,趋势的相对斜率;差异检验比率模式的 a_value、b_value 记 pct,diff、ci_lo、ci_hi 记 pp;values 里的 pct_total、top_share、top_k_share、mix_share、rate_share 等。都为空时整项不写,结论和以前一字不差;run 与 recompute 逐字段相同、同输入两次 run 逐字节相同照旧成立(tests/test_analysis_run 的形状检查认这两项可选)
|
2026-10-21 15:54:46 +00:00 |
|
ThearchyHelios
|
472f78344d
|
分析设置要求「集中」的合计占比不小于「主要来源」的占比(复核 R16):contract.settings_problem 加一条(没写的项按缺省补齐了比),说法用 LABELS 的叫法:「「集中」的合计占比不能小于「主要来源」的占比」——原来「主要来源」0.9 配「集中」0.5 能通过,一段占 60% 时判分散、判定语却说「没有哪一段占到 90%」。设置页写进来的、分析卡上的覆盖都按它挡;api/settings.analysis_values 读存着的一组时这一对对不上同样两项都按缺省(同另外两对)
|
2026-10-21 16:00:29 +08:00 |
|
ThearchyHelios
|
427a6df23c
|
差异检验拿不到 p 值照实说、敏感性只在真实的各组里找离群值(复核 R8、R9):一对都拿不到 p 值(比率有一组样本量为 0;均值、逐行有一组不到 2 个样本,或均值、标准差为空)时算不了,契约 REASONS 加 untestable,原因写哪一组怎么了(「华东只有 1 个样本、华南只有 1 个样本,算不了差异」),不再判 ok + 可能只是样本波动;只有一部分拿不到的,那几对不算进比了几对、不参与校正,表里写清哪一组怎么了,判定语后接「另有 n 对算不了(…)」(契约 CAVEATS 加 untested,排在判定语附带说明的前面)。逐行模式比三组以上时,离均值最远的那一笔只在真实的各组里找(原来池子里混着各对的「其余各组合计」,第一组以外的离群值删不到它自己那一组,漏报 outlier_sensitive),去掉以后由各组重建每一对的「其余」合计再检验
|
2026-10-21 15:56:16 +08:00 |
|
ThearchyHelios
|
6e38df4fbf
|
分析卡里随数据变化的调用错误记成算不了的一项,不让卡失败(复核 R6):analysis.run 加参数 refuse_data_errors(缺省假),为真时 DATA_ERRORS 里的调用错误——上一层没做成 parent_refused、下钻的段这期没有 parent_key_missing、期次这期没有 period_not_found(变化拆解、波动基线的本期、差异检验按期比、可比性检查)、总数那一格越界或为空 row_out_of_range / headline_empty、要比的组这期没有 unknown_group / too_few_groups、要用的那一格这期为空 empty_cell(乘积拆解的乘积和因子;差异检验的计数为空原来报的是 not_count,改报 empty_cell)——记成 status refused 的结论:契约 REASONS 加 parent_refused、input_unavailable,CallError 加 reason(照实说是哪一项、哪个值,不带改法),判定语「{叫法}没有做成:原因」;params 照调用原样(label 照样消毒),取过还没记用法的快照都记进输入(Inputs.settle,角色照第一次取时的),上一层在核对它做没做成之前就记进输入,复算按它们走到同一处;阈值和判定标准同各算子自己算不了时那一份(各模块的 USED / refusal_basis,算子本身也改用它)。recompute 一律按真复现;结构性的调用错误照旧抛。分析卡运行器传真,agent 工具不传。顺手:段数不够的原因里维度叫法和汉字之间照 say 的规矩补空格
|
2026-10-21 15:47:30 +08:00 |
|
ThearchyHelios
|
cf8ec15831
|
周号按 SQL 里的格式串算真实起止(复核 R3):「YYYY-Www」不再一律当 ISO 周。periods.week_scheme 看期次列在最外层 SELECT 里的写法(从 CTE、子查询里原样取出的往里找),认格式化函数里配套的年份和周号——SQLite strftime 的 %Y-%W / %Y-%U / %G-%V、MySQL DATE_FORMAT 的 %Y-%U / %Y-%u / %X-%V / %x-%v、PostgreSQL / Oracle to_char 的 YYYY-WW / IYYY-IW;week_span 按算法算一周的起止(W00、W53 按各自的算法,不走 fromisocalendar),先后按算法排(跨年切开的两期也连着)。认不出算法(方言不知道、只取了现成的字符串、年份和周号不配套)的起止置空,本期齐不齐一律核对不了、附说明,绝不判齐,先后按周号排。按年截断的算法里跨年切开的那两期不到整周:当本期判 partial_target,当比较期判 target_gap 并说清只有几天,不算进波动基线的历史(附 partial_periods 说明,只在证据面板),趋势取最后连着的整周。可比性检查按期次分组时也走这套:有一期不到整周的按实际天数比窗口、照算星期构成。period_unreadable 的原因里举认不出的那几个值(写法认不出、写法混着的少数、算法里没有的那一周、对不上给的粒度分开说);比较期那一格为空时照实说为空,不再说成缺期(趋势往前断开的原因同样分开说)。期次是序号、周号认不出算法时也附一句核对不了。契约 CAVEATS 加 partial_periods
|
2026-10-21 15:35:00 +08:00 |
|
ThearchyHelios
|
d529e5f694
|
算子的叫法只留契约一份:contract.OP_LABELS / MODE_LABELS 是唯一来源,趋势定为「趋势判断」;engine/labels 的 ANALYSIS_OP_LABEL 直接引用 OP_LABELS、ANALYSIS_MODE_LABEL 按 MODES 从 MODE_LABELS 分到各算子(分析卡校验、应用说明、前端表单照它),phrases 去掉 OP_NAMES,「{叫法}没有做成」的判定语和算子的调用错误都用契约的叫法
|
2026-10-21 14:08:56 +08:00 |
|
ThearchyHelios
|
a81a0a66ac
|
合入 W1-d 说法核对:说法表与绑定、check / strict / off、出口独立复核与文档版本、分析范围、血缘口子、G3
|
2026-10-21 14:00:07 +08:00 |
|
ThearchyHelios
|
28db25631d
|
合入 W1-b 证据接入:台账 A、写作目录、a / v:A / table:A / see:A 引用、出处链与复算、证据图、审计、导出与可验证报告、裁判摘录、账本跳过
|
2026-10-21 13:58:18 +08:00 |
|
ThearchyHelios
|
707218a9a4
|
分析结论的结果表带上列类型:ResultTable 加可选的 column_types({列 id: 类型},写法同查询快照)。维度列照输入快照里那一列查询时记下的类型(文本型的码值 "1203" 不会被渲染成「1,203」,没记类型的不写),数值列 number,说明、叫法这类文字列 text;差异检验和「其余各组合计」比时对照组那一列写 text;可比性检查表全是 text。契约里 InputSnapshot.column_types 的标注改成实际形状 dict[str, str] | list[str | None](to_payload 给的是 {列: 类型},按列序的列表也认)。复算逐字段相同照旧成立
|
2026-10-21 13:19:27 +08:00 |
|
ThearchyHelios
|
9f014560fe
|
Merge branch 'an1/b' into an1/d
|
2026-10-21 13:19:10 +08:00 |
|
ThearchyHelios
|
d2b5096e97
|
合入集成分支 an/w1(W1-a 分析算子库):证据接入按真的 run / recompute 对齐
|
2026-10-21 13:14:48 +08:00 |
|
ThearchyHelios
|
fdbf896dd4
|
Merge branch 'an/w1' into an1/d
|
2026-10-21 13:13:11 +08:00 |
|
ThearchyHelios
|
a6f7572a9e
|
报告文档里系统写的「分析范围」(engine/analysis_scope,契约 ScopeBlock):按写作目录里的 A 条目照实写现象(可比性、基线、趋势)、拆过(按下钻链,上一层在前)、排除(分散的拆解、差异可能只是样本波动的检验)、算不了(带原因)、检验次数;agent 写的假设不进这一段。没拆的候选维度确定地从数据目录算:拆解所用查询 SQL 里的事实表(目录标了 fact / log,没标且只读一张表时就是它)上标成属性、状态、不遮罩(数据源设置和查询当时记下的遮罩列)、取值不多(码值表不超过 50 个取值或已列全)的列,加上关联的维度表(标了 dimension 或多对一)上同样的列;拆解按的列对不上目录、读不到目录、源还没有目录、取不回查询、认不出事实表的,not_decomposed 为 None、note 照实写核对不了。目录经这次运行的目录视图读(data/catalog_view,关掉的当核对不了),出错不挡报告。契约的 ScopeBlock 加一项 corrected(检验之间有没有校正:只做一次为 true、不止一次为 false、没做为 None)
|
2026-10-21 13:12:05 +08:00 |
|
ThearchyHelios
|
8137f0cf37
|
分析契约补两样(只加不改):算子、模式给人看的叫法(OP_LABELS、MODE_LABELS,method_label 拼成「变化拆解(可加)」),证据面板、写作目录、审计、导出、可验证报告、裁判摘录同一份;按形状认一件工件是不是分析结论(is_result:op 是五个算子之一、method 是文字、inputs 是列表),证据接入取回结论工件、SQL 问题顺着结论的输入往下找、可验证报告认嵌进来的工件都按它认
|
2026-10-21 13:07:36 +08:00 |
|
ThearchyHelios
|
7d31922d00
|
五个分析算子与 run / recompute(细案 01 §1–§8):decompose(additive 按维度算贡献、headline 与下钻闭合、抵消、新出现 / 消失;ratio 中点对称拆结构与自身效应、辛普森、分母小;factor LMDI-I;两份快照先做可比性,口径结构不同不拆)、baseline(中位数与 MAD 的稳健 z、σ̂ = 0、日数据 lag 7、新高新低)、trend(Theil–Sen + Mann–Kendall、末尾连续期数)、differ(rate 的 z 检验 / Fisher、mean 与 rows 的 Welch、Holm、rows 的敏感性)、comparable(同口径、窗口长度、整期、星期构成、数据问题,现查记进 probes);run 先登记现查、查完再算,运行当天和目录事实记进 params,recompute 只用记下的、不现查;判定码、原因码、附带说明码都在契约里;输入记下方言和遮罩列名,复算逐字段相同;测试用虚构零售库,每个用例都核对复算
|
2026-10-21 13:04:58 +08:00 |
|
ThearchyHelios
|
7e6d52004c
|
分析算子的输入、目录事实、期次与现查:inputs.py(按名字取快照、拆「名字.r行.列」、列名不分大小写、遮罩列与非数值是调用错误);facts.py(按 SQL 认结果列取自哪张表的哪一列,读目录的度量类型、叫法、业务日期,只有确认过的度量类型才拿来判调用错误;查过的记进 params,复算不读目录);periods.py(日期、YYYY-MM、YYYY-Www、YYYY-Qn、整数序号,粒度按值推断);probe.py(make_prober 走 data/coverage 的只读探查:遮罩列不探、总时限、5 分钟缓存、退回剖析事实,另在库里算按运行当天现算的界;Book 先登记、查完再算,结论只记真用到的);data/coverage.py 加几个公开的小函数(parse_sql、as_day、literal_bound、window_of、column_range、bound_values、facts_range),_fallback 的读法抽成 _facts_range、行为不变;契约补几项可选字段(InputSnapshot 的 dialect / checks / no_data / mask_columns / masked_at_query,AnalysisInput 的 dialect,Probe 的 expr / value)
|
2026-10-21 13:03:35 +08:00 |
|
ThearchyHelios
|
38906a92ea
|
分析能力骨架补跨包约定:写作目录里分析条目的读法(catalog_result:A{n} 条目 kind analysis、result 为整份结论)、口径卡指标上的可比性字段(MetricComparability)、报告文档里系统写的「分析范围」结构(ScopeBlock / ScopeItem)
|
2026-10-21 11:55:38 +08:00 |
|
ThearchyHelios
|
844f5571f0
|
分析能力骨架:app/analysis 契约(结论的工件种类、台账条目、写作目录前缀 A、引用标记 a、分析卡节点类型、五个算子与模式、方法版本、判定码、算不了的原因码、附带说明码、工具名)、设置缺省 / 取值范围 / 叫法与校验、阈值合并(缺省 ← 发起时快照 ← 分析卡覆盖)、复算比较;run / recompute 的签名(第 1 波实现);测试用的假结论
|
2026-10-21 11:53:43 +08:00 |
|