anchor.diff:  A1.1,"TAS components: The combination of all the elements that make up the TAS must match the Treasury Central Accounting Reporting System (CARS). AgencyIdentifier, MainAccountCode, and SubAccountCode are always required. AllocationTransferAgencyIdentifier, BeginningPeriodOfAvailability, EndingPeriodOfAvailability and AvailabilityTypeCode are required if present in the CARS table.",n,appropriations,fatal,,a1_appropriations,"A valid TAS must be provided that consists of: AgencyIdentifier, MainAccountCode, and SubAccountCode are always required. AllocationTransferAgencyIdentifier, BeginningPeriodOfAvailability, EndingPeriodOfAvailability and AvailabilityTypeCode are required if they are part of the TAS.","existence"
   A1.2,"TAS components: The combination of all the elements that make up the TAS must match the Treasury Central Accounting Reporting System (CARS). AgencyIdentifier, MainAccountCode, and SubAccountCode are always required. AllocationTransferAgencyIdentifier, BeginningPeriodOfAvailability, EndingPeriodOfAvailability and AvailabilityTypeCode are required if present in the CARS table.",n,program_activity,fatal,,a1_object_class_program_activity,"A valid TAS must be provided that consists of: AgencyIdentifier, MainAccountCode, and SubAccountCode are always required. AllocationTransferAgencyIdentifier, BeginningPeriodOfAvailability, EndingPeriodOfAvailability and AvailabilityTypeCode are required if they are part of the TAS.","existence"
   A1.3,"TAS components: The combination of all the elements that make up the TAS must match the Treasury Central Accounting Reporting System (CARS). AgencyIdentifier, MainAccountCode, and SubAccountCode are always required. AllocationTransferAgencyIdentifier, BeginningPeriodOfAvailability, EndingPeriodOfAvailability and AvailabilityTypeCode are required if present in the CARS table.",n,award_financial,fatal,,a1_award_financial,"A valid TAS must be provided that consists of: AgencyIdentifier, MainAccountCode, and SubAccountCode are always required. AllocationTransferAgencyIdentifier, BeginningPeriodOfAvailability, EndingPeriodOfAvailability and AvailabilityTypeCode are required if they are part of the TAS.","existence"
  -A2,"TotalBudgetaryResources_CPE = BudgetAuthorityAppropriatedAmount_CPE + BudgetAuthorityUnobligatedBalanceBroughtForward_FYB + AdjustmentsToUnobligatedBalanceBroughtForward_CPE + OtherBudgetaryResourcesAmount_CPE + SF 133 Line 1902",n,appropriations,fatal,,a2_appropriations,"TotalBudgetaryResources_CPE must equal the sum of these elements: BudgetAuthorityAppropriatedAmount_CPE + BudgetAuthorityUnobligatedBalanceBroughtForward_FYB + AdjustmentsToUnobligatedBalanceBroughtForward_CPE + OtherBudgetaryResourcesAmount_CPE + SF 133 Line 1902. The Broker cannot distinguish which item is incorrect for this rule. Refer to related rule errors and warnings in this report (rules A3, A6, A7, A8, A12) to distinguish which elements may be incorrect.","accuracy"
  -A3,"OtherBudgetaryResourcesAmount_CPE = ContractAuthorityAmountTotal_CPE + BorrowingAuthorityAmountTotal_CPE + SpendingAuthorityfromOffsettingCollectionsAmountTotal_CPE",n,appropriations,fatal,,a3_appropriations,"OtherBudgetaryResourcesAmount_CPE must equal the sum of these elements: ContractAuthorityAmountTotal_CPE + BorrowingAuthorityAmountTotal_CPE + SpendingAuthorityfromOffsettingCollectionsAmountTotal_CPE. The Broker cannot distinguish which item is incorrect for this rule. Refer to related rule errors and warnings in this report (rules A9, A10, A11) to distinguish which elements may be incorrect.","accuracy"
  -A4,"StatusOfBudgetaryResourcesTotal_CPE= ObligationsIncurredTotalByTAS_CPE + UnobligatedBalance_CPE",n,appropriations,fatal,,a4_appropriations,"StatusOfBudgetaryResourcesTotal_CPE must equal the sum of these elements: ObligationsIncurredTotalByTAS_CPE + UnobligatedBalance_CPE. The Broker cannot distinguish which item is incorrect for this rule. Refer to related rule errors and warnings in this report (rules A15, A22, A23) to distinguish which elements may be incorrect.","accuracy"
  +A2,"TotalBudgetaryResources_CPE = BudgetAuthorityAppropriatedAmount_CPE + BudgetAuthorityUnobligatedBalanceBroughtForward_FYB + AdjustmentsToUnobligatedBalanceBroughtForward_CPE + OtherBudgetaryResourcesAmount_CPE + GTAS SF 133 Line 1902.",n,appropriations,fatal,,a2_appropriations,"TotalBudgetaryResources_CPE must equal the sum of these elements: BudgetAuthorityAppropriatedAmount_CPE + BudgetAuthorityUnobligatedBalanceBroughtForward_FYB + AdjustmentsToUnobligatedBalanceBroughtForward_CPE + OtherBudgetaryResourcesAmount_CPE + SF 133 Line 1902. The Broker cannot distinguish which item is incorrect for this rule. Refer to related rule errors and warnings in this report (rules A3, A6, A7, A8, A12) to distinguish which elements may be incorrect.","accuracy"
  +A3,"OtherBudgetaryResourcesAmount_CPE = ContractAuthorityAmountTotal_CPE + BorrowingAuthorityAmountTotal_CPE + SpendingAuthorityfromOffsettingCollectionsAmountTotal_CPE.",n,appropriations,fatal,,a3_appropriations,"OtherBudgetaryResourcesAmount_CPE must equal the sum of these elements: ContractAuthorityAmountTotal_CPE + BorrowingAuthorityAmountTotal_CPE + SpendingAuthorityfromOffsettingCollectionsAmountTotal_CPE. The Broker cannot distinguish which item is incorrect for this rule. Refer to related rule errors and warnings in this report (rules A9, A10, A11) to distinguish which elements may be incorrect.","accuracy"
  +A4,"StatusOfBudgetaryResourcesTotal_CPE= ObligationsIncurredTotalByTAS_CPE + UnobligatedBalance_CPE.",n,appropriations,fatal,,a4_appropriations,"StatusOfBudgetaryResourcesTotal_CPE must equal the sum of these elements: ObligationsIncurredTotalByTAS_CPE + UnobligatedBalance_CPE. The Broker cannot distinguish which item is incorrect for this rule. Refer to related rule errors and warnings in this report (rules A15, A22, A23) to distinguish which elements may be incorrect.","accuracy"
   A6,"TotalBudgetaryResources_CPE= CPE value for GTAS SF-133 line #1910",n,appropriations,fatal,,a6_appropriations,"(See SQL file)","accuracy"
   A7,"BudgetAuthorityUnobligatedBalanceBroughtForward_FYB= value for GTAS SF-133 line #1000",n,appropriations,fatal,,a7_appropriations,"(See SQL file)","accuracy"
   A8,"BudgetAuthorityAppropriatedAmount_CPE= CPE aggregate value for GTAS SF-133 line #1160 + #1180 + #1260 + #1280",n,appropriations,fatal,,a8_appropriations,"(See SQL file)","accuracy"
  
