Can computed fields be added to a custom entity?
Yes, I found that entities can take computed fields.

A very easy way to achieve that, is by the 'data' module. It takes any extra database table. Can expose that table as an entity automatically. That entity can take normal fields, in addition to it's database table field. It does all the heavy lifting in place of entity API.