Skip to main content

sdac-validate-indirect-cost-functions

Purpose

Ensures indirect-cost function codes have $0 claimable costs and the required comment phrase.

Tool type

Deterministic (rule-based)

Tool ID

sdac-validate-indirect-cost-functions

Inputs

  • report_id (string)
  • record_ids (number[], optional)
  • required_comment (string, optional, default: "included in indirect cost rate")

Outputs

  • errors and warnings for non-zero claimables or missing comments

Example output

{
"success": true,
"report_id": "SDAC-2024-Q2-001",
"passed": false,
"errors": [
{
"rule_id": "INDIRECT_COST_FUNCTION_CLAIMED",
"row_number": 61,
"function_code": "2320",
"message": "Function code is included in the indirect cost rate and should not have claimed costs.",
"severity": "ERROR"
}
],
"warnings": [
{
"rule_id": "INDIRECT_COST_COMMENT_MISSING",
"row_number": 61,
"message": "Expected comment such as included in indirect cost rate.",
"severity": "WARNING"
}
]
}

Functional details

  • Enforces $0 claimables for indirect-cost function codes.
  • Requires a specific comment phrase for indirect entries.
  • Normalizes multi-code rows before validation.

Implementation details

  • Detects indirect ranges (2300–2324, 2500–2549) and code 2591.
  • Emits INDIRECT_COST_NONZERO when claimables > 0.
  • Emits INDIRECT_COST_COMMENT_MISSING if required phrase is missing (case-insensitive).
  • Uses parsed function code arrays when multi-codes exist.

Code Location: packages/domain-sdac/src/tools/validate-indirect-cost-functions.tool.ts