positive.code: B12.2,"The reimbursable flag indicator (bydirectreimbursablefundingsource) must be empty, R, or D",n,award_financial,fatal,,b12_award_financial_2,"(null), D, or R","accuracy"
  B12.3,"Reimbursable flag indicator is required when reporting non-zero obligation or outlay USSGL account balances (excluding USSGL accounts for downward adjustments and transfers). Valid values are ""R"" for ""ReimbursableFundingSource"" and ""D"" for ""DirectFundingSource"".",n,program_activity,fatal,,b12_object_class_program_activity_1,"D or R","completeness"
  B12.4,"The reimbursable flag indicator (bydirectreimbursablefundingsource) must be empty, R, or D",n,program_activity,fatal,,b12_object_class_program_activity_2,"(null), D, or R","accuracy"
  B13,"DeobligationsRecoveriesRefundsOfPriorYearByProgramObjectClass_CPE in File B = USSGL(4871+ 4872 + 4971 + 4972) in File B for the same reporting period and TAS/DEFC combination",n,program_activity,warning,,b13_object_class_program_activity,"Within File B, DeobligationsRecoveriesRefundsOfPriorYearByProgramObjectClass_CPE should equal the amounts provided in File B for USSGL(4871_CPE+ 4872_CPE + 4971_CPE + 4972_CPE). The Broker cannot distinguish which element is correct for this rule; the agency should review its source information.","accuracy"
  B14,"All the Direct Appropriation (D) amounts reported for (4801_CPE less 4801_FYB) + (4802_CPE less 4802_FYB) + 4881_CPE + 4882_CPE + (4901_CPE less 4901_FYB) + 4902_CPE + (4908_CPE less 4908_FYB) + 4981_CPE + 4982_CPE = the opposite sign of SF 133 line 2004 per TAS, for the same reporting period and TAS/DEFC combination",n,program_activity,warning,,b14_object_class_program_activity,"(See SQL file)","accuracy"
  B15,"All the Reimbursable (R) amounts reported for (4801_CPE less 4801_FYB) + (4802_CPE less 4802_FYB) + 4881_CPE + 4882_CPE + (4901_CPE less 4901_FYB) + 4902_CPE + (4908_CPE less 4908_FYB) + 4981_CPE + 4982_CPE = the opposite sign of SF 133 line 2104 per TAS, for the same reporting period and TAS/DEFC combination. If the DEFC is other than Q, this value should be $0 since there should not be reimbursable work reported for disasters or emergencies.",n,program_activity,warning,,b15_object_class_program_activity,"(See SQL file)","accuracy"
  B19,"The combination of TAS/object class/program activity code+name/reimbursable flag/DEFC in File B (object class program activity) should be unique",n,program_activity,fatal,,b19_object_class_program_activity,"The combination of TAS/object class/program activity code+name/reimbursable flag in File B must be unique.","existence"
  B20,"All combinations of TAS/program activity code+name/object class/DEFC in File C (award financial) should exist in File B (object class program activity). Since not all object classes will have award activity, it is acceptable for combinations of TAS/program activity code+name/object class/DEFC in File C to be a subset of those provided in File B.",y,award_financial,fatal,program_activity,b20_object_class_program_activity,"(See SQL file)","existence"
  B21,"For monthly submissions, all TAS and COVID-19 Disaster Emergency Fund Code combinations required to be reported to GTAS are reported in File B, with the exception of Financing Accounts (or when all obligation and outlay monetary amounts are zero for the TAS). As noted in A33, allocation accounts should be reported by the Child Agency, not by the Parent agency, and the AllocationTransferAgencyIdentifier listed should match the Common Government-wide Accounting Classification (CGAC) of the submitting agency.",n,program_activity,warning,,b21_object_class_program_activity,"With certain exceptions referenced in the Practices and Procedures, if a TAS and DEFC combination is certified in GTAS for SF 133 purposes, it should also be reported for File B.","completeness"
  B22,"GrossOutlayAmountByProgramObjectClass_CPE = value for GTAS SF 133 line #3020 for the same reporting period for the TAS and DEFC combination.",n,program_activity,warning,,b22_object_class_program_activity,"(See SQL file)","accuracy"
  B24,"DEFC values must be A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V (plus future codes as determined by OMB). DEFC cannot be blank",n,program_activity,fatal,,b24_object_class_program_activity,"A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, or 9","accuracy"
  B24,"DEFC values must be A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V (plus future codes as determined by OMB). DEFC cannot be blank",n,award_financial,fatal,,b24_award_financial,"A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, or 9","accuracy"
  C3.1,"ObligationsUndeliveredOrdersUnpaidTotalFYB = USSGL4801 for the same TAS/DEFC combination. This applies to the award level.",n,award_financial,warning,,c3_award_financial_1,"Within File C, ObligationsUndeliveredOrdersUnpaidTotal_FYB should equal USSGL4801_FYB for the same TAS/DEFC combination. However, the Broker cannot determine which element is incorrect in this rule. Refer to your source information to distinguish which elements may be incorrect.","accuracy"
  C3.2,"ObligationsUndeliveredOrdersUnpaidTotalCPE = USSGL(4801 + 4831+ 4881) for the same TAS/DEFC combination. This applies to the award level.",n,award_financial,warning,,c3_award_financial_2,"Within File C, ObligationsUndeliveredOrdersUnpaidTotal_CPE should equal USSGL4801_CPE + 4831_CPE + 4881_CPE for the same TAS/DEFC combination. However, the Broker cannot determine which element is incorrect in this rule. Refer to your source information to distinguish which elements may be incorrect.","accuracy"
  C4.1,"ObligationsDeliveredOrdersUnpaidTotalFYB = USSGL4901 for the same TAS/DEFC combination. This applies to the award level.",n,award_financial,warning,,c4_award_financial_1,"Within File C, ObligationsDeliveredOrdersUnpaidTotal_FYB should equal USSGL4901_FYB for the same TAS/DEFC combination. However, the Broker cannot determine which element is incorrect in this rule. Refer to your source information to distinguish which elements may be incorrect.","accuracy"
  C4.2,"ObligationsDeliveredOrdersUnpaidTotalCPE = USSGL(4901 + 4931+ 4981) for the same TAS/DEFC combination. This applies to the award level.",n,award_financial,warning,,c4_award_financial_2,"Within File C, ObligationsDeliveredOrdersUnpaidTotal_CPE should equal USSGL4901_CPE + 4931_CPE + 4981_CPE for the same TAS/DEFC combination. However, the Broker cannot determine which element is incorrect in this rule. Refer to your source information to distinguish which elements may be incorrect.","accuracy"
  C5.1,"GrossOutlayAmountByAwardFYB = GrossOutlaysUndeliveredOrdersPrepaidTotalFYB + GrossOutlaysDeliveredOrdersPaidTotalFYB for the same TAS/DEFC combination",n,award_financial,warning,,c5_award_financial_1,"Within File C, GrossOutlayAmountByProgramObjectClass_FYB (File C) should equal GrossOutlaysUndeliveredOrdersPrepaidTotal_FYB (File C) + GrossOutlaysDeliveredOrdersPaidTotal_FYB (File C) for the same TAS/DEFC combination. This rule is unable to determine which element is incorrect, just that they differ.","accuracy"
  C5.2,"GrossOutlayAmountByAwardCPE = GrossOutlaysUndeliveredOrdersPrepaidTotalCPE - GrossOutlaysUndeliveredOrdersPrepaidTotalFYB + GrossOutlaysDeliveredOrdersPaidTotalCPE - GrossOutlaysDeliveredOrdersPaidTotalFYB for the same TAS/DEFC combination. Note: This rule does not apply if GrossOutlayAmountByAward_CPE is the only non-zero value provided on a non-TOA line on File C.",n,award_financial,warning,,c5_award_financial_2,"Within File C, GrossOutlayAmountByProgramObjectClass_CPE (File C) should reflect year-to-date activity as of the end of the reporting period, by subtracting GrossOutlaysUndeliveredOrdersPrepaidTotal_FYB and GrossOutlaysDeliveredOrdersPaidTotal_FYB from their CPE counterparts for the same TAS/DEFC combination. This rule is unable to determine which element is incorrect, just that they differ.","accuracy"
  C6.1,"GrossOutlaysUndeliveredOrdersPrepaidTotalFYB = USSGL4802 for the same TAS/DEFC combination. This applies to the award level.",n,award_financial,warning,,c6_award_financial_1,"Within File C, GrossOutlaysUndeliveredOrdersPrepaidTotal_FYB should equal USSGL 4802_FYB for the same TAS/DEFC combination. However, the Broker cannot determine which element is incorrect in this rule. Refer to your source information to distinguish which elements may be incorrect.","accuracy"
  C6.2,"GrossOutlaysUndeliveredOrdersPrepaidTotalCPE = USSGL(4802 + 4832+ 4882) for the same TAS/DEFC combination. This applies to the award level.",n,award_financial,warning,,c6_award_financial_2,"Within File C, GrossOutlaysUndeliveredOrdersPrepaidTotal_CPE should equal USSGL 4802_CPE + 4832_CPE + 4882_CPE for the same TAS/DEFC combination. However, the Broker cannot determine which element is incorrect in this rule. Refer to your source information to distinguish which elements may be incorrect.","accuracy"
  C7.1,"GrossOutlaysDeliveredOrdersPaidTotalFYB = USSGL4908 for the same TAS/DEFC combination. This applies to the award level.",n,award_financial,warning,,c7_award_financial_1,"Within File C, GrossOutlaysDeliveredOrdersPaidTotal_FYB should equal USSGL 4908_FYB for the same TAS/DEFC combination. However, the Broker cannot determine which element is incorrect in this rule. Refer to your source information to distinguish which elements may be incorrect.","accuracy"
  
