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
errorsandwarningsfor 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_NONZEROwhen claimables > 0. - Emits
INDIRECT_COST_COMMENT_MISSINGif 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