[Canonical page](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/overview/>)
[Full documentation index](<https://docs.dhtmlx.com/planning-engine/llms.txt>)


# evaluate

Types for scoring alternative change sets against the accepted baseline of a [`Project`](<https://docs.dhtmlx.com/planning-engine/net/api/core/project/project.md>). You pass a list of [`Candidate`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/candidate.md>) objects and [`EvaluateOptions`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/evaluate-options.md>) to [`Project.Evaluate`](<https://docs.dhtmlx.com/planning-engine/net/api/project-evaluate.md>), or to `Project.EvaluateWith` together with an [`Execution`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/execution.md>) mode. Each candidate runs on a disposable copy, so the project itself doesn't change.

The call returns an [`EvaluateResult`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/evaluate-result.md>): baseline [`Metrics`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/metrics.md>) plus one [`CandidateResult`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/candidate-result.md>) per candidate. The rest of the folder holds the parts of those metrics: [`LeveledMetrics`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/leveled-metrics.md>) for the leveled stage, [`Finish`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/metrics.md#finish>), [`TaskFinish`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/metrics.md#taskfinish>) and [`Shift`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/metrics.md#shift>) for finish dates, and [`Overload`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/overload.md>) with [`ResourceOverload`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/overload.md#resourceoverload>), [`FocusOverload`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/overload.md#focusoverload>) and [`Amount`](<https://docs.dhtmlx.com/planning-engine/net/api/core/evaluate/overload.md#amount>).

`Execution` is a `readonly record struct` and `Amount` is a `record struct`. The other types are sealed classes, and the result types implement `IEquatable<T>` with value equality. Every type here is in the `Plen` namespace. For how to compare candidates, see [Evaluating alternatives](<https://docs.dhtmlx.com/planning-engine/net/resources-and-assignment/evaluating-alternatives.md>).

:::category-index
:::
