anchor.diff:  B6.2,"GrossOutlaysUndeliveredOrdersPrepaidTotal (CPE) = USSGL(4802 + 4832 + 4882) for the same TAS/DEFC combination. This applies to the program activity name and program activity code at the program activity level and object class code and direct/reimbursable flag at the object class level.",n,program_activity,warning,,b6_object_class_program_activity_2,"Within File B, 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"
   B7.1,"GrossOutlaysDeliveredOrdersPaidTotal (FYB)= USSGL 4908 for the same TAS/DEFC combination. This applies to the program activity name and program activity code at the program activity level and object class code and direct/reimbursable flag at the object class level.",n,program_activity,warning,,b7_object_class_program_activity_1,"Within File B, 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"
   B7.2,"GrossOutlaysDeliveredOrdersPaidTotal (CPE)= USSGL(4902 + 4908 + 4982) for the same TAS/DEFC combination. This applies to the program activity name and program activity code at the program activity level and object class code and direct/reimbursable flag at the object class level.",n,program_activity,warning,,b7_object_class_program_activity_2,"Within File B, GrossOutlaysDeliveredOrdersPaidTotal_CPE should equal USSGL 4902_CPE + 4908_CPE + 4982_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"
  -B9,"Must be a valid program activity name/program activity code combination for the corresponding funding TAS/TAFS, as defined in the OMB Program Activity MAX Collect Exercise. However, if every balance on this row is $0 there are no obligations or outlays on the TAS, a program activity name of ""Unknown/Other"" combined with a program activity code of 0000 should be used. Note: A program activity code of ""0000"" or a program activity name of ""Unknown/Other"" should not be provided for File C.",n,program_activity,warning,,b9_object_class_program_activity,"A valid program activity code","existence"
  -B9,"Must be a valid program activity name/program activity code combination for the corresponding funding TAS/TAFS, as defined in the OMB Program Activity MAX Collect Exercise. However, if every balance on this row is $0 there are no obligations or outlays on the TAS, a program activity name of ""Unknown/Other"" combined with a program activity code of 0000 should be used. Note: A program activity code of ""0000"" or a program activity name of ""Unknown/Other"" should not be provided for File C.",n,award_financial,warning,,b9_award_financial,"A valid program activity code","existence"
  +B9,"Should be a valid program activity name/program activity code combination for the corresponding funding TAS/TAFS, as defined in the OMB Program Activity MAX Collect Exercise. However, if every balance on this row is $0, a program activity name of ""Unknown/Other"" combined with a program activity code of 0000 should be used. Note: A program activity code of ""0000"" or a program activity name of ""Unknown/Other"" should not be provided for File C.",n,program_activity,warning,,b9_object_class_program_activity,"A valid program activity code","existence"
  +B9,"Should be a valid program activity name/program activity code combination for the corresponding funding TAS/TAFS, as defined in the OMB Program Activity MAX Collect Exercise. However, if every balance on this row is $0, a program activity name of ""Unknown/Other"" combined with a program activity code of 0000 should be used. Note: A program activity code of ""0000"" or a program activity name of ""Unknown/Other"" should not be provided for File C.",n,award_financial,warning,,b9_award_financial,"A valid program activity code","existence"
   B11.1,"Must be a valid 3-digit object class as defined in OMB Circular A-11 Section 83.6, or a 4-digit code which includes a 1-digit suffix that is typically zero. Do not include decimal points when reporting object classes (e.g., ""25.2"" would be reported as 252 or 2520). For amounts that cannot yet be allocated to a valid object class, input 000, although note that this will prompt a warning unless all obligation and outlay balances on this row are $0. A fatal error will be given if Object Class is not provided.",n,award_financial,fatal,,b11_award_financial_1,"A valid object class code","existence"
   B11.2,"Must be a valid 3-digit object class as defined in OMB Circular A-11 Section 83.6, or a 4-digit code which includes a 1-digit suffix that is typically zero. Do not include decimal points when reporting object classes (e.g., ""25.2"" would be reported as 252 or 2520). For amounts that cannot yet be allocated to a valid object class, input 000, although note that this will prompt a warning unless all obligation and outlay balances on this row are $0. A fatal error will be given if Object Class is not provided.",n,award_financial,warning,,b11_award_financial_2,"A valid object class code","existence"
   B11.3,"Must be a valid 3-digit object class as defined in OMB Circular A-11 Section 83.6, or a 4-digit code which includes a 1-digit suffix that is typically zero. Do not include decimal points when reporting object classes (e.g., ""25.2"" would be reported as 252 or 2520). For amounts that cannot yet be allocated to a valid object class, input 000, although note that this will prompt a warning unless all obligation and outlay balances on this row are $0. A fatal error will be given if Object Class is not provided.",n,program_activity,fatal,,b11_object_class_program_activity_1,"A valid object class code","existence"
  
