A total should follow the rows, and nobody types it

A total you do not write

A total should follow the rows, and nobody types it.

app billing "Billing" {}

entity Invoice {
  customer: text
  total:    money USD
  status:   enum draft, paid
}

entity AccountTotal rollup over Invoice sum total by customer where status == "paid"

A total someone types, and edits by hand, is an ordinary field.