Skip to main content

sdac-get-report-info

Purpose

Looks up basic SDAC cost report metadata and aggregate totals. Use this to verify that a report exists, identify the district and reporting period, and inspect claimable salary and fringe totals before running deeper validation.

Tool type

Deterministic (read-only)

Tool ID

sdac-get-report-info

Inputs

  • report_id (string, required) -- Cost report identifier (GUID)

Outputs

  • report_id (string)
  • has_report (boolean) -- Whether the report exists in SDAC.data_CostReports
  • district_id (string | null)
  • district_name (string | null)
  • year (number | null)
  • quarter (string | null)
  • totals (object)
    • claimable_salary_total (number)
    • claimable_fringe_total (number)
    • position_count (number) -- Canonical position count derived from the position ledger
    • main_roster_count (number)
    • replacement_row_count (number)
    • direct_support_position_count (number)
    • ambiguous_link_count (number)
    • personnel_count (number) -- Deprecated compatibility field; do not use for widget/UI position counts

Example output

{
"report_id": "SDAC-2024-Q2-001",
"has_report": true,
"district_id": "D123",
"district_name": "Example R-II School District",
"year": 2024,
"quarter": "Q2",
"totals": {
"claimable_salary_total": 1250000,
"claimable_fringe_total": 312000,
"position_count": 84,
"main_roster_count": 79,
"replacement_row_count": 4,
"direct_support_position_count": 1,
"ambiguous_link_count": 0,
"personnel_count": 84
}
}

Functional details

  • Loads report metadata, totals, and district info in parallel from the SDAC database.
  • Position totals are derived from the report-level position ledger, not from raw personnel row counts.
  • Vacant/open main-roster rows still count as positions.
  • Non-DSP rows in the replacements/support section do not increase the position count; DSP=Y add-on positions do.
  • Returns has_report: false with null fields when no matching report is found.
  • Also exported as getReportContext() for direct use by other tools without tool overhead.

Usage notes

  • Typically called at the start of a review session to confirm the report is loaded.
  • Used internally by sdac-orchestrate-full-review to populate plan metadata.

Implementation details

  • Reads from SDAC.data_CostReports and related tables via loadReportMetadata, loadReportTotals, and loadDistrictForReport helpers.

Code Location: packages/domain-sdac/src/tools/get-report-info.tool.ts