positive.code: A15,"UnobligatedBalance_CPE= CPE value for GTAS SF-133 line #2490",n,appropriations,fatal,,a15_appropriations,"(See SQL file)","accuracy"
  A16.1,"All the elements that have FYB in file A are expected in the first submission for a fiscal year",n,appropriations,warning,,a16_appropriations,"If the reporting period is Quarter 1, a non-null amount should be submitted for the following elements: BudgetAuthorityUnobligatedBalanceBroughtForward_FYB","completeness"
  A16.2,"All the elements that have FYB in file B are expected in the first submission for a fiscal year",n,program_activity,warning,,a16_object_class_program_activity,"If the reporting period is Quarter 1, a non-null amount should be submitted for the following elements: BudgetAuthorityUnobligatedBalanceBroughtForward_FYB, ObligationsUndeliveredOrdersUnpaidTotal_FYB, USSGL480100_UndeliveredOrdersObligationsUnpaid_FYB, ObligationsDeliveredOrdersUnpaidTotal_FYB, USSGL490100_DeliveredOrdersObligationsUnpaid_FYB, GrossOutlayAmountByProgramObjectClass_FYB, GrossOutlaysUndeliveredOrdersPrepaidTotal_FYB, USSGL480200_UndeliveredOrdersObligationsPrepaidAdvanced_FYB, GrossOutlaysDeliveredOrdersPaidTotal_FYB, USSGL490800_AuthorityOutlayedNotYetDisbursed_FYB.","completeness"
  A18,"The GrossOutlayAmountByTAS_CPE amount in the appropriation file (A) does not equal the sum of the corresponding GrossOutlayAmountByProgramObjectClass_CPE values in the award financial file (B). {This value is the sum of all Gross Outlay Amounts reported in file B, to indicate year-to-date activity by TAS/Subaccount.}",y,appropriations,warning,program_activity,a18_cross_file,"(See SQL file)","accuracy"
  A19,"The ObligationsIncurredTotalByTAS_CPE amount in the appropriation file (A) does not equal the negative sum of the corresponding ObligationsIncurredByProgramObjectClass_CPE values in the award financial file (B).",y,appropriations,warning,program_activity,a19_cross_file,"(See SQL file)","accuracy"
  A22,"ObligationsIncurredTotalByTAS_CPE= CPE value for GTAS SF-133 line #2190",n,appropriations,fatal,,a22_appropriations,"(See SQL file)","accuracy"
  A23,"StatusOfBudgetaryResourcesTotal_CPE= CPE value for GTAS SF-133 line #2500",n,appropriations,fatal,,a23_appropriations,"(See SQL file)","accuracy"
  A24,"StatusOfBudgetaryResourcesTotal_CPE = TotalBudgetaryResources_CPE",n,appropriations,fatal,,a24_appropriations,"StatusOfBudgetaryResourcesTotal_CPE must equal TotalBudgetaryResources_CPE. The Broker cannot distinguish which side of the equation is correct for this rule. Refer to related rule errors and warnings in this report (rules A6, A23) to distinguish which elements may be incorrect.","accuracy"
  A29,"DeobligationsRecoveriesRefundsByTAS_CPE = CPE aggregate value for GTAS SF-133 line 1021+1033",n,appropriations,fatal,,a29_appropriations,"(See SQL file)","accuracy"
  A30.1,"All TAS values in File A (appropriations) should exist in File B (object class program activity)",y,appropriations,fatal,program_activity,a30_appropriations,"(See SQL file)","completeness"
  A30.2,"All TAS values in File B (object class program activity) should exist in File A (appropriations)",y,program_activity,fatal,appropriations,a30_object_class_program_activity,"(See SQL file)","completeness"
  A32,"TAS values in File A (appropriations) should be unique",n,appropriations,fatal,,a32_appropriations,"There must be only one line reported per TAS in File A.","existence"
  A33.1,"Each TAS reported to GTAS for SF-133 should be reported in File A, with the exception of Financing Accounts, or when all monetary amounts are zero for the TAS.",n,appropriations,warning,,a33_appropriations_1,"With certain exceptions referenced in the Practices and Procedures, if a TAS is certified in GTAS for SF 133 purposes, it should also be reported for File A.","completeness"
  A33.2,"Each TAS reported in File A should be reported in GTAS for SF-133, with the exception of Financing Accounts, or when all monetary amounts are zero for the TAS.",n,appropriations,warning,,a33_appropriations_2,"With certain exceptions referenced in the Practices and Procedures, if a TAS is certified in GTAS for SF 133 purposes, it should also be reported for File A.","completeness"
  A33.3,"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,appropriations,warning,,a33_appropriations_3,"(See SQL file)","completeness"
  A34,"BudgetAuthorityUnobligatedBalanceBroughtForward_FYB= value for GTAS SF 133 line #2490 from the end of the prior fiscal year.",n,appropriations,fatal,,a34_appropriations,"(See SQL file)","accuracy"
  A35,"DeobligationsRecoveriesRefundsByTAS_CPE in File A should equal USSGL (4871_CPE+ 4971_CPE+ 4872_CPE+ 4972_CPE) for the TAS in File B.",y,appropriations,warning,program_activity,a35_cross_file,"(See SQL file)","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"
  