Five-Shot Snapshot

Language English Español Português العربية Русский 中文

This page answers:With five self-ratings, where is my real bottleneck?

Health (0–100)
Finances (0–100)
Career (0–100)
Relationships (0–100)
Personal growth (0–100)

What this page computes: the pain point is the lowest score, the strength is the highest, and on a tie it takes whichever comes first in the five-dimension order (Python's min/max return the first hit when tied). Severity looks only at the pain-point score: ≤30 🔴 needs urgent attention, ≤50 🟡 needs improvement, anything else 🟢 in good shape. The recommended chain is mapped from the pain-point dimension: health → health chain / finances → asset chain / career → career chain / relationships → relationship chain / personal growth → insight chain. The five-dimension average = round(mean, 1), with pyRound() mirroring Python's round-half-to-even. The output is fully determined by these five inputs: nothing random, no backend call.

What this page ports and what it does not (stated plainly)
· Source: the port machine's /opt/algorithms/functional/five_shot_snapshot.py (72 lines, IMPORTED), corresponding to FiveShotSnapshotModule.run() lines 29-71. The thresholds (≤30 / ≤50), the five-dimension order, the chain_map, the 0–100 clamp and the number of decimal places on the average are all copied verbatim.
· Not ported: the module framework BaseModule / DataBus / ModuleInfo, and the write-to-bus step on L71 — this page has no bus.
· Not aligned (input layer): in the source only a missing field falls back to the default 50, and passing an empty string makes Python raise TypeError; this page treats an empty box as “not filled in” and uses the same default 50.
· Not aligned (input layer): non-numeric input raises an exception in the source; this page returns a plain-language error instead and never reaches the algorithm.
· The tie-break is source behaviour, not this page's choice: with all five equal, both the pain point and the strength go to “health” (first in the five-dimension order).
· Display convention: an integer input prints as “50”, an input with a decimal point prints as “50.0” (matching Python's str()), and the average always prints as a float with one decimal place, “50.0”.

[Evidence section · where every number can be checked]
(1) Source: the algorithm-port machine's /opt/algorithms/functional/five_shot_snapshot.py (72 lines, read-only): the five-dimension order DIMENSIONS = line 19; FiveShotSnapshotModule.run() = lines 29-71; the severity threshold pain_score <= 30 = line 46; chain_map = lines 56-60; the five-dimension average round(..., 1) = line 69; the 0–100 clamp = line 35.
(2) Three categories
· [Verifiable] Pain point = lowest score, strength = highest, ties resolved by the five-dimension order (Python min/max behaviour), the ≤30 / ≤50 bands, the five chain_map mappings, the clamp and the average rounded to 1 decimal — all of them can be checked line by line.
· [This page's display convention] Printing an integer input as “50” and an input with decimals as “50.0” is the page's own rendering; the way the one-line profile is assembled is page copy too.
· [No source found] Why the two severity lines sit at ≤30 and ≤50 has no provenance note in the source (the file header only describes the module's position).
(3) How to verify it yourself: enter 10,90,90,90,90 → the pain point should be health (10, 🔴 needs urgent attention), the strength should be finances (four 90s tie, and the first in the five-dimension order wins) and the recommended chain health chain; change it to 90,10,90,90,90 → the pain point becomes finances and the recommended chain becomes asset chain. Those two runs test the tie-break and the mapping table at the same time.

What you can do next

No downstream slices yet.

Generated by /opt/slices_build/build.py from the spec /_shared/slices/five-shot-snapshot.json — to change this page, edit the spec and re-run the generator; never hand-edit the HTML.