Documentation

Malvedeck

Project Health Engine

The Project Health Engine turns scattered signals into one number you can act on. It is a real weighted algorithm over real data, not a status field someone remembered to update.

The task signal

The base of the score comes from your tasks: completion rate, how delayed work is against due dates, and how much is blocked. These three combine into a weighted technical score, with completion, delay, and blockers each carrying a fixed weight.


The operational signal

When the relevant integrations are connected, the engine blends in CI failure rate and a penalty for active incidents. These operational signals arrive from the Malviont layer (CI runs and incidents written by webhooks) and are read per project.

This enrichment is conditional. If a tenant has not connected CI or incident integrations, the engine falls back to task signals alone and lowers the confidence band rather than guessing. So a project with only a tracker connected gets a real but task-only health number.


Optional PM sentiment

A project manager can add sentiment, which blends into the final score. It is only included when a PM actually sets it, so untouched projects never get an undeserved boost.


The output

The engine produces a health band (healthy, at risk, or off track), persists a snapshot with the reasons behind it, and broadcasts the update to the dashboards in real time.