negative.code: C14.1,"Must provide either FAIN, URI, or PIID",n,award_financial,fatal,,c14_award_financial_1,"Each row provided in file C must contain either a FAIN, URI, or PIID. Rows must not contain a PIID and FAIN, or a PIID and URI.","completeness"
  C14.2,"Row must not contain both PIID and FAIN, both a PIID and URI or both a FAIN and URI.",n,award_financial,fatal,,c14_award_financial_2,"Each row provided in file C must contain either a FAIN, URI, or PIID. Rows must not contain a PIID and FAIN, or a PIID and URI.","existence"
  C17,"TransactionObligatedAmount and USSGL related balances and subtotals cannot be provided on the same row. Please note that this rule will apply for any non-null (non-blank) value provided, including zero (0).",n,award_financial,fatal,,c17_award_financial,"The value for TransactionObligatedAmount cannot be populated on this row since it contains values for USSGL related elements or subtotals.","existence"
  C18,"DeobligationsRecoveriesRefundsOfPriorYearByAward_CPE in File C = USSGL(4871+ 4872 + 4971 + 4972) in File C for the same reporting period. This applies to the award level. Please note that this rule will only apply when all 4 USSGL accounts have a non-null (non-blank) value provided (with zero (0) being considered non-blank).",n,award_financial,warning,,c18_award_financial,"Within File C, DeobligationsRecoveriesRefundsOfPriorYearByProgramObjectClass_CPE should equal the amounts provided in File C for USSGL(4871_CPE+ 4872_CPE + 4971_CPE + 4972_CPE). The Broker cannot distinguish which element is correct for this rule; the agency should review its source information.","accuracy"
  C20,"Each USSGL account balance or subtotal, when totaled by combination of TAS, object class code, and direct/reimbursable flag provided in File C, should be a subset of, or equal to, the same combinations in File B.",y,award_financial,warning,program_activity,c20_award_financial,"(See SQL file)","existence"
  C21,"Each USSGL account balance or subtotal, when totaled by combination of TAS/program activity name/program activity code provided in File C, should be a subset of, or equal to, the same combinations in File B.",y,award_financial,warning,program_activity,c21_award_financial,"(See SQL file)","existence"
  C23.1,"For each unique PIID in File C, the sum of each TransactionObligatedAmount should match (but with opposite signs) the sum of the FederalActionObligation reported in D1. This rule does not apply if the AllocationTransferAgencyIdentifier (ATA) field is populated and is different from the AgencyIdentifier (AID). Note that this only compares award identifiers when the TransactionObligatedAmount is not null.",y,award_financial,warning,award_procurement,c23_award_financial_1,"(See SQL file)","accuracy"
  C23.2,"For each unique combination of PIID/ParentAwardId in File C, the sum of each TransactionObligatedAmount should match (but with opposite signs) the sum of the FederalActionObligation reported in D1. This rule does not apply if the AllocationTransferAgencyIdentifier (ATA) field is populated and is different from the AgencyIdentifier (AID). Note that this only compares award identifiers when the TransactionObligatedAmount is not null.",y,award_financial,warning,award_procurement,c23_award_financial_2,"(See SQL file)","accuracy"
  C23.3,"For each unique FAIN in File C, the sum of each TransactionObligatedAmount should match (but with opposite signs) the sum of the FederalActionObligation or OriginalLoanSubsidyCost amounts reported in D2. This rule does not apply if the AllocationTransferAgencyIdentifier (ATA) field is populated and is different from the AgencyIdentifier (AID). Note that this only compares award identifiers when the TransactionObligatedAmount is not null.",y,award_financial,warning,award,c23_award_financial_3,"(See SQL file)","accuracy"
  C23.4,"For each unique URI in File C, the sum of each TransactionObligatedAmount should match (but with opposite signs) the sum of the FederalActionObligation or OriginalLoanSubsidyCost amounts reported in D2. This rule does not apply if the AllocationTransferAgencyIdentifier (ATA) field is populated and is different from the AgencyIdentifier (AID). Note that this only compares award identifiers when the TransactionObligatedAmount is not null.",y,award_financial,warning,award,c23_award_financial_4,"(See SQL file)","accuracy"
  C25,"Prior to FY22, if the DisasterEmergencyFundCode (DEFC) element has a valid COVID-19 related code and the row is a balance row, then GrossOutlayAmountByAward_CPE cannot be blank. Beginning in FY22, if the row is a non-TOA (balance) row, then GrossOutlayAmountByAward_CPE cannot be blank.",n,award_financial,fatal,,c25_award_financial,"GrossOutlayByAward_CPE is required for this valid DEFC and blank TOA.","existence"
  C26,"Each USSGL account balance or subtotal, when totaled by combination of TAS/DEFC provided in File C, should be a subset of, or equal to, the same combinations in File B.",y,award_financial,warning,program_activity,c26_award_financial,"(See SQL file)","existence"
  C27,"The File C GrossOutlayAmountByAward_CPE balance for a TAS, DEFC, program activity code + name, object class code, direct/reimbursable flag, and Award ID combination should continue to be reported in subsequent periods during the FY, once it has been submitted to DATA Act, unless the most recently reported outlay balance for this award breakdown was zero. This only applies to File C outlays, not TOA.",n,award_financial,warning,,c27_award_financial,"GrossOutlayByAward_CPE from previous period must exist this period","completeness"
  C28,"The combination of TAS/object class/program activity code+name/reimbursable flag/DEFC/Award ID in File C (award financial) must be unique for USSGL-related balances.",n,award_financial,fatal,,c28_award_financial,"The combination of TAS/object class/program activity code+name/reimbursable flag/DEFC/Award ID in File C must be unique.","existence"
  FABS1.1,"FAIN is required for non-aggregate and PII-redacted non-aggregate records (RecordType = 2 or 3).",n,fabs,fatal,,fabs1_1,"FAIN is required for this RecordType.","completeness"
  FABS1.2,"FAIN must not be used for aggregate records (RecordType = 1).",n,fabs,fatal,,fabs1_2,"FAIN must not be provided for this RecordType.","existence"
  FABS2.1,"The combination of FAIN, AwardModificationAmendmentNumber, URI, CFDA_Number, and AwardingSubTierAgencyCode must be unique within the submission file.",n,fabs,fatal,,fabs2_1,"The combination of FAIN, AwardModificationAmendmentNumber, URI, CFDA_Number, and AwardingSubTierAgencyCode must be unique for each row within the submission file.","existence"
  