Skip to main content
A problem is a group of negative signals — emotion, tool failures, laziness, hallucinations — that Moda attributes to a single root cause. New conversations are attributed to existing problems within minutes, and new problems are discovered, ranked, and verified automatically as evidence accumulates. Open Observe → Problems to see what is broken, review the evidence, and record what you fixed or dismissed.

What the page shows

  • A KPI strip: Open Problems, Explained Coverage (share of negative signals attributed to a problem), Signals Attributed, and Reopened.
  • Three views of the same ranked list — Board (kanban), List, and Hierarchy — with a time window of 1, 7, 30, or 90 days.
  • A Needs verification section: problems whose verification is failed, missing, or stale. They keep their status but are excluded from the ranked list until verification passes.
  • An Emerging issues section: provisional root-cause candidates still gathering evidence, not yet in the ranked list.
  • A link to the Unexplained remainder page: negative signals not yet attributed to any problem, with a coverage meter and groupings by signal family, type, hypothesis, and conversation.

Lifecycle columns

The Board view has four columns. Column position is computed by Moda — dragging records feedback rather than moving cards directly (see below).

Drag semantics

Dragging a card on the Board submits a feedback action; it never changes the lifecycle immediately:
  • Open or Reopened → Fixed records a mark fixed.
  • Open, Reopened, or Fixed → Resolved records a dismiss. A reason is required before the drop submits.
  • Open and Reopened are not drop targets, and cards cannot be reordered within a column — rank is computed, not user-sorted.
After a legal drop the card stays in its source column with a pending marker until the change is applied. Dropping the same action twice while one is pending is blocked.

Problem detail (Dossier)

Clicking a problem opens its Dossier, with two tabs:
  • Dossier — the full case for the problem, top to bottom: sub-problems, executive summary, causal chain, impact, per-family signal trend, story cards, root-cause scope, Evidence (sampled member conversations that deep-link to the exact message), investigation reports, confidence, suggested investigation, and change history.
  • Conversations — the complete list of conversations attributed to this problem. The same list is available through the Data API at GET /problems/:id/conversations.

Feedback actions

Feedback is how you steer problem discovery. Every action is recorded immediately, shown as pending, and incorporated automatically — nothing edits the problem definition directly.
Feedback is applied asynchronously. Until it is applied, the dashboard shows a pending state on the affected problem, and duplicate submissions of the same action are collapsed onto the pending one.
Feedback can also be submitted through the Data API: POST /problems/:id/feedback.

Next steps

  • Signals — the per-conversation detections that problems are built from.
  • Problems in the Data API — read problems, evidence, and reports, and submit feedback programmatically.
  • Analysis — how problems relate to every other computed result.