Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -550,60 +550,6 @@ st.plotly_chart(fig, use_container_width=True)
|
|
| 550 |
|
| 551 |
st.caption(f"{len(df_final)} line(s) aggregated." if not df_final.empty else "No data.")
|
| 552 |
|
| 553 |
-
# ------------------- Comparisons Tab (LIKERT-AWARE) -------------------
|
| 554 |
-
tab_compare, = st.tabs(["📊 Comparisons"])
|
| 555 |
-
|
| 556 |
-
with tab_compare:
|
| 557 |
-
st.subheader("Onboarding → Closing — % Change (Likert-aware)")
|
| 558 |
-
df1 = pd.DataFrame({
|
| 559 |
-
"Dimension": COLS,
|
| 560 |
-
"Onboarding (merged)": [vec_onb.get(k) for k in COLS],
|
| 561 |
-
"Closing (merged)": [vec_cls.get(k) for k in COLS],
|
| 562 |
-
"% Change": [pct_onb_to_cls.get(k) for k in COLS],
|
| 563 |
-
})
|
| 564 |
-
st.dataframe(
|
| 565 |
-
df1.style.format({
|
| 566 |
-
"Onboarding (merged)": "{:.2f}",
|
| 567 |
-
"Closing (merged)": "{:.2f}",
|
| 568 |
-
"% Change": "{:+.1f}%"
|
| 569 |
-
}),
|
| 570 |
-
use_container_width=True
|
| 571 |
-
)
|
| 572 |
-
|
| 573 |
-
st.subheader("Onboarding → (Week2 + Week3 + ClosingMerged) — % Change")
|
| 574 |
-
df2 = pd.DataFrame({
|
| 575 |
-
"Dimension": COLS,
|
| 576 |
-
"Onboarding (merged)": [vec_onb.get(k) for k in COLS],
|
| 577 |
-
"Weeks 2+3 + Closing (closing merged)": [vec_combo.get(k) for k in COLS],
|
| 578 |
-
"% Change": [pct_onb_to_combo.get(k) for k in COLS],
|
| 579 |
-
})
|
| 580 |
-
st.dataframe(
|
| 581 |
-
df2.style.format({
|
| 582 |
-
"Onboarding (merged)": "{:.2f}",
|
| 583 |
-
"Weeks 2+3 + Closing (closing merged)": "{:.2f}",
|
| 584 |
-
"% Change": "{:+.1f}%"
|
| 585 |
-
}),
|
| 586 |
-
use_container_width=True
|
| 587 |
-
)
|
| 588 |
-
|
| 589 |
-
# Optional bar chart: %Δ Onboarding → Closing
|
| 590 |
-
try:
|
| 591 |
-
fig_delta = go.Figure()
|
| 592 |
-
fig_delta.add_bar(
|
| 593 |
-
x=COLS,
|
| 594 |
-
y=[(pct_onb_to_cls.get(k) if pct_onb_to_cls.get(k) is not None else 0.0) for k in COLS],
|
| 595 |
-
name="%Δ Onb→Closing"
|
| 596 |
-
)
|
| 597 |
-
fig_delta.update_layout(
|
| 598 |
-
title="% Change: Onboarding → Closing (Likert-aware)",
|
| 599 |
-
xaxis_title="Dimension",
|
| 600 |
-
yaxis_title="% change",
|
| 601 |
-
margin=dict(l=20, r=20, t=50, b=20)
|
| 602 |
-
)
|
| 603 |
-
st.plotly_chart(fig_delta, use_container_width=True)
|
| 604 |
-
except Exception:
|
| 605 |
-
pass
|
| 606 |
-
|
| 607 |
|
| 608 |
|
| 609 |
# ================== Dynamic Stage Summaries (only if student answered that week) ==================
|
|
|
|
| 550 |
|
| 551 |
st.caption(f"{len(df_final)} line(s) aggregated." if not df_final.empty else "No data.")
|
| 552 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 553 |
|
| 554 |
|
| 555 |
# ================== Dynamic Stage Summaries (only if student answered that week) ==================
|