GSA-TTS / FAC

GSA's Federal Audit Clearinghouse
Other
18 stars 5 forks source link

Investigate cog/over outside base years #3903

Open jadudm opened 1 month ago

jadudm commented 1 month ago

A question has been asked about the cog/over algorithm.

Specifically, the question is: are we handling assignments outside of base years correctly?

The flow, as-is, is shown below. (The flow was previously expressed as a Mural; this is a Mermaid transcription, which would allow us to put it under version control.)

flowchart TD
    classDef startClass fill:#000,stroke:#CCC,color:#FFF
    classDef endClass fill:#000,stroke:#CCC,color:#FFF
    classDef info fill:#F4D03F,stroke:#CCC
    classDef question fill:#F39C12,stroke:#CCC
    classDef overInfo fill:#AED6F1,stroke:#CCC
    classDef cogInfo fill:#F5B7B1,stroke:#CCC

    A(Start):::startClass --- B[Record is \nsubmitted to the FAC]
    B:::info --> C{Total expenditure \nless than \nor equal to $50M?}
    C:::question
    C -->|YES| O1
    C -->|NO| C0
    subgraph Oversight
    O1[Determine Oversight]:::overInfo
    O2:::question
    O1 --> O2
    O2{Does record have\nDA expenditures?}
    O2 -->|NO| O4
    O2 -->|YES| O3
    O4:::overInfo
    O3:::overInfo
    O3[Sum DA\nexpenditures to\nunique ALN prefixes]
    O4[Agency with\npredominant amount\nof total funding\is oversight]
    O3 --> O6
    O4 --> O5[End]:::endClass
    O6:::question
    O6{Does agency\nwith largest DA\nexpenditure make up\nat least 25%\nof total expenditure?}
    O6 -->|YES| O8
    O6 -->|NO| O7
    O8:::overInfo
    O7:::overInfo
    O8[Agency with\npredominant DA\nexpenditure is\noversight]
    O7[Agency with\npredominant total\nexpenditure is \noversight]
    O8 --> O9[End]:::endClass
    O7 --> O10[End]:::endClass
    end
    subgraph Cognizance
    C0:::cogInfo
    C1:::question
    C2:::cogInfo
    C3:::cogInfo
    C4:::endClass
    C0[Determine Cognizance]
    C0 --> C1{Does\nentity exist in\nCog_Ref_List}
    C1 -->|YES| C2[Listed Cog is assigned.]
    C1 -->|NO| C3[Look back at base year\nfor the submission]
    C2 --> C4(END)
    C3 --> C5{Does\nbase year \nsubmission exist?}
    C5:::question
    C5 -->|NO| C6
    C5 -->|YES| C7
    C6:::cogInfo
    C7:::cogInfo
    C7[Use submission's\nBASE YEAR\nDA expenditure to\ndetermine Cog]
    C7 --> C8
    C6[Use submission's\nCURRENT YEAR\nDA expenditure to\ndetermine Cog]
    C6 --> C8
    C8:::question
    C8{Does record have\nDA expenditures?}
    C8 -->|NO| C10
    C8 -->|YES| C9
    C10:::cogInfo
    C9:::cogInfo
    C10[Agency with\npredominant amount\nof total funding is Cog]
    C9[Sum DA\nexpenditures to\nunique ALN prefixes]
    C9 --> C11
    C10 --> C16[End]:::endClass
    C11:::question
    C11{Does agency\nwith largest DA\nexpenditure make\nup at least 25%\nof total expenditure?}
    C11 -->|YES| C12 
    C11 -->|NO| C13
    C12:::cogInfo
    C13:::cogInfo
    C12[Agency with\npredominant DA\nexpenditure is Cog]
    C12 --> C14[End]:::endClass
    C13[Agency with\npredominant amount\nof total expenditure\nis Cog]
    C13 --> C15[End]:::endClass
    end

The question is, should we do the following?

1. Does a base year submission exist?

2. If NO, then we ask: was Cog assigned outside of the base year? 

2a. If NO, then use the current year DA, and continue through the flowchart.
2b. If YES, use the assignment that was made outside the base year, and END.

This would modify the cog portion of the algorithm. After modification, it would look like:

flowchart TD
    classDef startClass fill:#000,stroke:#CCC,color:#FFF
    classDef endClass fill:#000,stroke:#CCC,color:#FFF
    classDef info fill:#F4D03F,stroke:#CCC
    classDef question fill:#F39C12,stroke:#CCC
    classDef overInfo fill:#AED6F1,stroke:#CCC
    classDef cogInfo fill:#F5B7B1,stroke:#CCC

    A(Start):::startClass --- B[Record is \nsubmitted to the FAC]
    B:::info --> C{Total expenditure \nless than \nor equal to $50M?}
    C:::question
    C -->|YES| O1
    C -->|NO| C0
    subgraph Oversight
    O1[Determine Oversight]:::overInfo
    O2:::question
    O1 --> O2
    O2{Does record have\nDA exepnsidtures?}
    O2 -->|NO| O4
    O2 -->|YES| O3
    O4:::overInfo
    O3:::overInfo
    O3[Sum DA\nexpenditures to\nunique ALN prefixes]
    O4[Agency with\npredominant amount\nof total funding\is oversight]
    O3 --> O6
    O4 --> O5(END):::endClass
    O6:::question
    O6{Does agency\nwith largest DA\nexpenditure make up\nat least 25%\nof total expenditure?}
    O6 -->|YES| O8
    O6 -->|NO| O7
    O8:::overInfo
    O7:::overInfo
    O8[Agency with\npredominant DA\nexpenditure is\noversight]
    O7[Agency with\npredominant total\nexpenditure is \noversight]
    O8 --> O9(END):::endClass
    O7 --> O10(END):::endClass
    end
    subgraph Cognizance
    C0:::cogInfo
    C1:::question
    C2:::cogInfo
    C3:::cogInfo
    C4:::endClass
    C0[Determine Cognizance]
    C0 --> C1{Does\nentity exist in\nCog_Ref_List}
    C1 -->|YES| C2[Listed Cog is assigned.]
    C1 -->|NO| C3[Look back at base year\nfor the submission]
    C2 --> C4(END)
    C3 --> C5{Does\nbase year \nsubmission exist?}
    C5:::question
    C5 -->|NO| C6a
    C5 -->|YES| C7
    C6a{Was Cog assigned\noutside of the\nbase year?}
    C6a:::question
    C6a -->|NO| C6
    C6a -->|YES| C6b
    C6b:::cogInfo
    C6b[Use the assignment made\noutside of the base year]
    C6b --> C6c(END):::endClass
    C6:::cogInfo
    C7:::cogInfo
    C7[Use submission's\nBASE YEAR\nDA expenditure to\ndetermine Cog]
    C7 --> C8
    C6[Use submission's\nCURRENT YEAR\nDA expenditure to\ndetermine Cog]
    C6 --> C8
    C8:::question
    C8{Does record have\nDA expenditures?}
    C8 -->|NO| C10
    C8 -->|YES| C9
    C10:::cogInfo
    C9:::cogInfo
    C10[Agency with\npredominant amount\nof total funding is Cog]
    C9[Sum DA\nexpenditures to\nunique ALN prefixes]
    C9 --> C11
    C10 --> C16(END):::endClass
    C11:::question
    C11{Does agency\nwith largest DA\nexpenditure make\nup at least 25%\nof total expenditure?}
    C11 -->|YES| C12 
    C11 -->|NO| C13
    C12:::cogInfo
    C13:::cogInfo
    C12[Agency with\npredominant DA\nexpenditure is Cog]
    C12 --> C14(END):::endClass
    C13[Agency with\npredominant amount\nof total expenditure\nis Cog]
    C13 --> C15(END):::endClass
    end

This ticket is to track the investigation of whether or not this update to the cog/over assignment algorithm is the right thing to do.

jadudm commented 1 month ago

This is now blocked pending further conversation with OMB.