id = "arap-hand-control-posting-refused" title = "A hand line on receivables is refused; one an earlier version wrote still reads right" rule = "A line on a receivables or payables control account MUST carry its document, so a hand entry MUST be refused; an entry an earlier version wrote is replayed as it stands." status = "CHOICE" sources = [ "plan/served.md 8.3.1 A-6 (the owner: hand entries to 1200 and 2000 are refused)", "plan/served.md D-45", "ASC 310-10 (receivables)", "ASC 405-20-40-1 (a liability is removed only when paid or released)", ] tags = ["accrual", "book", "us", "receivables", "legacy"] [setup] currency = "USD" fiscal_year_start = "01-01" basis = "accrual" rounding = "half-even" [[setup.accounts]] code = "1000" name = "Checking" type = "asset" [[setup.accounts]] code = "1200" name = "Accounts Receivable" type = "asset" [[setup.accounts]] code = "4000" name = "Revenue" type = "revenue" # The invoice makes 1200 a control account: its balance is now its # documents'. The work was billed and the income counted. [[events]] date = "2026-01-10" description = "Survey work" invoice = { customer = "Ridgeway Co", amount = "100.00" } # A line an earlier version wrote by hand on 1200: this version's commands # refuse one, but books that hold it must still read right, so it is # posted as replay posts it. [[events]] date = "2026-01-15" description = "Receivable entered by hand" older = true lines = [ { account = "1200", side = "debit", amount = "50.00" }, { account = "4000", side = "credit", amount = "50.00" }, ] # The same line written today is refused: no document carries it. [[events]] date = "2026-01-20" description = "Another hand line" refused = "untagged_control_line" lines = [ { account = "1200", side = "debit", amount = "25.00" }, { account = "4000", side = "credit", amount = "25.00" }, ] [[expect]] query = "balances" as_of = "2026-12-31" [expect.values] "1000" = "0.00" "1200" = "150.00" "4000" = "150.00" [[expect]] query = "trial_balance" as_of = "2026-12-31" [expect.values] "1000" = "0.00" "1200" = "150.00" "4000" = "-150.00"