Skip to content

API Overview

Marcus Ackre Medina edited this page Sep 13, 2026 · 1 revision

API Overview

Entry point

Decision.Create(string title) -> DecisionBuilder

Static factory on MarcusMedina.Fluent.Decision.Core.Decision. Returns a DecisionBuilder to chain onto.

DecisionBuilder (fluent chain)

Method Parameters Notes
WithContext string context Optional free-text note about the decision
WithCriterion string name, double weight, NormalizationType normalization = Linear, string? description = null Weights across all criteria are expected to sum to 1.0
WithOption string name, string? notes = null Starts a new option; chain .WithScore(...) calls after it
WithScore string criterionName, double value, ConfidenceLevel confidence = Medium, string? notes = null criterionName must match a name passed to WithCriterion
WithAggregation AggregationType aggregation Defaults to WeightedAverage if never called
Build — Validates and returns the Decision, not yet scored — use this if you want to inspect or serialize the structure before computing
BuildAndCompute — Equivalent to Build().Compute() — use this in the common case where you want ranked results right away

Decision (the computed result)

  • GetRecommendation() — the top-ranked Option, or null if nothing is computed
  • GetRankedOptions() — all options ordered by score
  • GetValidationErrors() — e.g. missing scores, weights that don't sum to 1.0
  • GenerateReport(bool includeDetails = true) — human-readable summary string
  • Analyze() — returns a DecisionAnalysis (recommendation, ranked options, confidence)

Enums

NormalizationType — how a criterion's raw scores are rescaled before weighting:

  • None — use the raw score as-is
  • Linear — higher raw score is better
  • InverseLinear — lower raw score is better (cost, latency, ...)
  • Logarithmic — for values that vary by orders of magnitude
  • SquareRoot — milder scaling than Linear

AggregationType — how per-criterion scores combine into one final score. See Advanced Usage for when to use each.

ConfidenceLevel — VeryLow, Low, Medium, High, VeryHigh. Recorded per score for transparency; does not affect the computed total.

Clone this wiki locally