Peopulse / phase /interpret.py
sdbrgo's picture
Update phase/interpret.py
fd10e96 verified
def assign_typology(components):
# define state rules for every components
STATE_RULES = {
"PCR (Participation Coverage Ratio)": [
(50.0, "Low Alert"),
(20.0, "Medium Alert"),
(0.0, "High Alert")
],
"SPI-A (Silent Participation Inference - Silent Non-Adoption)": [
(50.0, "High Alert"),
(20.0, "Medium Alert"),
(0.0, "Low Alert")
],
"SPI-B (Silent Participation Inference - Silent Adoption)": [
(60.0, "High Alert"),
(30.0, "Medium Alert"),
(0.0, "Low Alert")
],
"PEG (Participation-to-Expression Gap)": [
(60.0, "High Alert"),
(30.0, "Medium Alert"),
(0.0, "Low Alert")
]
}
buckets = {
"High Alert": [],
"Medium Alert": [],
"Low Alert": []
}
for component, data in components.items():
value = data["Value"]
description = data.get("Description", "")
for threshold, state in STATE_RULES[component]:
if value >= threshold:
buckets[state].append({
"Component": component,
"Value": value,
"Description": description
})
break
return buckets