Skip to main content

assessDataCompleteness

@nmi-agro/fdm-source


@nmi-agro/fdm-source / fdm-calculator/src / assessDataCompleteness

Function: assessDataCompleteness()

assessDataCompleteness(soilData, method, soilMeta?): DataCompleteness

Defined in: fdm-calculator/src/mineralization/assessment.ts:85

Evaluates which soil parameters are available, missing, or will be estimated for the chosen mineralization method, and returns a 0–100 completeness score.

Score calculation:

  • Required parameters contribute up to 80 points (proportional to fraction present).
  • Optional parameters contribute up to 20 points (proportional to fraction present).
  • Parameters measured by NMI (source === "nl-other-nmi") are treated as absent for scoring purposes, since they represent API estimates rather than field data.

Parameters

soilData

Record<string, number | string | null | undefined>

Flat key-value map of soil parameters (from getCurrentSoilData). Keys are FDM parameter names (e.g. "a_som_loi").

method

NSupplyMethod

The mineralization method determining which parameters are needed.

soilMeta?

Record<string, { date?: Date; source?: string; }>

Optional metadata per parameter: measurement source identifier and sampling date. Used to distinguish lab measurements from NMI estimates.

Returns

DataCompleteness

A DataCompleteness object with categorized parameters and score.

Example

const completeness = assessDataCompleteness(
{ a_som_loi: 3.5, a_clay_mi: 12, a_silt_mi: 18, a_sand_mi: 70 },
"minip",
)
// completeness.score === 100 (all required + all optional present)