diff --git a/app/bot.py b/app/bot.py
index 5802968..41007fc 100644
--- a/app/bot.py
+++ b/app/bot.py
@@ -291,8 +291,30 @@ class BotUI:
lines.append(f" {profiles.resumen(n)}")
lines.append("\nmadrugón = de esos minutos, los que te levantas antes "
"por la entrada de la mañana. Tu histórico real: 4 minutos, moda 38%.")
+ real = self._histograma_real()
+ if real:
+ lines.append("\n" + real)
return "\n".join(lines)
+ def _histograma_real(self) -> str:
+ """Lo que hay sorteado ahora mismo, para poder ver el efecto del cambio."""
+ from collections import Counter
+ hoy = self.svc.today()
+ c: Counter = Counter()
+ for i in range(60):
+ for r in self.svc.store.get_plan(hoy + timedelta(days=i)):
+ t = datetime.fromisoformat(r["target"])
+ if r["typ"] == ENTRADA and (t.hour, t.minute) == (9, 0):
+ c[datetime.fromisoformat(r["planned_at"]).strftime("%H:%M")] += 1
+ if not c:
+ return ""
+ tot = sum(c.values())
+ filas = "\n".join(
+ f" {h} {'█' * n} {n}" for h, n in sorted(c.items()))
+ return (f"Tus próximos {tot} días ya sorteados (entrada de la mañana)\n"
+ f"{filas}\n {len(c)} horas distintas · la más repetida "
+ f"{max(c.values())} de {tot} ({round(100 * max(c.values()) / tot)}%)")
+
def _perfil_teclado(self) -> InlineKeyboardMarkup:
actual = self.svc.store.get("perfil", profiles.DEFECTO)
botones = [InlineKeyboardButton(
diff --git a/app/daemon.py b/app/daemon.py
index d9758da..db72f1e 100644
--- a/app/daemon.py
+++ b/app/daemon.py
@@ -27,7 +27,7 @@ logger = logging.getLogger(__name__)
ANNOUNCE_LEAD = timedelta(minutes=12) # cuanta antelacion tiene el killswitch
MAX_SLEEP = 60.0
REPLAN_HOUR = 4 # hora a la que se planifica el dia
-HORIZON_DAYS = 21 # dias que se planifican por adelantado
+HORIZON_DAYS = 35 # dias que se planifican por adelantado
class Service: