[Feature] Computed Entities in Reports #1415

Closed
opened 2026-02-28 19:43:04 -06:00 by GiteaMirror · 2 comments
Owner

Originally created by @CrazyKidJack on GitHub (Sep 14, 2024).

Verified feature request does not already exist?

  • I have searched and found no existing issue

💻

  • Would you like to implement this feature?

Pitch: what problem are you trying to solve?

When creating reports, I often want to see how much are these two things added up compared to these 2 things. If all of those things are of the same type like "categories" or "groups" no problem, I just select the categories or groups I want and boom.

But sometimes I want to add up 3 categories from separate groups, or compare a group to two categories... ooooooor compare transactions to these payees with transactions from these accounts.

Another thing it can enable is easier splitting of "account" objects into virtual accounts independent of categories (Because I could create a computed entity to automatically aggregate the balances of my virtual accounts and use that when I need to know the real account balance). I know, I know... for this point, someone is going to say "envelope budgeting doesn't care which account your money is in and envelopes/categories are like mini accounts anyways". My response: envelope budgeting doesn't care but people care, this feature wouldn't affect the budgeting features of Actual in any way, but it is a feature that would be useful to some people. If actual can achieve its envelope budgeting dreams and also have additional features that help some people, that's a bonus. Also, even if you don't like or wouldn't use it in this way, this feature is still useful (see the other examples above)

Describe your ideal solution to this problem

I would like to be able to create "computed entities" for use in reports. These would be values that are not directly represented by the raw data in Actual, but rather are represented by the output of some function that operates on the data.

These functions could be things like (this is not an exhaustive list):

  • add(value, value, ...)
  • subtract(value, value, ...)
  • multiply(value, value, ...)
  • divide(value, value) (could also be defined like divide(value, value, ...))
  • average(value, period, range)
  • median
  • standard deviation
  • variance

as well as combinations of these functions.

The arguments to these functions would be some sort of filtered raw data in Actual.
All together a computed entity could look like:

  • Special Balances = add(account balance where account matches something, account balance where account matches something else)
  • Average Controllable Spending = add( subtract(average(account balance where account is credit card, montly, date between 2024-01-01 and 2024-09-13), average(transaction amount where account is credit card AND category is not electricity, montly, date between 2024-01-01 and 2024-09-13) ), average(transaction amount where category is fun, montly, date between 2024-01-01 and 2024-09-13))

I would also want to be able to use computed entities as input values for other computed entities

Teaching and learning

The reporting docs could have a section on this with a list of available functions, examples of how they could be used/configured, and examples of how they can get displayed in reports.

Originally created by @CrazyKidJack on GitHub (Sep 14, 2024). ### Verified feature request does not already exist? - [X] I have searched and found no existing issue ### 💻 - [ ] Would you like to implement this feature? ### Pitch: what problem are you trying to solve? When creating reports, I often want to see how much are these two things added up compared to these 2 things. If all of those things are of the same type like "categories" or "groups" no problem, I just select the categories or groups I want and boom. But sometimes I want to add up 3 categories from separate groups, or compare a group to two categories... ooooooor compare transactions to these payees with transactions from these accounts. Another thing it can enable is easier splitting of "account" objects into virtual accounts independent of categories (Because I could create a computed entity to automatically aggregate the balances of my virtual accounts and use that when I need to know the real account balance). I know, I know... for this point, someone is going to say "envelope budgeting doesn't care which account your money is in and envelopes/categories are like mini accounts anyways". My response: envelope budgeting doesn't care but **_people_** care, this feature wouldn't affect the budgeting features of Actual in any way, but it is a feature that would be useful to some people. If actual can achieve its envelope budgeting dreams and also have additional features that help some people, that's a bonus. Also, even if you don't like or wouldn't use it in this way, this feature is still useful (see the other examples above) ### Describe your ideal solution to this problem I would like to be able to create "computed entities" for use in reports. These would be values that are not directly represented by the raw data in Actual, but rather are represented by the output of some function that operates on the data. These functions could be things like (this is not an exhaustive list): - `add(value, value, ...)` - `subtract(value, value, ...)` - `multiply(value, value, ...)` - `divide(value, value)` (could also be defined like `divide(value, value, ...)`) - `average(value, period, range)` - `median` - `standard deviation` - `variance` as well as combinations of these functions. The arguments to these functions would be some sort of filtered raw data in Actual. All together a computed entity could look like: - Special Balances = add(`account balance` where `account` matches `something`, `account balance` where `account` matches `something else`) - Average Controllable Spending = add( subtract(average(`account balance` where `account` is `credit card`, montly, `date` between `2024-01-01` and `2024-09-13`), average(`transaction amount` where `account` is `credit card` AND `category` is not `electricity`, montly, `date` between `2024-01-01` and `2024-09-13`) ), average(`transaction amount` where `category` is `fun`, montly, `date` between `2024-01-01` and `2024-09-13`)) I would also want to be able to use computed entities as input values for other computed entities ### Teaching and learning The reporting docs could have a section on this with a list of available functions, examples of how they could be used/configured, and examples of how they can get displayed in reports.
GiteaMirror added the needs votesfeature labels 2026-02-28 19:43:04 -06:00
Author
Owner

@github-actions[bot] commented on GitHub (Sep 14, 2024):

Thanks for sharing your idea!

This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution).

The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+

Don’t forget to upvote the top comment with 👍!

@github-actions[bot] commented on GitHub (Sep 14, 2024): :sparkles: Thanks for sharing your idea! :sparkles: This repository uses lodash style issue management for enhancements. That means enhancement issues are automatically closed. This doesn’t mean we don’t accept feature requests, though! We will consider implementing ones that receive many upvotes, and we welcome contributions for any feature requests marked as needing votes (just post a comment first so we can help you make a successful contribution). The enhancement backlog can be found here: https://github.com/actualbudget/actual/issues?q=label%3A%22needs+votes%22+sort%3Areactions-%2B1-desc+ Don’t forget to upvote the top comment with 👍! <!-- feature-auto-close-comment -->
Author
Owner

@CrazyKidJack commented on GitHub (Sep 14, 2024):

I did not select the checkbox for "Would you like to implement this feature?".
That said, I have significant development experience and would be willing to do so. But I would need/want significant assistance getting started navigating the AB code. Once I get going, I code quickly and (I like to think) with high quality... but I always have a hard time getting into other people's code, figuring out how it works, and figuring out the best way to set up the dev environment for that project. It's really a momentum problem. If someone could help guide me to a point where I understand the code base, then I would be more than happy to hop in on this and also other features.

@CrazyKidJack commented on GitHub (Sep 14, 2024): I did not select the checkbox for "Would you like to implement this feature?". That said, I have significant development experience and would be willing to do so. But I would need/want significant assistance getting started navigating the AB code. Once I get going, I code quickly and (I like to think) with high quality... but I always have a hard time getting into other people's code, figuring out how it works, and figuring out the best way to set up the dev environment for that project. It's really a momentum problem. If someone could help guide me to a point where I understand the code base, then I would be more than happy to hop in on this and also other features.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#1415