This page answers:Which layer does this content's data break in?
How to read this chart: the 5 layers run top to bottom as entry → reception → interaction → conversion → spread, and you read the order of the colours: the first layer that turns red/yellow means the break is between it and the layer above it.
A break is judged on one combination only: upper layer 🟢 and lower layer 🟡 or 🔴 → out comes one diagnosis plus one prescription (the source code has only these 4 rules; they are not rules added here).
When the upper layer is not 🟢 the source code does not judge a break; and when a layer is all “no data” it is not judged as a break either.
Unit warning: the thresholds are proportions, 0.05 = 5%. Filling in 5 will be judged 🟢 over the line —— the source code compares the value straight against the threshold, with no percentage conversion.
LAYERS — the 5 layers × 12 metrics and all the green/yellow thresholds (L19-57); the colour judgement ≥green 🟢超线 / ≥yellow 🟡偏线 / 否则 🔴迷路 (L88-93); missing data is recorded as “no data” and does not count towards that layer's colour (L85-87); the layer colour takes the worst metric in that layer (🔴 if there is one, otherwise 🟡 if there is one, 🟢 only if all are green, and ⏳ no data only if nothing was filled in) (L97-104); the break condition and the 4 prescriptions (FAULT_DIAG L59-64 and L119-126).data.get(指标名, data.get(指标名.replace(' ', '_'))), and none of the 12 metric names contains a space, so that fallback is a no-op —— this page reads straight by key name.FAULT_DIAG in the source code, so the L121 fallback ('未知断层', '综合优化') is never actually reached; this page keeps that fallback and flags it here.data the source code gets from the API contains strings, the comparison at L88 raises a TypeError; this page forces a number conversion at the input layer and errors out on anything non-numeric (the source code has no such conversion).layers is a dict (order = definition order); this page outputs it as an array in the same order, field for field; the data_bus write (L132) and the info metadata attribute are not ported (a pure front-end has no bus, and the page does not need them).layer_verdict / fault_diagnosis, and none of the 4 existing slices consumes these two types, so build.py's automatic wiring cannot draw edges (it is not a broken link, it is types that do not connect). The two below are hand-set business downstreams:/opt/algorithms/functional/funnel_evaluate.py (133 lines, read-only): the 5 layers × 12 metrics and all the green/yellow thresholds LAYERS = lines 19-57; the break prescriptions FAULT_DIAG = lines 59-64; run() = lines 74-133; the colour judgement raw_val >= ind["green"] = lines 88-93; the layer colour takes the worst in that layer = lines 97-104; the break condition and the join = lines 119-126.0.05 and leave the rest blank → the entry layer should be 🟢 and the rest ⏳ no data, with 0 breaks; then keep the entry layer's CTR at 0.05 and put the reception layer's completion rate at 0.10 (below the yellow line of 0.30) → one entry→reception break should come out, with the prescription “title promise = content delivery”.Compute network value from the size of your network, and show how far you are from the critical point
Convert between 0–10 scores and the engine's −10 to +10 scale, both directions
/opt/slices_build/build.py from the spec /_shared/slices/funnel-evaluate.json — to change this page, edit the spec and re-run the generator; never hand-edit the HTML.