AI Adoption GuideGovernmentClose
Re-grant risk profiler
ML flags entities from closed programs with unresolved compliance issues or performance failures before they are eligible for new funding.
Government processPlanFundAuthorizeDeliverInspectEnforceReportClose
By Don, DoneThat’s AI coach · updated
The flag is a citation, not a score
A re-grant risk profiler should return a flag that names the closed award ID and the unresolved finding, or it should return nothing. That is the quality bar. The model is not scoring the applicant, predicting default, or ranking proposals. It answers a narrower question: does this entity still carry an open compliance issue or a documented performance failure from a closed program, and can you point to the record?
If the closeout file is clean, the field stays empty. Empty is a result. Do not fill it with a residual-risk percent, a color code, or a vague concern. A percentage implies a calibrated residual-risk model that most grant shops do not maintain. A flag without a finding is equally unusable. If the system cannot cite the closed award and the open item, it has not produced profiler output. Suppress it.
This check belongs at close, when prior awards are already in the file and a new request is on the desk. It is not a substitute for proposal scoring assistant work on merit, and it is not a fraud graph. Here the job is the quality of the re-grant signal: cite or stay silent.
Pull closed awards and findings into one view
Load the entity's closed awards first, then the findings that still attach to those awards. Typical sources are Grants.gov-class portals for award identifiers and closeout status, the agency grants management system for performance and special-condition records, audit tracking for single-audit and inspector-general items, and payment systems for questioned costs that never cleared. Large shops often already keep pieces of this in Microsoft, Palantir, or Tyler environments. Treat those platforms as record stores, not as decision engines. The profiler works only if the join key is stable: UEI or equivalent, award ID, and a finding ID or equivalent citation.
Pull, at minimum:
- Closed award IDs, program, period of performance, and closeout date
- Closeout status (accepted, conditional, or incomplete)
- Unresolved audit findings, questioned costs, and required corrective actions
- Documented performance failures recorded against that award, such as missed milestones with a formal determination, material noncompliance, or failed special conditions
- Any hold, offset, or repayment still open on that award
Do not pull rumor, press clips, or informal staff notes unless they already sit as an official finding. If a reviewer cannot open the cited award and see the unresolved item, the flag fails.
Match on the legal entity, not on a similar name. Related nonprofits, fiscal sponsors, and successor organizations need an explicit identity rule. If identity is uncertain, do not flag.
A companion check is whether money or reporting is still owed after the award is nominally closed. That is the job of a residual liability identifier. Use it when the issue is an unpaid liability. Use this profiler when the issue is an unresolved compliance or performance finding that should travel with the entity into the next competition.
Match the applicant to unresolved items only
Resolved findings do not flag. Closed findings, accepted corrective action plans that the agency has signed off, and performance issues the file marks as cured are history. They can remain in the packet for context if policy requires, but they are not profiler output.
Unresolved means the agency still treats the item as open: no management decision, no accepted close of the finding, a missed corrective-action deadline, or a performance failure that was never formally cleared. Prefer high-precision matches (same UEI, same award ID, finding still coded open) over fuzzy text. Fuzzy matching across narratives is how you get a flag with no finding: language that sounds like noncompliance, attached to the wrong award.
When a match is valid, write the flag in a form an officer can paste into the selection memo:
- Entity identifier
- Closed award ID
- Program and closeout date
- Finding citation (audit finding number, management decision, or internal determination ID)
- One-sentence description of what remains unresolved
- Date the item was last confirmed open
That block is the product. Do not append a likelihood, a risk tier, or a recommendation to deny. Those are officer judgments.
Watch for double counting. The same questioned cost can appear in the audit tracker and in the payment system. Cite once. If two findings are distinct, list both, each with its own award ID. If the same pattern appears across several closed programs, you may also run a cross-program fraud pattern detector, but do not collapse fraud-pattern scores into this flag. Mixing those outputs hides the cite the officer needs.
Keep the field empty when closeout is clean
A clean closeout is an accepted close with no open findings, no uncleared performance determination, and no outstanding corrective action on that award. For that entity, on that history, the profiler returns empty.
Empty is easy to break. Teams pad the field because a blank looks like the model failed. They generate a residual-risk percent from award size, program type, or how long ago the grant closed. That percent is not a finding. It is a policy choice dressed as measurement. If leadership wants a waiting period or a heightened review for recent closeouts, write that as a rule outside the model. Do not ask the profiler to invent the number.
Teams also convert emptiness into a green light for automatic award. Empty means this check did not find an unresolved item. It does not mean the proposal is strong, the budget is reasonable, or other integrity screens passed. Keep the field empty and let the rest of the file speak.
If closeout is incomplete rather than clean, that is not emptiness and it is not automatically a finding. Incomplete closeout is a status. Flag it only if policy treats incomplete closeout as an unresolved compliance issue and you can cite the award ID and the incomplete-closeout record. If policy only pauses new awards pending closeout paperwork, route that pause through status, not through a risk label.
The officer awards or withholds after reading the cite
The officer still decides. A valid flag is evidence in the file, the same class of evidence as an open audit finding the specialist would have pulled by hand. It is not a debarment, not a suspension, and not a statutory bar unless a separate exclusion record says so. Treating the flag as a debarment is a failure mode with legal and fairness costs: you have withheld without the process that exclusions require, and you have taught staff that a citation equals ineligibility.
Read the cited finding. Confirm it is still open. Confirm it belongs to this entity. Then apply the program's rules: special conditions, delayed drawdown, a management plan, a reduced award, or a withhold. Or award as requested if the finding is real but the program and counsel judge it does not block this action.
Illustrative path: a municipal health department applies for a new infectious-disease cooperative agreement. The profiler flags closed award ID EH-19-0442, citing single-audit finding 2022-003 for questioned payroll charges still awaiting a management decision. Other closed awards for the department are clean, so those rows stay blank. The officer confirms the finding is open, then withholds, adds a special condition barring the same cost category, or awards after counsel confirms the new program sits outside the questioned activity. The flag never becomes a residual-risk percent, and it never becomes a silent no-award.
After award, residual duties can continue: records retention, additional audits, property disposition. Monitor those with a post-closure obligation monitor, not by recycling this flag. The profiler has done its job when the new-funding file either shows a cited unresolved item or shows nothing to cite.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first