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.
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.)
The question is, should we do the following?
This would modify the cog portion of the algorithm. After modification, it would look like:
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.