Skip to main content

Insights

Insights are short notices about unusual spending. They are generated once a day, shown in the bell in the header, and visible to the AI Assistant.

What Is Detected​

Insights are based on your daily expenses, converted to your base currency, and compared with the average of up to the last three complete months. Nothing is generated until you have at least one complete month of history.

  • Spending anomaly (per category): this month's spending in a category is more than 150% of its average and above 50 in your base currency. Severity is "warning" when it is more than double the average, otherwise "info".
  • Budget warning: from day 7 of the month, the overall spending pace is more than 20% above your average pace. The notice shows a projected month total.

Texts are generated in German. Each finding exists once per month: a later run updates its text instead of adding a copy, and an unread finding that no longer applies is removed. Insights expire at the end of the month.

Where You See Them​

  • Click the bell in the header to list your unread insights (up to 10, newest first). Use Mark as read to dismiss one. If there are none, it shows "No new insights."
  • Ask the assistant ("Is there anything unusual?"); it can also mark an insight as read after you approve.

Requirements​

  • Insights are created by a scheduled job calling GET /api/cron/insights with Authorization: Bearer <CRON_SECRET>. In the provided Docker setup the schedule is INSIGHTS_SCHEDULE (default 0 6 * * *, daily at 06:00).
  • Without CRON_SECRET the endpoint returns HTTP 500 and no insights appear.
  • No OpenAI key is needed for generation; the analysis is calculated from your data.