Esta página responde:Em qual camada os dados deste conteúdo se rompem?
Como ler este gráfico: as 5 camadas, de cima para baixo, são entrada → recepção → interação → conversão → divulgação; olhe a ordem das cores: a camada que fica vermelha/amarela pela primeira vez indica que a ruptura está entre ela e a camada imediatamente acima.
A ruptura só é avaliada numa combinação: camada superior 🟢 e camada inferior 🟡 ou 🔴 → sai um diagnóstico mais uma prescrição (o código-fonte tem só estas 4 regras; não são regras acrescentadas aqui).
Quando a camada superior não é 🟢, o código-fonte não marca ruptura; e quando uma camada é toda «sem dados», ela também não é marcada como ruptura.
Aviso sobre as unidades: os limiares são proporções, 0.05 = 5%. Se você digitar 5, será marcado como 🟢 acima da linha —— o código-fonte compara o número direto com o limiar, sem converter para percentagem.
LAYERS das 5 camadas × 12 indicadores e todos os limiares green/yellow (L19-57); classificação por cor ≥green 🟢超线 / ≥yellow 🟡偏线 / 否则 🔴迷路 (L88-93); dados ausentes registrados como «sem dados» e não contam para a cor da camada (L85-87); a cor da camada pega o indicador pior da camada (se houver 🔴 então 🔴; senão, se houver 🟡 então 🟡; só se tudo for verde é 🟢; e se nenhum foi preenchido, é ⏳ sem dados) (L97-104); a condição de ruptura e as 4 prescrições (FAULT_DIAG L59-64 e L119-126).data.get(指标名, data.get(指标名.replace(' ', '_'))), e nenhum dos 12 nomes de indicador tem espaço, então esse fallback é uma operação vazia —— esta página lê direto pelo nome da chave.FAULT_DIAG, então o fallback de L121 ('未知断层', '综合优化') na prática nunca é alcançado; esta página mantém esse fallback e o sinaliza aqui.data que o código-fonte recebe da API contiver strings, a comparação de L88 dará TypeError; esta página força a conversão para número na camada de entrada e dá erro direto se não for numérico (essa conversão o código-fonte não tem).layers do código-fonte é um dict (a ordem é a de definição); esta página o emite como um array na mesma ordem, campo a campo; a escrita em data_bus (L132) e os atributos de metainformação de info não foram portados (não há barramento no front-end puro e a página não precisa deles).layer_verdict / fault_diagnosis, e nenhum dos 4 slices existentes consome esses dois tipos, então a ligação automática do build.py não consegue traçar arestas (não é link quebrado, é tipo que não conecta). Os dois abaixo são jusante de negócio especificado à mão:/opt/algorithms/functional/funnel_evaluate.py (133 linhas, somente leitura): 5 camadas × 12 indicadores e todos os limiares green/yellow LAYERS = linhas 19-57; prescrições de ruptura FAULT_DIAG = linhas 59-64; run() = linhas 74-133; classificação por cor raw_val >= ind["green"] = linhas 88-93; cor da camada = a pior da camada = linhas 97-104; condição de ruptura e concatenação = linhas 119-126.0.05 e deixe o resto vazio → a camada de entrada deve ser 🟢 e o resto ⏳ sem dados, e as rupturas devem ser 0; depois mantenha o CTR da camada de entrada em 0.05 e ponha a taxa de leitura completa da camada de recepção em 0.10 (abaixo da linha yellow de 0.30) → deve sair uma ruptura entrada→recepção, com a prescrição «promessa do título = entrega do conteúdo».Calcula o valor de rede a partir do tamanho da rede e mostra o quão longe você está do ponto crítico
Converte entre si as pontuações de 0~10 e a escala −10~+10 do motor
/opt/slices_build/build.py a partir da especificação /_shared/slices/funnel-evaluate.json — para alterar esta página, edite a especificação e rode o gerador de novo; nunca edite o HTML à mão.