[GH-ISSUE #5949] [Feedback] Formula Card and Formula rules #51672

Open
opened 2026-04-30 18:51:00 -05:00 by GiteaMirror · 70 comments
Owner

Originally created by @lelemm on GitHub (Oct 17, 2025).
Original GitHub issue: https://github.com/actualbudget/actual/issues/5949

Added excel-like formulas to a new card and excel formulas to rules:

  • Enable the new feature flag:
    image

Formula card:

  • On reports, a new dashboard type will show:
    image

  • Open the new card to show the editor:
    image

    • Query Definitions is where you are going to define the queries to fetch data. You will use it later in the formula

    • Formula uses excel functions (in english)

      • Press ctrl+space for suggestions:
        image
    • You can use dynamic font size (like the summary card), o set a specific font size:
      image

    • You can create conditional expression to color the number
      image

This will paint the number as green for my example:

image

Formula Rules

  • You will see a new icon for fields that support formula (numeric and text fields. ID fields doesn't work)
    image

  • Clicking on it will enable the formula editor:
    image

  • The suggestion popover shows some variables related to this context
    image

  • Create the rule using the formulas and test it using the Apply actions to a single record:
    image

  • After saving it, you will see it in the rules:
    image

Originally created by @lelemm on GitHub (Oct 17, 2025). Original GitHub issue: https://github.com/actualbudget/actual/issues/5949 Added excel-like formulas to a new card and excel formulas to rules: - Enable the new feature flag: <img width="548" height="252" alt="image" src="https://github.com/user-attachments/assets/fd23ea03-795a-4ae8-aea8-c5d9786a3218" /> # Formula card: - On reports, a new dashboard type will show: <img width="232" height="347" alt="image" src="https://github.com/user-attachments/assets/f066026e-526a-4576-983e-5302a726059c" /> - Open the new card to show the editor: <img width="1428" height="874" alt="image" src="https://github.com/user-attachments/assets/a697d4fc-af18-40cd-850a-b4522b0822a4" /> - Query Definitions is where you are going to define the queries to fetch data. You will use it later in the formula - Formula uses excel functions (in english) - Press ctrl+space for suggestions: <img width="606" height="170" alt="image" src="https://github.com/user-attachments/assets/ab42afe4-21c0-4fff-a5c6-a114c9cc2178" /> - You can use dynamic font size (like the summary card), o set a specific font size: <img width="198" height="143" alt="image" src="https://github.com/user-attachments/assets/4b7a97a7-f511-4faf-b99e-7e1b232e02ea" /> - You can create conditional expression to color the number <img width="1060" height="95" alt="image" src="https://github.com/user-attachments/assets/fff52c04-2b10-4b64-9ad2-429284b2e018" /> This will paint the number as green for my example: <img width="611" height="177" alt="image" src="https://github.com/user-attachments/assets/ebbb14aa-d5ef-488b-aaeb-5394d0ebcd19" /> # Formula Rules - You will see a new icon for fields that support formula (numeric and text fields. ID fields doesn't work) <img width="888" height="148" alt="image" src="https://github.com/user-attachments/assets/d5313e6e-50c6-4805-9b3d-667bc1505d59" /> - Clicking on it will enable the formula editor: <img width="872" height="103" alt="image" src="https://github.com/user-attachments/assets/23bc0207-7ba6-4a43-81e6-f2397eacb0aa" /> - The suggestion popover shows some variables related to this context <img width="892" height="268" alt="image" src="https://github.com/user-attachments/assets/88b3e83b-9d17-4c19-a330-573092443950" /> - Create the rule using the formulas and test it using the Apply actions to a single record: <img width="885" height="124" alt="image" src="https://github.com/user-attachments/assets/67695220-6ec7-4f2b-988d-a1a60596f7e9" /> - After saving it, you will see it in the rules: <img width="490" height="63" alt="image" src="https://github.com/user-attachments/assets/b8b34f5a-30b3-406c-bdd9-259e1c2d72e9" />
GiteaMirror added the feedbackexperimental feature labels 2026-04-30 18:51:01 -05:00
Author
Owner

@tomasgriffin commented on GitHub (Oct 22, 2025):

Will definitely be playing around with this 👏 If the goal is for it to replace Rule Action Templates then it should probably have the same Transaction variables/fields available. Specifically, balance, to name one (which was only recently added)

<!-- gh-comment-id:3431565133 --> @tomasgriffin commented on GitHub (Oct 22, 2025): Will definitely be playing around with this 👏 If the goal is for it to replace Rule Action Templates then it should probably have the same [Transaction variables/fields](https://actualbudget.org/docs/experimental/rule-templating/#variables) available. Specifically, `balance`, to name one (which was only recently added)
Author
Owner

@lelemm commented on GitHub (Oct 22, 2025):

Will definitely be playing around with this 👏 If the goal is for it to replace Rule Action Templates then it should probably have the same Transaction variables/fields available. Specifically, balance, to name one (which was only recently added)

Thanks. I will take a look into the variables. Good call

The idea is to have a single "language" for customizable content (formula card, rule actions, may be budget template?)
we are experimenting with the formula idea.

Any other feedback, feel free to leave here.
For example, I'm not happy with the suggestions popover, I will see what I can do about it in the future

<!-- gh-comment-id:3431952483 --> @lelemm commented on GitHub (Oct 22, 2025): > Will definitely be playing around with this 👏 If the goal is for it to replace Rule Action Templates then it should probably have the same [Transaction variables/fields](https://actualbudget.org/docs/experimental/rule-templating/#variables) available. Specifically, `balance`, to name one (which was only recently added) Thanks. I will take a look into the variables. Good call The idea is to have a single "language" for customizable content (formula card, rule actions, may be budget template?) we are experimenting with the formula idea. Any other feedback, feel free to leave here. For example, I'm not happy with the suggestions popover, I will see what I can do about it in the future
Author
Owner

@youngcw commented on GitHub (Oct 22, 2025):

The dates in the query editor don't function the same as the dates in other reports. The end month is exclusive where all the other reports use an inclusive end month.

<!-- gh-comment-id:3433282234 --> @youngcw commented on GitHub (Oct 22, 2025): The dates in the query editor don't function the same as the dates in other reports. The end month is exclusive where all the other reports use an inclusive end month.
Author
Owner

@youngcw commented on GitHub (Oct 22, 2025):

If a filter in the query is long, it will exapand to be outside of the query box.

<!-- gh-comment-id:3433284366 --> @youngcw commented on GitHub (Oct 22, 2025): If a filter in the query is long, it will exapand to be outside of the query box.
Author
Owner

@youngcw commented on GitHub (Oct 22, 2025):

If I use a color formula of =theme_reportsBlue the number on the edit page changes to blue, but not the dashboard number.

If I use a color of theme.reportsBlue then the number on the edit page doesn't change, but the dashboard one does.

The suggestion when editing is to use theme_reportsBlue.

<!-- gh-comment-id:3433302583 --> @youngcw commented on GitHub (Oct 22, 2025): If I use a color formula of `=theme_reportsBlue` the number on the edit page changes to blue, but not the dashboard number. If I use a color of `theme.reportsBlue` then the number on the edit page doesn't change, but the dashboard one does. The suggestion when editing is to use theme_reportsBlue.
Author
Owner

@lelemm commented on GitHub (Oct 22, 2025):

The dates in the query editor don't function the same as the dates in other reports. The end month is exclusive where all the other reports use an inclusive end month.

Image Image

may be that's in a specific scenario?

<!-- gh-comment-id:3433360165 --> @lelemm commented on GitHub (Oct 22, 2025): > The dates in the query editor don't function the same as the dates in other reports. The end month is exclusive where all the other reports use an inclusive end month. <img width="1124" height="331" alt="Image" src="https://github.com/user-attachments/assets/292b38ef-6a0e-478b-84f8-af878c883b52" /> <img width="411" height="148" alt="Image" src="https://github.com/user-attachments/assets/26fa0d58-208b-488f-9c1d-a90c793dd635" /> may be that's in a specific scenario?
Author
Owner

@youngcw commented on GitHub (Oct 22, 2025):

Filters

Image Image

Formula editor
Image

Image

From summary card

Image
<!-- gh-comment-id:3433432448 --> @youngcw commented on GitHub (Oct 22, 2025): Filters <img width="929" height="119" alt="Image" src="https://github.com/user-attachments/assets/36fe8584-3218-4d76-aba4-b237c883f905" /> <img width="732" height="137" alt="Image" src="https://github.com/user-attachments/assets/12e2a4fb-517e-48f9-a724-bd8ca502a195" /> Formula editor <img width="475" height="323" alt="Image" src="https://github.com/user-attachments/assets/b6eb2f20-8424-4c0a-829b-a81bfa32062c" /> <img width="463" height="121" alt="Image" src="https://github.com/user-attachments/assets/a342c515-5adc-4625-8e4f-5c2ae602212e" /> From summary card <img width="707" height="235" alt="Image" src="https://github.com/user-attachments/assets/03e88fea-88cd-4e64-8326-84bf0e3e61b3" />
Author
Owner

@youngcw commented on GitHub (Oct 22, 2025):

The dates in the query editor don't function the same as the dates in other reports. The end month is exclusive where all the other reports use an inclusive end month.

Image Image
may be that's in a specific scenario?

I think thats because you have the same start and end date. So the start month is including the month and the end date is excluding that same month, but it was already included.

<!-- gh-comment-id:3433449791 --> @youngcw commented on GitHub (Oct 22, 2025): > > The dates in the query editor don't function the same as the dates in other reports. The end month is exclusive where all the other reports use an inclusive end month. > > <img alt="Image" width="1124" height="331" src="https://private-user-images.githubusercontent.com/15043428/504314915-292b38ef-6a0e-478b-84f8-af878c883b52.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjExNTQxNzcsIm5iZiI6MTc2MTE1Mzg3NywicGF0aCI6Ii8xNTA0MzQyOC81MDQzMTQ5MTUtMjkyYjM4ZWYtNmEwZS00NzhiLTg0ZjgtYWY4NzhjODgzYjUyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEwMjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMDIyVDE3MjQzN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgyMmNhOTg5NzQ4ZjQ1ZTkyZjgxMzZhMDFkNGE1NmRhZjM0MGZkMThjNGY1ZDFkMmIwY2YwNTllZmFmMzhjNzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.1behKqxisnr7AzJG5HPlD5KCYKfNVPgaEuingUv8Nc4"> <img alt="Image" width="411" height="148" src="https://private-user-images.githubusercontent.com/15043428/504315077-26fa0d58-208b-488f-9c1d-a90c793dd635.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjExNTQxNzcsIm5iZiI6MTc2MTE1Mzg3NywicGF0aCI6Ii8xNTA0MzQyOC81MDQzMTUwNzctMjZmYTBkNTgtMjA4Yi00ODhmLTljMWQtYTkwYzc5M2RkNjM1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTEwMjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMDIyVDE3MjQzN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNhMGJkZjM3ODRhODg2MjljNzY1ZjMyYjM2OGYwY2EyODIwOGJiZDczM2UzMDlmODA1MWM1OWI2ZWI4YWE2YTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.3qD9GUSZmhKVCUrKlF5PsGN6jynog2ymBHi4ZMt7-XI"> > may be that's in a specific scenario? I think thats because you have the same start and end date. So the start month is including the month and the end date is excluding that same month, but it was already included.
Author
Owner

@matt-fidd commented on GitHub (Oct 28, 2025):

I'm hitting a rerender loop where the reports page is eating up 100% CPU and sending my Macbook Air to 100C 😅

    {
      "type": "formula-card",
      "width": 3,
      "height": 2,
      "x": 0,
      "y": 35,
      "meta": {
        "fontSize": 114,
        "formula": "=CONCATENATE((QUERY(\"LISA Contributions\")/4000)*100, \"%\")",
        "queries": {
          "LISA Contributions": {
            "conditions": [
              {
                "field": "account",
                "op": "contains",
                "value": "LISA",
                "type": "id"
              },
              {
                "field": "transfer",
                "op": "is",
                "value": true,
                "type": "boolean"
              },
              {
                "field": "amount",
                "op": "gte",
                "value": 0,
                "type": "number"
              }
            ],
            "conditionsOp": "and",
            "timeFrame": {
              "start": "2025-04-01",
              "end": "2025-10-01",
              "mode": "sliding-window"
            }
          }
        },
        "fontSizeMode": "dynamic",
        "staticFontSize": 72,
        "colorFormula": "=IF(QUERY(\"LISA Contributions\")/4000 < 1, \"orange\", IF(QUERY(\"LISA Contributions\")/4000 > 1, \"#FF9B9B\", \"#65D6AD\"))",
        "name": "LISA Contributions"
      }
    }
<!-- gh-comment-id:3453952317 --> @matt-fidd commented on GitHub (Oct 28, 2025): I'm hitting a rerender loop where the reports page is eating up 100% CPU and sending my Macbook Air to 100C 😅 ```json { "type": "formula-card", "width": 3, "height": 2, "x": 0, "y": 35, "meta": { "fontSize": 114, "formula": "=CONCATENATE((QUERY(\"LISA Contributions\")/4000)*100, \"%\")", "queries": { "LISA Contributions": { "conditions": [ { "field": "account", "op": "contains", "value": "LISA", "type": "id" }, { "field": "transfer", "op": "is", "value": true, "type": "boolean" }, { "field": "amount", "op": "gte", "value": 0, "type": "number" } ], "conditionsOp": "and", "timeFrame": { "start": "2025-04-01", "end": "2025-10-01", "mode": "sliding-window" } } }, "fontSizeMode": "dynamic", "staticFontSize": 72, "colorFormula": "=IF(QUERY(\"LISA Contributions\")/4000 < 1, \"orange\", IF(QUERY(\"LISA Contributions\")/4000 > 1, \"#FF9B9B\", \"#65D6AD\"))", "name": "LISA Contributions" } } ```
Author
Owner

@MatissJanis commented on GitHub (Nov 1, 2025):

This feature has a lot of potential! Thanks for looking into building it out.

Small feature request: can we get balance variable (the current balance of the account)? If we had this - we could create a schedule that automatically calculates mortgage interest (or credit card debt) and then auto-posts an interest transaction.

=balance * 0.05

(where 0.05 = 5% interest)

Edit: Ok, I see this is already in progress. Great! :)

<!-- gh-comment-id:3476845598 --> @MatissJanis commented on GitHub (Nov 1, 2025): This feature has a lot of potential! Thanks for looking into building it out. Small feature request: can we get `balance` variable (the current balance of the account)? If we had this - we could create a schedule that automatically calculates mortgage interest (or credit card debt) and then auto-posts an interest transaction. ``` =balance * 0.05 ``` (where 0.05 = 5% interest) Edit: Ok, I see this is already [in progress](https://github.com/actualbudget/actual/pull/5985). Great! :)
Author
Owner

@matt-fidd commented on GitHub (Nov 3, 2025):

I've been playing about with this a fair amount now, and I like it!

A couple of bugs I noticed:

  • The export/import query didn't appear to work when I had a long list of categories in there
  • The filters can expand outside of the query box if enough are added/they are long enough

And a couple of feature requests:

  • LET functionality as seen in Excel would be brilliant eg.
=LET(
  bal, QUERY("balance"),
  sp,  QUERY("spending"),
  months, 2 + DAY(TODAY())/DAY(EOMONTH(TODAY(),0)),
  avg, ABS(ROUND(sp/months, 2)),
  endur, ROUNDDOWN(ABS(bal/(sp/months))),
  "Balance: £"&bal&" | Average Spend: £"&avg&" | Endurance: "&endur&" months"
)
  • An auto-format button that puts a messy oneliner into a nicely prettified formula

  • Help modal with all available theme colours in

  • A bit nicher, but a way to get the current time window of a query would be good, to replace the pattern in my query above. eg. a live query spanning 2 months would return 1 at the start of the month, 1.1 on the 3rd day, and increases as the month goes on like the summary card calculates.

  • Not specifically related to this change, but these cards could benefit from being allowed to shrink another step vertically to kill off the dead space, eg.
    Image

  • New line characters available to make the text be able to span multiple lines

  • The ability to be able to pass only certain parts of the result to the custom colour formula

  • Regex functions to pull substrings out

  • Category balance function to give the current balance at the time =CATBAL("Emergency Fund")

<!-- gh-comment-id:3478809829 --> @matt-fidd commented on GitHub (Nov 3, 2025): I've been playing about with this a fair amount now, and I like it! A couple of bugs I noticed: - The export/import query didn't appear to work when I had a long list of categories in there - The filters can expand outside of the query box if enough are added/they are long enough And a couple of feature requests: - LET functionality as seen in Excel would be brilliant eg. ``` =LET( bal, QUERY("balance"), sp, QUERY("spending"), months, 2 + DAY(TODAY())/DAY(EOMONTH(TODAY(),0)), avg, ABS(ROUND(sp/months, 2)), endur, ROUNDDOWN(ABS(bal/(sp/months))), "Balance: £"&bal&" | Average Spend: £"&avg&" | Endurance: "&endur&" months" ) ``` - An auto-format button that puts a messy oneliner into a nicely prettified formula - Help modal with all available theme colours in - A bit nicher, but a way to get the current time window of a query would be good, to replace the pattern in my query above. eg. a live query spanning 2 months would return 1 at the start of the month, 1.1 on the 3rd day, and increases as the month goes on like the summary card calculates. - Not specifically related to this change, but these cards could benefit from being allowed to shrink another step vertically to kill off the dead space, eg. <img width="964" height="219" alt="Image" src="https://github.com/user-attachments/assets/cf52ee56-2323-4ea8-b43f-b838a4a313c5" /> - New line characters available to make the text be able to span multiple lines - The ability to be able to pass only certain parts of the result to the custom colour formula - Regex functions to pull substrings out - Category balance function to give the current balance at the time `=CATBAL("Emergency Fund")`
Author
Owner

@youngcw commented on GitHub (Nov 5, 2025):

Live date ranges in queries don't seem to be updating when the month changes.

<!-- gh-comment-id:3492841761 --> @youngcw commented on GitHub (Nov 5, 2025): Live date ranges in queries don't seem to be updating when the month changes.
Author
Owner

@sjones512 commented on GitHub (Nov 12, 2025):

Is it possible to add the formula feature to the Allocate Split Amount field?

It looks like it is available for the top level amount, or for other fields on the split.

Image

Would be really helpful to have the power of excel available when calculating split amounts.

<!-- gh-comment-id:3520203400 --> @sjones512 commented on GitHub (Nov 12, 2025): Is it possible to add the formula feature to the Allocate Split Amount field? It looks like it is available for the top level amount, or for other fields on the split. <img width="870" height="259" alt="Image" src="https://github.com/user-attachments/assets/19741d48-d0ec-4012-9fbc-307c8ddd9e91" /> Would be really helpful to have the power of excel available when calculating split amounts.
Author
Owner

@sexyskinnybitch commented on GitHub (Nov 12, 2025):

the formula helper is constrained to the text box, which means it doesn't show in the conditional color box:

Image

also, now that we can edit font sizes, can the minimum card size be reduced? there's quite a bit of wasted space.

Image
<!-- gh-comment-id:3522369235 --> @sexyskinnybitch commented on GitHub (Nov 12, 2025): the formula helper is constrained to the text box, which means it doesn't show in the conditional color box: <img width="416" height="89" alt="Image" src="https://github.com/user-attachments/assets/8787a101-b2e8-4ae4-b658-2f58f62a25b4" /> also, now that we can edit font sizes, can the minimum card size be reduced? there's quite a bit of wasted space. <img width="398" height="216" alt="Image" src="https://github.com/user-attachments/assets/87f22475-90e2-4f0c-b73e-cb3f85951f88" />
Author
Owner

@youngcw commented on GitHub (Nov 12, 2025):

If you press tab while editing a formula it inserts a tab at the start of the line even if you are in the middle of the formula.

Image

Compared to no tab

Image
<!-- gh-comment-id:3522714411 --> @youngcw commented on GitHub (Nov 12, 2025): If you press tab while editing a formula it inserts a tab at the start of the line even if you are in the middle of the formula. <img width="220" height="97" alt="Image" src="https://github.com/user-attachments/assets/32936570-e1bf-42d1-8f31-606c64fd8301" /> Compared to no tab <img width="219" height="66" alt="Image" src="https://github.com/user-attachments/assets/d31ee25a-a407-4e7e-a8df-87a4c28f007b" />
Author
Owner

@Juulz commented on GitHub (Nov 12, 2025):

Line Breaks? This is ugly! LOL
Unable to add CHAR(10 or 13) to CONCATENATE ?

Image
<!-- gh-comment-id:3523393254 --> @Juulz commented on GitHub (Nov 12, 2025): Line Breaks? This is ugly! LOL Unable to add CHAR(10 or 13) to CONCATENATE ? <img width="491" height="277" alt="Image" src="https://github.com/user-attachments/assets/5c3109ed-637e-4a43-a8ab-779f23b3598e" />
Author
Owner

@lelemm commented on GitHub (Nov 13, 2025):

Line Breaks? This is ugly! LOL Unable to add CHAR(10 or 13) to CONCATENATE ?

Image

Can you reformulate your feedback? I'm not sure if I understand what you are asking for / suggesting

<!-- gh-comment-id:3527686545 --> @lelemm commented on GitHub (Nov 13, 2025): > Line Breaks? This is ugly! LOL Unable to add CHAR(10 or 13) to CONCATENATE ? > > <img alt="Image" width="491" height="277" src="https://private-user-images.githubusercontent.com/29179457/513484387-5c3109ed-637e-4a43-a8ab-779f23b3598e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjMwMzg3MjcsIm5iZiI6MTc2MzAzODQyNywicGF0aCI6Ii8yOTE3OTQ1Ny81MTM0ODQzODctNWMzMTA5ZWQtNjM3ZS00YTQzLWE4YWItNzc5ZjIzYjM1OThlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTExMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMTEzVDEyNTM0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRhYzdjNjljNDYyMTY0NzViYTBmZTllMTEzZDg2MTA0ZGQxNDNhMjFlNTFiNjEyNTFlYmVlMWZjYjMwZWJkYmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.nxySZvU-Lj5MZW2nSfP6EwuSpvg_iXgwly5N37MG7fY"> Can you reformulate your feedback? I'm not sure if I understand what you are asking for / suggesting
Author
Owner

@sexyskinnybitch commented on GitHub (Nov 13, 2025):

Line Breaks? This is ugly! LOL Unable to add CHAR(10 or 13) to CONCATENATE ?
Image

Can you reformulate your feedback? I'm not sure if I understand what you are asking for / suggesting

I'm pretty sure what they're asking for is the ability to put embedded carriage returns and line feed so that we can make a multi-line card. if you look at the example there are three different totals being listed. I believe they wanted to make each one of those three on a separate line.

<!-- gh-comment-id:3527965492 --> @sexyskinnybitch commented on GitHub (Nov 13, 2025): > > Line Breaks? This is ugly! LOL Unable to add CHAR(10 or 13) to CONCATENATE ? > > <img alt="Image" width="491" height="277" src="https://private-user-images.githubusercontent.com/29179457/513484387-5c3109ed-637e-4a43-a8ab-779f23b3598e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjMwMzg3MjcsIm5iZiI6MTc2MzAzODQyNywicGF0aCI6Ii8yOTE3OTQ1Ny81MTM0ODQzODctNWMzMTA5ZWQtNjM3ZS00YTQzLWE4YWItNzc5ZjIzYjM1OThlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTExMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMTEzVDEyNTM0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRhYzdjNjljNDYyMTY0NzViYTBmZTllMTEzZDg2MTA0ZGQxNDNhMjFlNTFiNjEyNTFlYmVlMWZjYjMwZWJkYmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.nxySZvU-Lj5MZW2nSfP6EwuSpvg_iXgwly5N37MG7fY"> > > Can you reformulate your feedback? I'm not sure if I understand what you are asking for / suggesting I'm pretty sure what they're asking for is the ability to put embedded carriage returns and line feed so that we can make a multi-line card. if you look at the example there are three different totals being listed. I believe they wanted to make each one of those three on a separate line.
Author
Owner

@Juulz commented on GitHub (Nov 13, 2025):

Line Breaks? This is ugly! LOL Unable to add CHAR(10 or 13) to CONCATENATE ?
Image

Can you reformulate your feedback? I'm not sure if I understand what you are asking for / suggesting

I'm pretty sure what they're asking for is the ability to put embedded carriage returns and line feed so that we can make a multi-line card. if you look at the example there are three different totals being listed. I believe they wanted to make each one of those three on a separate line.

Yes, line breaks! Thanks @sexyskinnybitch

<!-- gh-comment-id:3528293447 --> @Juulz commented on GitHub (Nov 13, 2025): > > > Line Breaks? This is ugly! LOL Unable to add CHAR(10 or 13) to CONCATENATE ? > > > <img alt="Image" width="491" height="277" src="https://private-user-images.githubusercontent.com/29179457/513484387-5c3109ed-637e-4a43-a8ab-779f23b3598e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjMwMzg3MjcsIm5iZiI6MTc2MzAzODQyNywicGF0aCI6Ii8yOTE3OTQ1Ny81MTM0ODQzODctNWMzMTA5ZWQtNjM3ZS00YTQzLWE4YWItNzc5ZjIzYjM1OThlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTExMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMTEzVDEyNTM0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRhYzdjNjljNDYyMTY0NzViYTBmZTllMTEzZDg2MTA0ZGQxNDNhMjFlNTFiNjEyNTFlYmVlMWZjYjMwZWJkYmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.nxySZvU-Lj5MZW2nSfP6EwuSpvg_iXgwly5N37MG7fY"> > > > > > > Can you reformulate your feedback? I'm not sure if I understand what you are asking for / suggesting > > I'm pretty sure what they're asking for is the ability to put embedded carriage returns and line feed so that we can make a multi-line card. if you look at the example there are three different totals being listed. I believe they wanted to make each one of those three on a separate line. Yes, line breaks! Thanks @sexyskinnybitch
Author
Owner

@sys044 commented on GitHub (Nov 14, 2025):

Added a comment to the other PR, just linking it here for visibility: https://github.com/actualbudget/actual/pull/5985#issuecomment-3532524060

<!-- gh-comment-id:3532549272 --> @sys044 commented on GitHub (Nov 14, 2025): Added a comment to the other PR, just linking it here for visibility: https://github.com/actualbudget/actual/pull/5985#issuecomment-3532524060
Author
Owner

@danielcovill commented on GitHub (Nov 14, 2025):

Using the Excel TEXT format to create currency doesn't seem to be working for me. Admittedly I'm an excel beginner but
=TEXT(QUERY("NetWorth"), "$#,##0.00")
Should get an output that is formatted with commas every three and the cents places as described here

What I actually see looks more like $1111111,##0.00

For what it's worth, using the following gets me closer
=TEXT(QUERY("NetWorth"), "$#")
in that the cents are rounded off.

<!-- gh-comment-id:3534643743 --> @danielcovill commented on GitHub (Nov 14, 2025): Using the Excel TEXT format to create currency doesn't seem to be working for me. Admittedly I'm an excel beginner but `=TEXT(QUERY("NetWorth"), "$#,##0.00")` Should get an output that is formatted with commas every three and the cents places as described [here](https://support.microsoft.com/en-us/office/text-function-20d5ac4d-7b94-49fd-bb38-93d29371225c) What I actually see looks more like $1111111,##0.00 For what it's worth, using the following gets me closer `=TEXT(QUERY("NetWorth"), "$#")` in that the cents are rounded off.
Author
Owner

@VictorBuilder commented on GitHub (Nov 15, 2025):

Image

Hi @matt-fidd,
The needs-wants-savings is something I was really looking forward in implementing in Actual. Could you please share how you've made it happen?

Thank you!

<!-- gh-comment-id:3536673457 --> @VictorBuilder commented on GitHub (Nov 15, 2025): > <img alt="Image" width="964" height="219" src="https://private-user-images.githubusercontent.com/81489167/508788968-cf52ee56-2323-4ea8-b43f-b838a4a313c5.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjMyMjYwOTEsIm5iZiI6MTc2MzIyNTc5MSwicGF0aCI6Ii84MTQ4OTE2Ny81MDg3ODg5NjgtY2Y1MmVlNTYtMjMyMy00ZWE4LWI0M2YtYjgzOGE0YTMxM2M1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTExMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMTE1VDE2NTYzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYwOTVmZjc5ZTExNTc3NWViM2NmMzA0NDIzNDczNjNmOGUzY2ZiMmU3MGQzM2Y3NmVlYjQ5NzI5YzExMGMyMWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.KsuDVBESwDC548cOhX52rdWKP2mCzyDycKeQ4_rrUU0"> Hi @matt-fidd, The needs-wants-savings is something I was really looking forward in implementing in Actual. Could you please share how you've made it happen? Thank you!
Author
Owner

@matt-fidd commented on GitHub (Nov 17, 2025):

Hi @matt-fidd, The needs-wants-savings is something I was really looking forward in implementing in Actual. Could you please share how you've made it happen?

Thank you!

Absolutely! The specifics will depend on how you have your accounts set up. For me, all of my accounts have a specific emoji in the account name (🫙& 📈 are savings and investments), and all spending is on budget and categorised. My needs categories have (N) in the name, and wants have (W). I'm sure you can change the filters around to what you use though.

Also, all of these formulae assume a 12 month (+ current month) rolling average used in the queries, to catch any annual subscriptions. It also assumes Wants = 50%, Needs = 30%, Savings = 20% but you can change those numbers in the colour formulae.

The formulae are... kind of ugly for now, but hopefully if we can get some more helpers in for things like this it'll get tidier.

Also a disclaimer that I've not extensively tested these, but the logic seems sound and the numbers seem reasonable.

Needs/Wants

For needs and wants, use the below but change the "spending" query filter:
Image
Main formula:

=CONCATENATE(
  "£",
  ROUND(
    ABS(QUERY("spending")) /
    (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))),
    2
  ),
  " (",
  IFERROR(
    ROUND(
      (
        (ABS(QUERY("spending")) / (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0)))) /
        (ABS(QUERY("income")) / (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))))
      ) * 100,
      0
    ),
    "∞"
  ),
  "%)"
)

Needs colour formula:

=IF(IFERROR((ABS(QUERY("spending")/(12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0)))))/(ABS(QUERY("income")/(12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))))), 100) > 50, "#F86A6A", "#40A5F7")

Wants colour formula:

=IF(IFERROR(((ABS(QUERY("spending"))/(12 + DAY(TODAY())/DAY(EOMONTH(TODAY(),0))))/(ABS(QUERY("income"))/(12 + DAY(TODAY())/DAY(EOMONTH(TODAY(),0)))))*100,100)>30,"#F86A6A","#40A5F7") 

Saving

Image

Formula:

=CONCATENATE(
  "£",
  ROUND(
    QUERY("spending") /
    (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))),
    2
  ),
  " (",
  IFERROR(
    QUERY("spending") /
    (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))) /
    (ABS(QUERY("income") / (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))))),
    IF(QUERY("spending") < 0, "-∞", "∞")
  ),
  "%)"
)

Colour formula:

=IF(IFERROR((ABS(QUERY("spending")/(12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0)))))/(ABS(QUERY("income")/(12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))))), 0) < 20, "#F86A6A", "#40A5F7")
<!-- gh-comment-id:3539644417 --> @matt-fidd commented on GitHub (Nov 17, 2025): > Hi [@matt-fidd](https://github.com/matt-fidd), The needs-wants-savings is something I was really looking forward in implementing in Actual. Could you please share how you've made it happen? > > Thank you! Absolutely! The specifics will depend on how you have your accounts set up. For me, all of my accounts have a specific emoji in the account name (🫙& 📈 are savings and investments), and all spending is on budget and categorised. My needs categories have `(N)` in the name, and wants have `(W)`. I'm sure you can change the filters around to what you use though. Also, all of these formulae assume a 12 month (+ current month) rolling average used in the queries, to catch any annual subscriptions. It also assumes Wants = 50%, Needs = 30%, Savings = 20% but you can change those numbers in the colour formulae. The formulae are... kind of ugly for now, but hopefully if we can get some more helpers in for things like this it'll get tidier. Also a disclaimer that I've not extensively tested these, but the logic seems sound and the numbers seem reasonable. # Needs/Wants For needs and wants, use the below but change the "spending" query filter: <img width="979" height="922" alt="Image" src="https://github.com/user-attachments/assets/9eee0fbf-5e17-46da-87b3-52cfc10076a0" /> Main formula: ``` =CONCATENATE( "£", ROUND( ABS(QUERY("spending")) / (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))), 2 ), " (", IFERROR( ROUND( ( (ABS(QUERY("spending")) / (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0)))) / (ABS(QUERY("income")) / (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0)))) ) * 100, 0 ), "∞" ), "%)" ) ``` Needs colour formula: ``` =IF(IFERROR((ABS(QUERY("spending")/(12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0)))))/(ABS(QUERY("income")/(12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))))), 100) > 50, "#F86A6A", "#40A5F7") ``` Wants colour formula: ``` =IF(IFERROR(((ABS(QUERY("spending"))/(12 + DAY(TODAY())/DAY(EOMONTH(TODAY(),0))))/(ABS(QUERY("income"))/(12 + DAY(TODAY())/DAY(EOMONTH(TODAY(),0)))))*100,100)>30,"#F86A6A","#40A5F7") ``` # Saving <img width="975" height="899" alt="Image" src="https://github.com/user-attachments/assets/ff41d83b-76c8-4524-96c6-f3e9b30c21b3" /> Formula: ``` =CONCATENATE( "£", ROUND( QUERY("spending") / (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))), 2 ), " (", IFERROR( QUERY("spending") / (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))) / (ABS(QUERY("income") / (12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))))), IF(QUERY("spending") < 0, "-∞", "∞") ), "%)" ) ``` Colour formula: ``` =IF(IFERROR((ABS(QUERY("spending")/(12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0)))))/(ABS(QUERY("income")/(12 + DAY(TODAY()) / DAY(EOMONTH(TODAY(), 0))))), 0) < 20, "#F86A6A", "#40A5F7") ```
Author
Owner

@tabedzki commented on GitHub (Nov 17, 2025):

I might be missing it, but is there a docs page for this experimental feature? If not, should we write one? I don't see it listed on the current website.

<!-- gh-comment-id:3542112081 --> @tabedzki commented on GitHub (Nov 17, 2025): I might be missing it, but is there a docs page for this experimental feature? If not, should we write one? I don't see it listed on the current website.
Author
Owner

@emiltb commented on GitHub (Nov 17, 2025):

I was playing around with this and really like the flexibility. I agree with @tabedzki that it would be really nice to get some docs written for the feature, as it is a bit of guesswork to do something with it right now.

It is possible to format numbers with a thousands separator? Normally in Excel this is done via cell formatting and not a formula, so it is unclear to me if this is possible right now. I have this query, which tells me how close I am to hit a certain limit in my transactions:

=CONCATENATE(ROUND(SUM(QUERY("Medarbejderaktier ÅTD"))/(1-0.00075),0), " (", CONCATENATE(ROUND(SUM(QUERY("Medarbejderaktier ÅTD"))/(1-0.00075)/67500*100,1), "%"), ")")

Image

For aesthetic reasons it would be nice to display that as 53,922 (79.9%)

<!-- gh-comment-id:3542643196 --> @emiltb commented on GitHub (Nov 17, 2025): I was playing around with this and really like the flexibility. I agree with @tabedzki that it would be really nice to get some docs written for the feature, as it is a bit of guesswork to do something with it right now. It is possible to format numbers with a thousands separator? Normally in Excel this is done via cell formatting and not a formula, so it is unclear to me if this is possible right now. I have this query, which tells me how close I am to hit a certain limit in my transactions: `=CONCATENATE(ROUND(SUM(QUERY("Medarbejderaktier ÅTD"))/(1-0.00075),0), " (", CONCATENATE(ROUND(SUM(QUERY("Medarbejderaktier ÅTD"))/(1-0.00075)/67500*100,1), "%"), ")")` <img width="395" height="222" alt="Image" src="https://github.com/user-attachments/assets/706d1d8d-90d9-4990-9837-aa1cc05471f7" /> For aesthetic reasons it would be nice to display that as **`53,922 (79.9%)`**
Author
Owner

@espege commented on GitHub (Nov 17, 2025):

Great feature! I can see this really coming handy in the future.

I would love to have the dropdown value dynamic "last month" in the hamburger menu for time selections, like is already available in some reports. My use case is splitting some specific expenses in the household, but data is not real-time, hence the need to only target last month.

Image
<!-- gh-comment-id:3543873944 --> @espege commented on GitHub (Nov 17, 2025): Great feature! I can see this really coming handy in the future. I would love to have the dropdown value dynamic "last month" in the hamburger menu for time selections, like is already available in some reports. My use case is splitting some specific expenses in the household, but data is not real-time, hence the need to only target last month. <img width="486" height="596" alt="Image" src="https://github.com/user-attachments/assets/12131401-c89b-4a04-9c6d-1ad3f4a70895" />
Author
Owner

@rodriguestiago0 commented on GitHub (Nov 19, 2025):

The tool tip used single quotes, and then the usage used double quotes.

<!-- gh-comment-id:3552043559 --> @rodriguestiago0 commented on GitHub (Nov 19, 2025): The tool tip used single quotes, and then the usage used double quotes.
Author
Owner

@youngcw commented on GitHub (Nov 24, 2025):

A balanceOnDay() function would be nice. That way you could make a schedule that calculates the amount needed to pay off a CC statement balance and not just the whole balance.

<!-- gh-comment-id:3571736744 --> @youngcw commented on GitHub (Nov 24, 2025): A `balanceOnDay()` function would be nice. That way you could make a schedule that calculates the amount needed to pay off a CC statement balance and not just the whole balance.
Author
Owner

@matt-fidd commented on GitHub (Nov 24, 2025):

A balanceOnDay() function would be nice. That way you could make a schedule that calculates the amount needed to pay off a CC statement balance and not just the whole balance.

That would be good, I've got a cron job that runs and picks up my CC statement dates from account notes, then uses the schedule API to update them as needed, but skipping a step would be appreciated!

<!-- gh-comment-id:3571798123 --> @matt-fidd commented on GitHub (Nov 24, 2025): > A `balanceOnDay()` function would be nice. That way you could make a schedule that calculates the amount needed to pay off a CC statement balance and not just the whole balance. That would be good, I've got a cron job that runs and picks up my CC statement dates from account notes, then uses the schedule API to update them as needed, but skipping a step would be appreciated!
Author
Owner

@Juulz commented on GitHub (Nov 25, 2025):

If custom pills will be created, being able to use lastSyncedBalance would be great. It's a bit of a bother to open up Reconcile on each account to check if it matches the Cleared total.

<!-- gh-comment-id:3575451496 --> @Juulz commented on GitHub (Nov 25, 2025): If custom pills will be created, being able to use `lastSyncedBalance` would be great. It's a bit of a bother to open up Reconcile on each account to check if it matches the Cleared total.
Author
Owner

@jean-the-coder commented on GitHub (Dec 2, 2025):

I don't know how feasible it is, but it would be cool to have an option to set a default time range for the card rather than recreating the time range for every query within the card.

<!-- gh-comment-id:3604228282 --> @jean-the-coder commented on GitHub (Dec 2, 2025): I don't know how feasible it is, but it would be cool to have an option to set a default time range for the card rather than recreating the time range for every query within the card.
Author
Owner

@Kurokha commented on GitHub (Dec 3, 2025):

I'm loving this new feature! Already started building some nice reports and looking forward to what else will be made possible.

One thing that I didn't see being mentioned yet: You can't import a reports dashboard that contains formula cards. While they seem to be exported perfectly fine, importing results in an error "Error importing file: Invalid widget.id.type value formula-card."

<!-- gh-comment-id:3608907466 --> @Kurokha commented on GitHub (Dec 3, 2025): I'm loving this new feature! Already started building some nice reports and looking forward to what else will be made possible. One thing that I didn't see being mentioned yet: You can't import a reports dashboard that contains formula cards. While they seem to be exported perfectly fine, importing results in an error "Error importing file: Invalid widget.id.type value formula-card."
Author
Owner

@superzanti commented on GitHub (Dec 3, 2025):

Is it possible to do some kind of count function?
I can query, but that just returns the sum of all the amounts found. It would be nice if there was also some kind of count query that would return the number of results found.

<!-- gh-comment-id:3609294817 --> @superzanti commented on GitHub (Dec 3, 2025): Is it possible to do some kind of count function? I can query, but that just returns the sum of all the amounts found. It would be nice if there was also some kind of count query that would return the number of results found.
Author
Owner

@fcthemaster commented on GitHub (Dec 4, 2025):

Does not work for me in "rules". It does not recognize any formula
Image

<!-- gh-comment-id:3611484597 --> @fcthemaster commented on GitHub (Dec 4, 2025): Does not work for me in "rules". It does not recognize any formula <img width="1144" height="860" alt="Image" src="https://github.com/user-attachments/assets/4d7397e8-99d9-4baa-a240-6fab1f7a0558" />
Author
Owner

@ctozlowski commented on GitHub (Dec 4, 2025):

I keep getting a fatal error that I think is related to this feature. I set up a rule using a formula:

Image

And now when I click on "Off Budget" or the account that the transaction is in, I get a fatal error.

Image

Removing the formula stops the fatal error from occuring

<!-- gh-comment-id:3614004980 --> @ctozlowski commented on GitHub (Dec 4, 2025): I keep getting a fatal error that I think is related to this feature. I set up a rule using a formula: <img width="860" height="122" alt="Image" src="https://github.com/user-attachments/assets/b360d687-bfcc-4462-a94c-db29c54d31a2" /> And now when I click on "Off Budget" or the account that the transaction is in, I get a fatal error. <img width="512" height="212" alt="Image" src="https://github.com/user-attachments/assets/a970a44e-0682-46ac-b9dd-4c01e12e7536" /> Removing the formula stops the fatal error from occuring
Author
Owner

@ctozlowski commented on GitHub (Dec 4, 2025):

Unrelated to my previous comment, does =QUERY() just sum up the transaction amounts in the query? It would be cool to be able to get specific details about certain transactions in the query such as dates

<!-- gh-comment-id:3614011912 --> @ctozlowski commented on GitHub (Dec 4, 2025): Unrelated to my previous comment, does =QUERY() just sum up the transaction amounts in the query? It would be cool to be able to get specific details about certain transactions in the query such as dates
Author
Owner

@superzanti commented on GitHub (Dec 4, 2025):

Unrelated to my previous comment, does =QUERY() just sum up the transaction amounts in the query? It would be cool to be able to get specific details about certain transactions in the query such as dates

It seems like it.
I'd also like more specific details. I've always wanted to integrate a mortgage tracker into actual.

<!-- gh-comment-id:3614026243 --> @superzanti commented on GitHub (Dec 4, 2025): > Unrelated to my previous comment, does =QUERY() just sum up the transaction amounts in the query? It would be cool to be able to get specific details about certain transactions in the query such as dates It seems like it. I'd also like more specific details. I've always wanted to integrate a mortgage tracker into actual.
Author
Owner

@IsThisThingStillOn commented on GitHub (Dec 5, 2025):

Update v25.12.0 "broke" the formula area for formula card reports. It looked quite nice (see opening post) now it looks like this:

Image
<!-- gh-comment-id:3615895733 --> @IsThisThingStillOn commented on GitHub (Dec 5, 2025): Update v25.12.0 "broke" the formula area for formula card reports. It looked quite nice (see opening post) now it looks like this: <img width="728" height="549" alt="Image" src="https://github.com/user-attachments/assets/e19abc11-c962-4258-90eb-304fc21a5905" />
Author
Owner

@dylarm commented on GitHub (Dec 6, 2025):

Also after updating to v25.12.0, autocomplete in both the formula and color boxes no longer seems to work. However, the theme.reportsBlue vs theme_reportsBlue issue for the color is still present.

<!-- gh-comment-id:3621078268 --> @dylarm commented on GitHub (Dec 6, 2025): Also after updating to v25.12.0, autocomplete in both the formula and color boxes no longer seems to work. However, the `theme.reportsBlue` vs `theme_reportsBlue` issue for the color is still present.
Author
Owner

@youngcw commented on GitHub (Dec 11, 2025):

My report was constantly reloading and the text was getting smaller each time. Now it no longer reloads, but its probably at a minimum text size.

Image
<!-- gh-comment-id:3642523338 --> @youngcw commented on GitHub (Dec 11, 2025): My report was constantly reloading and the text was getting smaller each time. Now it no longer reloads, but its probably at a minimum text size. <img width="758" height="226" alt="Image" src="https://github.com/user-attachments/assets/8f9e4fc9-1e10-43ea-b467-0319d7b997e8" />
Author
Owner

@alex-t-grey commented on GitHub (Dec 11, 2025):

Paraphrasing my comment from https://github.com/actualbudget/actual/pull/5985#issuecomment-3643322549

Found a bug. When trying to set the amount using math operations that result in excess decimal places, the rule throws an error and fails to populate, regardless of the syntax used.

For example:
set amount =12345/2 or
set amount ={{div 12345 2}}
will both fail.

The workaround is to use the round function to remove the excess decimals when setting the amount.
set amount =round(12345/2) or
set amount ={{round (div 12345 2)}}
will both work as expected.

This feels like an oversight. If you type a number into the amount field with too many decimals it rounds automatically. The same should happen here, without making users add the round function. Especially since calculating interest is the most desired used case for the balance variable. set amount =balance*0.004 will fail.

Also, the docs need more information on this. There's no instruction on how to use nested functions in handlebars syntax, and nothing at all on the proper "formula" syntax. It was hard to troubleshoot this. If the behavior is not going to change, then the docs need to explicitly state that users must add the round function.

This is on 25.12.0 latest, running on Pikapods.

<!-- gh-comment-id:3643437238 --> @alex-t-grey commented on GitHub (Dec 11, 2025): Paraphrasing my comment from https://github.com/actualbudget/actual/pull/5985#issuecomment-3643322549 Found a bug. When trying to set the amount using math operations that result in excess decimal places, the rule throws an error and fails to populate, regardless of the syntax used. For example: `set amount =12345/2` or `set amount ={{div 12345 2}}` will both fail. The workaround is to use the `round` function to remove the excess decimals when setting the `amount`. `set amount =round(12345/2)` or `set amount ={{round (div 12345 2)}}` will both work as expected. This feels like an oversight. If you type a number into the amount field with too many decimals it rounds automatically. The same should happen here, without making users add the round function. Especially since calculating interest is the most desired used case for the `balance` variable. `set amount =balance*0.004` will fail. Also, the docs need more information on this. There's no instruction on how to use nested functions in handlebars syntax, and nothing at all on the proper "formula" syntax. It was hard to troubleshoot this. If the behavior is not going to change, then the docs need to explicitly state that users must add the `round` function. This is on 25.12.0 `latest`, running on Pikapods.
Author
Owner

@mrsdoubtfire613 commented on GitHub (Dec 13, 2025):

Update v25.12.0 "broke" the formula area for formula card reports. It looked quite nice (see opening post) now it looks like this:

Image

I only just started playing with these formula cards and am also on v25.12.0 so I don't have a reference to prior versions. I see the same for the formula area. Also, ctrl+space does not bring up the formula helper at all. Lastly, I don't get any autocomplete assistance either.

<!-- gh-comment-id:3649769517 --> @mrsdoubtfire613 commented on GitHub (Dec 13, 2025): > Update v25.12.0 "broke" the formula area for formula card reports. It looked quite nice (see opening post) now it looks like this: > > <img alt="Image" width="728" height="549" src="https://private-user-images.githubusercontent.com/1424255/522858213-e19abc11-c962-4258-90eb-304fc21a5905.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjU2NTY5OTAsIm5iZiI6MTc2NTY1NjY5MCwicGF0aCI6Ii8xNDI0MjU1LzUyMjg1ODIxMy1lMTlhYmMxMS1jOTYyLTQyNTgtOTBlYi0zMDRmYzIxYTU5MDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MTIxMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTEyMTNUMjAxMTMwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDVhNTE0MzlkNTQ3NjNjNmNmZTE4Y2UwN2MzNjNiOTI0MmQwN2U0OTg4ODc2YmNkZjExNDVkYmU1MTlhM2ZiMCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.wMckEGYdAoBA18k8qHrKhz3PV1MqvouaCKgzxeqp6jk"> I only just started playing with these formula cards and am also on v25.12.0 so I don't have a reference to prior versions. I see the same for the formula area. Also, ctrl+space does not bring up the formula helper at all. Lastly, I don't get any autocomplete assistance either.
Author
Owner

@IsThisThingStillOn commented on GitHub (Dec 13, 2025):

Update v25.12.0 "broke" the formula area for formula card reports. It looked quite nice (see opening post) now it looks like this:
Image

I only just started playing with these formula cards and am also on v25.12.0 so I don't have a reference to prior versions. I see the same for the formula area. Also, ctrl+space does not bring up the formula helper at all. Lastly, I don't get any autocomplete assistance either.

Yeah, auto complete was a thing back in 25.11.0

<!-- gh-comment-id:3649814967 --> @IsThisThingStillOn commented on GitHub (Dec 13, 2025): > > Update v25.12.0 "broke" the formula area for formula card reports. It looked quite nice (see opening post) now it looks like this: > > <img alt="Image" width="728" height="549" src="https://private-user-images.githubusercontent.com/1424255/522858213-e19abc11-c962-4258-90eb-304fc21a5905.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjU2NTY5OTAsIm5iZiI6MTc2NTY1NjY5MCwicGF0aCI6Ii8xNDI0MjU1LzUyMjg1ODIxMy1lMTlhYmMxMS1jOTYyLTQyNTgtOTBlYi0zMDRmYzIxYTU5MDUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MTIxMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTEyMTNUMjAxMTMwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDVhNTE0MzlkNTQ3NjNjNmNmZTE4Y2UwN2MzNjNiOTI0MmQwN2U0OTg4ODc2YmNkZjExNDVkYmU1MTlhM2ZiMCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.wMckEGYdAoBA18k8qHrKhz3PV1MqvouaCKgzxeqp6jk"> > > I only just started playing with these formula cards and am also on v25.12.0 so I don't have a reference to prior versions. I see the same for the formula area. Also, ctrl+space does not bring up the formula helper at all. Lastly, I don't get any autocomplete assistance either. Yeah, auto complete was a thing back in 25.11.0
Author
Owner

@lelemm commented on GitHub (Dec 15, 2025):

LLM generated summary of the feedbacks until now:

👍 Overall Feedback

  • Feature is well received
  • Users are actively experimenting
  • Seen as a foundational feature for customization
  • Strong interest in a unified formula language across the app

🧮 Formula & Data Capabilities

  • Missing variables (especially balance)
  • Requests for lastSyncedBalance
  • Need for count-style queries (not only sums)
  • Queries should return details, not just totals
  • Request for balanceOnDay(date) function

📊 Time Range & Queries

  • Date handling inconsistent with other reports (exclusive vs inclusive end month)
  • Desire for a default time range per Formula Card
  • Query editor behavior differs from existing reports

🧑‍💻 Editor & UX

  • Autocomplete and Ctrl+Space were useful
  • Autocomplete broken in v25.12.0
  • Formula editor UI visually degraded in v25.12.0
  • Long filters overflow outside the editor box
  • Font auto-sizing can shrink text unexpectedly

🐛 Bugs & Stability Issues

  • Some formulas in Rules cause fatal errors
  • Removing formulas resolves crashes
  • Rules sometimes don’t recognize formulas
  • Reports may repeatedly reload

📦 Import / Export

  • Dashboards with Formula Cards export correctly
  • Import fails due to formula-card widget type error

🔢 Numeric & Rounding Problems

  • Formulas fail when producing extra decimals
  • Users must manually apply round()
  • Manual amount entry auto-rounds but formulas don’t
  • Common cases like interest calculation break

📚 Documentation Gaps

  • Formula syntax poorly documented
  • Nested functions not explained
  • Handlebars vs formula syntax unclear
  • Troubleshooting relies on trial and error

🧭 Strategic Direction Feedback

  • Strong support for replacing Rule Action Templates
  • Desire for one shared formula language across:
    • Formula Cards
    • Rule Actions
    • Possibly budget templates
<!-- gh-comment-id:3652525768 --> @lelemm commented on GitHub (Dec 15, 2025): LLM generated summary of the feedbacks until now: 👍 Overall Feedback - Feature is well received - Users are actively experimenting - Seen as a foundational feature for customization - Strong interest in a unified formula language across the app 🧮 Formula & Data Capabilities - Missing variables (especially `balance`) - Requests for `lastSyncedBalance` - Need for count-style queries (not only sums) - Queries should return details, not just totals - Request for `balanceOnDay(date)` function 📊 Time Range & Queries - Date handling inconsistent with other reports (exclusive vs inclusive end month) - Desire for a default time range per Formula Card - Query editor behavior differs from existing reports 🧑‍💻 Editor & UX - Autocomplete and Ctrl+Space were useful - Autocomplete broken in v25.12.0 - Formula editor UI visually degraded in v25.12.0 - Long filters overflow outside the editor box - Font auto-sizing can shrink text unexpectedly 🐛 Bugs & Stability Issues - Some formulas in Rules cause fatal errors - Removing formulas resolves crashes - Rules sometimes don’t recognize formulas - Reports may repeatedly reload 📦 Import / Export - Dashboards with Formula Cards export correctly - Import fails due to `formula-card` widget type error 🔢 Numeric & Rounding Problems - Formulas fail when producing extra decimals - Users must manually apply `round()` - Manual amount entry auto-rounds but formulas don’t - Common cases like interest calculation break 📚 Documentation Gaps - Formula syntax poorly documented - Nested functions not explained - Handlebars vs formula syntax unclear - Troubleshooting relies on trial and error 🧭 Strategic Direction Feedback - Strong support for replacing Rule Action Templates - Desire for one shared formula language across: - Formula Cards - Rule Actions - Possibly budget templates
Author
Owner

@sjones512 commented on GitHub (Dec 15, 2025):

I took a stab at adding the Formula Feature to the set-split-amount field in rules.

Not intimately familiar with how the rules are are applied or if there are special considerations for split transactions that I am overlooking.

PR Here: 6414

<!-- gh-comment-id:3653418814 --> @sjones512 commented on GitHub (Dec 15, 2025): I took a stab at adding the Formula Feature to the set-split-amount field in rules. Not intimately familiar with how the rules are are applied or if there are special considerations for split transactions that I am overlooking. PR Here: [6414](https://github.com/actualbudget/actual/pull/6414)
Author
Owner

@lelemm commented on GitHub (Dec 15, 2025):

BUGS / ISSUES

  • Autocomplete and Ctrl+Space broken in v25.12.0
  • Formula editor UI visually degraded in v25.12.0
  • Some formulas in Rules cause fatal errors when navigating accounts (probably fixed, need someone to test it)
  • Rules sometimes do not recognize formulas at all (I don't know how to reproduce this problem)
  • Reports can repeatedly reload and shrink text size (Still happening?)
  • Long filters overflow outside the query editor box
  • Dashboards with Formula Cards fail to import (invalid formula-card widget)
  • Decimal results in formulas cause rule failures unless manually rounded
  • Interest calculations (e.g. balance * rate) fail due to rounding behavior
  • Date handling in query editor is inconsistent (exclusive end month vs inclusive elsewhere) - (Need to test this more)
  • Formula editor crashes resolved by removing formulas (probably fixed by other bug fixes)

IMPROVEMENTS / ENHANCEMENTS

  • Add missing transaction variables (especially balance)
  • Support count-style queries (COUNT) in addition to sums
  • Restore and improve autocomplete and suggestion popover
  • Improve formula editor UX and layout handling
  • Auto-round formula results like manual amount entry does
  • Align Formula Rules with Rule Action Templates feature parity
  • Font size calculation in FormulaResult.tsx is inconsistent with SummaryNumber.tsx

ON ITS OWN CATEGORY (not going to deal with it here)

  • Add balanceOnDay(date) function for credit card and schedule use cases
  • Expose lastSyncedBalance for formulas and custom pills
  • Expand documentation with:
    • Formula syntax reference
    • Nested function examples
    • Clear distinction between formula and Handlebars syntax
  • Allow queries to return detailed transaction data, not only totals
  • Allow setting a default time range per Formula Card
<!-- gh-comment-id:3656870138 --> @lelemm commented on GitHub (Dec 15, 2025): BUGS / ISSUES - [x] Autocomplete and Ctrl+Space broken in v25.12.0 - [x] Formula editor UI visually degraded in v25.12.0 - [x] Some formulas in Rules cause fatal errors when navigating accounts (probably fixed, need someone to test it) - [ ] Rules sometimes do not recognize formulas at all (I don't know how to reproduce this problem) - [ ] Reports can repeatedly reload and shrink text size (Still happening?) - [x] Long filters overflow outside the query editor box - [x] Dashboards with Formula Cards fail to import (invalid formula-card widget) - [x] Decimal results in formulas cause rule failures unless manually rounded - [x] Interest calculations (e.g. balance * rate) fail due to rounding behavior - [ ] Date handling in query editor is inconsistent (exclusive end month vs inclusive elsewhere) - (Need to test this more) - [x] Formula editor crashes resolved by removing formulas (probably fixed by other bug fixes) IMPROVEMENTS / ENHANCEMENTS - [x] Add missing transaction variables (especially `balance`) - [ ] Support count-style queries (COUNT) in addition to sums - [x] Restore and improve autocomplete and suggestion popover - [x] Improve formula editor UX and layout handling - [x] Auto-round formula results like manual amount entry does - [ ] Align Formula Rules with Rule Action Templates feature parity - [ ] Font size calculation in FormulaResult.tsx is inconsistent with SummaryNumber.tsx ON ITS OWN CATEGORY (not going to deal with it here) - [ ] Add `balanceOnDay(date)` function for credit card and schedule use cases - [ ] Expose `lastSyncedBalance` for formulas and custom pills - [ ] Expand documentation with: - [ ] Formula syntax reference - [ ] Nested function examples - [ ] Clear distinction between formula and Handlebars syntax - [ ] Allow queries to return detailed transaction data, not only totals - [ ] Allow setting a default time range per Formula Card
Author
Owner

@superzanti commented on GitHub (Dec 16, 2025):

+1

Support count-style queries (COUNT) in addition to sums

This would be incredibly helpful as a baseline.

<!-- gh-comment-id:3662875399 --> @superzanti commented on GitHub (Dec 16, 2025): +1 `Support count-style queries (COUNT) in addition to sums` This would be incredibly helpful as a baseline.
Author
Owner

@IsThisThingStillOn commented on GitHub (Jan 3, 2026):

/E:
Seems fixed with v26.1.0

Bug: Date range doesn't update automatically, like other report cards do.

I use several formula cards and a few different date ranges. None of them reflected the new range after the month rollover.

This is a card I added in November (both 3 months) and they never changed on their own
Image

<!-- gh-comment-id:3707279839 --> @IsThisThingStillOn commented on GitHub (Jan 3, 2026): /E: Seems fixed with v26.1.0 Bug: Date range doesn't update automatically, like other report cards do. I use several formula cards and a few different date ranges. None of them reflected the new range after the month rollover. This is a card I added in November (both 3 months) and they never changed on their own ![Image](https://github.com/user-attachments/assets/d34ca0dc-cd2d-4079-907a-024046c34d2b)
Author
Owner

@ldrumm4 commented on GitHub (Jan 7, 2026):

On v26.1.0 Formula Card results don't respect system number formatting preference defined in Settings.

Great feature overall 👍

<!-- gh-comment-id:3719562030 --> @ldrumm4 commented on GitHub (Jan 7, 2026): On `v26.1.0` Formula Card results don't respect system number formatting preference defined in Settings. Great feature overall 👍
Author
Owner

@shall0pass commented on GitHub (Jan 21, 2026):

The formula seems to be adding a number larger than expected. By 100x.

Below is a screen shot progression. I entered a $10 misc income, created a rule to add 5% divided by 12 months. The account balance was 3048.05, but when the rule was applied it filled $1266. I expected an amount in the neighborhood of $12.70, so $12.66 would be a reasonable answer.

Image Image Image
<!-- gh-comment-id:3777267020 --> @shall0pass commented on GitHub (Jan 21, 2026): The formula seems to be adding a number larger than expected. By 100x. Below is a screen shot progression. I entered a $10 misc income, created a rule to add 5% divided by 12 months. The account balance was 3048.05, but when the rule was applied it filled $1266. I expected an amount in the neighborhood of $12.70, so $12.66 would be a reasonable answer. <img width="1080" height="2400" alt="Image" src="https://github.com/user-attachments/assets/c5f657fd-27e5-4258-81cb-3dcec1f933cb" /> <img width="1080" height="2400" alt="Image" src="https://github.com/user-attachments/assets/07eb4964-bad1-46d8-9401-45b35935fc34" /> <img width="1080" height="2400" alt="Image" src="https://github.com/user-attachments/assets/c953d568-ce32-45e8-bedb-ae05cc1e4960" />
Author
Owner

@matt-fidd commented on GitHub (Jan 21, 2026):

The formula seems to be adding a number larger than expected. By 100x.

Below is a screen shot progression. I entered a $10 misc income, created a rule to add 5% divided by 12 months. The account balance was 3048.05, but when the rule was applied it filled $1266. I expected an amount in the neighborhood of $12.70, so $12.66 would be a reasonable answer.

Image Image Image

Just a quick read as I'm out and about but I imagine balance returns an int, not a decimal so * 100 in most cases. That's definitely how the rule action tempting with handlebars worked.

<!-- gh-comment-id:3777549915 --> @matt-fidd commented on GitHub (Jan 21, 2026): > The formula seems to be adding a number larger than expected. By 100x. > > Below is a screen shot progression. I entered a $10 misc income, created a rule to add 5% divided by 12 months. The account balance was 3048.05, but when the rule was applied it filled $1266. I expected an amount in the neighborhood of $12.70, so $12.66 would be a reasonable answer. > > <img width="1080" height="2400" alt="Image" src="https://github.com/user-attachments/assets/c5f657fd-27e5-4258-81cb-3dcec1f933cb" /> > <img width="1080" height="2400" alt="Image" src="https://github.com/user-attachments/assets/07eb4964-bad1-46d8-9401-45b35935fc34" /> > <img width="1080" height="2400" alt="Image" src="https://github.com/user-attachments/assets/c953d568-ce32-45e8-bedb-ae05cc1e4960" /> Just a quick read as I'm out and about but I imagine `balance` returns an int, not a decimal so * 100 in most cases. That's definitely how the rule action tempting with handlebars worked.
Author
Owner

@shall0pass commented on GitHub (Jan 21, 2026):

Do you think it's going to stay this way or is this a bug? I'm debating whether I need to change my /12 to /1200 to get the correct results, or if I'll have to adjust again if it's a bug.

<!-- gh-comment-id:3777735602 --> @shall0pass commented on GitHub (Jan 21, 2026): Do you think it's going to stay this way or is this a bug? I'm debating whether I need to change my /12 to /1200 to get the correct results, or if I'll have to adjust again if it's a bug.
Author
Owner

@matt-fidd commented on GitHub (Jan 21, 2026):

Do you think it's going to stay this way or is this a bug? I'm debating whether I need to change my /12 to /1200 to get the correct results, or if I'll have to adjust again if it's a bug.

I imagine it'll stay this way. There is a INTEGER_TO_AMOUNT helper that should help to convert for you. I think it's a design choice related to currencies with differing decimal places

I believe the INTEGER_TO_AMOUNT helper is broken in 26.1, but works on edge

<!-- gh-comment-id:3778097774 --> @matt-fidd commented on GitHub (Jan 21, 2026): > Do you think it's going to stay this way or is this a bug? I'm debating whether I need to change my /12 to /1200 to get the correct results, or if I'll have to adjust again if it's a bug. I imagine it'll stay this way. There is a `INTEGER_TO_AMOUNT` helper that should help to convert for you. I think it's a design choice related to currencies with differing decimal places I believe the `INTEGER_TO_AMOUNT` helper is broken in 26.1, but works on edge
Author
Owner

@tabedzki commented on GitHub (Jan 26, 2026):

  1. Can we update the default to be something that has an active query for the DB? An example using a more complicated default would provide users a better understanding, especially since the demo budget doesn't provide one for users to tinker with.

  2. Looking at the documentation, there are things like =SUMIF(A1:A10, ">0", B1:B10) which makes sense when you're looking at an Excel Spreadsheet but in this context of a query, the idea of columns and rows (for example, A1:A10) is confusing and unintuitive. Is there a way we can explain this better to users? Is this notation meaningful in Actual or should it be removed from the docs?

  3. Separately from that, can we update the demo budget file have a demo for each experimental feature? Currently, you can have them exist even if the experimental feature flag is disabled; they just won't be visible on the Reports page itself. Each one could be placed towards the bottom of the reports page.

<!-- gh-comment-id:3800571559 --> @tabedzki commented on GitHub (Jan 26, 2026): 1. Can we update the default to be something that has an active query for the DB? An example using a more complicated default would provide users a better understanding, especially since the demo budget doesn't provide one for users to tinker with. 2. Looking at the documentation, there are things like `=SUMIF(A1:A10, ">0", B1:B10)` which makes sense when you're looking at an Excel Spreadsheet but in this context of a query, the idea of columns and rows (for example, `A1:A10`) is confusing and unintuitive. Is there a way we can explain this better to users? Is this notation meaningful in Actual or should it be removed from the docs? 3. Separately from that, can we update the demo budget file have a demo for each experimental feature? Currently, you can have them exist even if the experimental feature flag is disabled; they just won't be visible on the Reports page itself. Each one could be placed towards the bottom of the reports page.
Author
Owner

@bryan commented on GitHub (Jan 30, 2026):

Excel formula for new line doesn't work; e.g. CHAR(10)

Additionally, is it possible to have the card widget on the Report dashboard to be the smallest size? Right now it's using a lot of empty space especially since font-size can be dynamically changed.

Image
<!-- gh-comment-id:3825821505 --> @bryan commented on GitHub (Jan 30, 2026): Excel formula for new line doesn't work; e.g. [_CHAR(10)_](https://superuser.com/questions/918520/how-to-add-a-line-break-to-the-output-of-a-formula-in-excel) Additionally, is it possible to have the card widget on the Report dashboard to be the smallest size? Right now it's using a lot of empty space especially since font-size can be dynamically changed. <img width="447" height="444" alt="Image" src="https://github.com/user-attachments/assets/551b78bd-3c5e-42da-a416-ff33c89e6015" />
Author
Owner

@StephenBrown2 commented on GitHub (Feb 1, 2026):

It was requested in Discord that the formula's work in the condition fields as well. Currently they are only available in the actions.

In the the rules you can have the conditions for the amount to be is between, is greater than, less than, Etc..

Would it be possible to add a Is even & is odd number or something like it? Im thinking of this for my gas transactions as it charges first reimburses the amount then charges the real price so for example I usually have it pre charge 100$ and the amount in the end will be lets say 43.45$ the hope is that it would target just the 43.45$ not the 100

How hard would this be to implement?

Discord: https://discord.com/channels/937901803608096828/1466649888581353544

Image
<!-- gh-comment-id:3830040131 --> @StephenBrown2 commented on GitHub (Feb 1, 2026): It was requested in Discord that the formula's work in the condition fields as well. Currently they are only available in the actions. > In the the rules you can have the conditions for the amount to be is between, is greater than, less than, Etc.. > > Would it be possible to add a Is even & is odd number or something like it? Im thinking of this for my gas transactions as it charges first reimburses the amount then charges the real price so for example I usually have it pre charge 100$ and the amount in the end will be lets say 43.45$ the hope is that it would target just the 43.45$ not the 100 > > How hard would this be to implement? Discord: https://discord.com/channels/937901803608096828/1466649888581353544 <img width="883" height="161" alt="Image" src="https://github.com/user-attachments/assets/40d5de4a-f508-406c-9f35-bc42211246aa" />
Author
Owner

@niffelheimba commented on GitHub (Feb 13, 2026):

First, amazing feature. I use the budget tracking mode and want to be able to query budgeted amounts - is this possible? I wonder if this would also being able to extend to setting the date range to future months based on budgeted amounts (but obviously there won't be actuals).

For example, I'd like to be able to use formulas to create a rolling 6 month sum, or maybe a static picture for the year, of my budgeted vs. actual amounts... so if I go over/under a month, I can still hit a target based on my dashboard. For example, I could set a formula to sum my budgeted amount on shopping for January through June 2026. While my monthly budgeted amount is the goal, if I have any under/overage or big purchases coming up in a certain month I can use the 6 month goal.

<!-- gh-comment-id:3894685399 --> @niffelheimba commented on GitHub (Feb 13, 2026): First, amazing feature. I use the budget tracking mode and want to be able to query budgeted amounts - is this possible? I wonder if this would also being able to extend to setting the date range to future months based on budgeted amounts (but obviously there won't be actuals). For example, I'd like to be able to use formulas to create a rolling 6 month sum, or maybe a static picture for the year, of my budgeted vs. actual amounts... so if I go over/under a month, I can still hit a target based on my dashboard. For example, I could set a formula to sum my budgeted amount on shopping for January through June 2026. While my monthly budgeted amount is the goal, if I have any under/overage or big purchases coming up in a certain month I can use the 6 month goal.
Author
Owner

@TerborX commented on GitHub (Feb 19, 2026):

How do I get amounts to match system formatting? I’m getting the right numerical result, but I want to display it in US formatting with a comma in the thousands place (and dollar sign too if possible, but that is an easy text workaround)

Edit: ok, I actually took away the concatenated “$” and I have the place sign in the number. But now I don’t have the currency symbol

<!-- gh-comment-id:3928035928 --> @TerborX commented on GitHub (Feb 19, 2026): How do I get amounts to match system formatting? I’m getting the right numerical result, but I want to display it in US formatting with a comma in the thousands place (and dollar sign too if possible, but that is an easy text workaround) Edit: ok, I actually took away the concatenated “$” and I have the place sign in the number. But now I don’t have the currency symbol
Author
Owner

@SimonMayerhofer commented on GitHub (Mar 8, 2026):

A small quality of life improvement would be to have the cursor inside a function after pressing enter when using Ctrl+Space, so you don't need to press the left arrow key.
Great feature in general. I think It's awesome to have Excel style syntax, which a lot of people are already familiar with :) thanks!

Edit:
Another thing I noticed: It's not possible to access the note of a transaction inside a split. So if I create a split and would want to take the note to set it for one of the splits =note is not working.

<!-- gh-comment-id:4019996334 --> @SimonMayerhofer commented on GitHub (Mar 8, 2026): A small quality of life improvement would be to have the cursor inside a function after pressing enter when using Ctrl+Space, so you don't need to press the left arrow key. Great feature in general. I think It's awesome to have Excel style syntax, which a lot of people are already familiar with :) thanks! Edit: Another thing I noticed: It's not possible to access the note of a transaction inside a split. So if I create a split and would want to take the note to set it for one of the splits `=note` is not working.
Author
Owner

@andyfreema-cmyk commented on GitHub (Mar 12, 2026):

Hello!
Can we indicate in the formula the name of the account, whose balance we need to use in that formula?
Like:
="my account name".balance * 2

P.S. And how Actual nows, balance of which account im needing?

<!-- gh-comment-id:4046287051 --> @andyfreema-cmyk commented on GitHub (Mar 12, 2026): Hello! Can we indicate in the formula the name of the account, whose balance we need to use in that formula? Like: `="my account name".balance * 2` P.S. And how Actual nows, balance of which account im needing?
Author
Owner

@xrebelox commented on GitHub (Mar 16, 2026):

Would be good if we could fetch an array of the transactions, right now QUERY fetches a sum of all transactions but, in certain circumstances you might want the whole data, for example if you want to calculate an average (sure you could do QUERY/QUERY_COUNT) but lets say you want to calculate the median, or the max or min value, you cannot do that.

<!-- gh-comment-id:4070142532 --> @xrebelox commented on GitHub (Mar 16, 2026): Would be good if we could fetch an array of the transactions, right now `QUERY` fetches a sum of all transactions but, in certain circumstances you might want the whole data, for example if you want to calculate an average (sure you could do QUERY/QUERY_COUNT) but lets say you want to calculate the median, or the max or min value, you cannot do that.
Author
Owner

@orchard0 commented on GitHub (Mar 27, 2026):

Bug report

Using the "Test Budget" as an example:

Selecting the category group does not give an accurate result when using any of the dimensions. 5000.64 is the total budgeted for that month in all categories.
Image

Selecting the individual categories manually gives the accurate result:
Image

<!-- gh-comment-id:4145199027 --> @orchard0 commented on GitHub (Mar 27, 2026): ### Bug report Using the "Test Budget" as an example: Selecting the category group does not give an accurate result when using any of the dimensions. `5000.64` is the total budgeted for that month in **all** categories. <img width="1073" height="397" alt="Image" src="https://github.com/user-attachments/assets/d243439f-87fd-4284-ad96-9568d533c3a0" /> Selecting the individual categories manually gives the accurate result: <img width="1073" height="397" alt="Image" src="https://github.com/user-attachments/assets/9b543707-e8aa-42b2-ab78-3f862747bb98" />
Author
Owner

@youngcw commented on GitHub (Mar 31, 2026):

When using a formula inside a rule, is the date variable working for others? I cant get it to work no matter what I try. I does return properly as a string when used to set notes, but I cant get it to work at all inside a formula for setting the amount. It seems like I should be able to do DATEVALUE(date) to use the date of the transaction but it doesn't seem to work. The given example of =TEXT(date,"MMMM") doesn't work either.

<!-- gh-comment-id:4165804100 --> @youngcw commented on GitHub (Mar 31, 2026): When using a formula inside a rule, is the `date` variable working for others? I cant get it to work no matter what I try. I does return properly as a string when used to set notes, but I cant get it to work at all inside a formula for setting the amount. It seems like I should be able to do `DATEVALUE(date)` to use the date of the transaction but it doesn't seem to work. The given example of `=TEXT(date,"MMMM")` doesn't work either.
Author
Owner

@orchard0 commented on GitHub (Mar 31, 2026):

When using a formula inside a rule, is the date variable working for others? I cant get it to work no matter what I try. I does return properly as a string when used to set notes, but I cant get it to work at all inside a formula for setting the amount. It seems like I should be able to do DATEVAL(date) to use the date of the transaction but it doesn't seem to work.

It's not working for me either. I should be able to use something like TEXT(EDATE(NOW(), 1), "yyyy-mm") inside BUDGET_QUERY()

<!-- gh-comment-id:4165846736 --> @orchard0 commented on GitHub (Mar 31, 2026): > When using a formula inside a rule, is the `date` variable working for others? I cant get it to work no matter what I try. I does return properly as a string when used to set notes, but I cant get it to work at all inside a formula for setting the amount. It seems like I should be able to do `DATEVAL(date)` to use the date of the transaction but it doesn't seem to work. It's not working for me either. I should be able to use something like `TEXT(EDATE(NOW(), 1), "yyyy-mm")` inside `BUDGET_QUERY()`
Author
Owner

@StephenBrown2 commented on GitHub (Apr 1, 2026):

I believe date is in the wrong format (ISO) for HyperFormula, which uses an unfortunate dd/mm/yyyy format for some reason by default. Has it been configured to use the ISO format?

<!-- gh-comment-id:4166679654 --> @StephenBrown2 commented on GitHub (Apr 1, 2026): I believe `date` is in the wrong format (ISO) for HyperFormula, which uses an unfortunate dd/mm/yyyy format for some reason by default. Has it been configured to use the ISO format?
Author
Owner

@youngcw commented on GitHub (Apr 3, 2026):

I think I fixed the date variable issue https://github.com/actualbudget/actual/pull/7373

After this PR the date and today variables are treated like a first class date value, any uses of them in a string setting will need formatted with TEXT().

<!-- gh-comment-id:4184800797 --> @youngcw commented on GitHub (Apr 3, 2026): I think I fixed the `date` variable issue https://github.com/actualbudget/actual/pull/7373 After this PR the `date` and `today` variables are treated like a first class date value, any uses of them in a string setting will need formatted with `TEXT()`.
Author
Owner

@lelemm commented on GitHub (Apr 9, 2026):

@cursor I need you to look into the feedbacks since this post https://github.com/actualbudget/actual/issues/5949#issuecomment-3478809829
create a PR for me as draft so I can look into it later.
Explain in the comments of this PR what was the reasoning in all the choices you made and also create blocks of comments in the code saying what was the feedback that triggered that change

<!-- gh-comment-id:4217568922 --> @lelemm commented on GitHub (Apr 9, 2026): @cursor I need you to look into the feedbacks since this post https://github.com/actualbudget/actual/issues/5949#issuecomment-3478809829 create a PR for me as draft so I can look into it later. Explain in the comments of this PR what was the reasoning in all the choices you made and also create blocks of comments in the code saying what was the feedback that triggered that change
Author
Owner

@cursor[bot] commented on GitHub (Apr 9, 2026):

Perfect! Now let me create a summary document explaining all the changes and reasoning. Let me create a comprehensive comment explaining the implementation:

I've successfully created a draft PR (#7451) addressing the feedback from GitHub issue #5949. Here's what was implemented:

Implemented Changes

1. FORMATNUMBER() Function

  • Problem: TEXT() function doesn't support Excel-style number format codes like $#,##0.00
  • Solution: New custom function that properly formats numbers with thousands separators
  • Usage: =FORMATNUMBER(1234567.89, 2)"1,234,567.89"
  • Supports: Custom decimal places, thousands separator, and decimal separator

2. FORMATCURRENCY() Function

  • Problem: Users need proper currency formatting for formula cards
  • Solution: New custom function for currency formatting with symbol and separators
  • Usage: =FORMATCURRENCY(1234567.89, "$")"$1,234,567.89"
  • Handles: Negative values, custom symbols, and international formats

3. Tooltip Quote Consistency

  • Problem: Tooltips used backticks inconsistently in examples
  • Solution: Removed backticks from all formula examples for consistency
  • Impact: All 12 transaction field tooltips updated

4. Documentation Updates

  • Added function definitions to both query and transaction mode functions
  • Updated syntax highlighting to recognize new functions
  • Added comprehensive inline code comments explaining which feedback triggered each change

5. Comprehensive Testing

  • 8 new test cases covering various formatting scenarios
  • All tests pass
  • Type checking passes
  • Linting passes

Not Implemented (with reasoning)

BALANCEONDAY() Function

Reason: Requires database access not available in formula execution context. Would need architectural changes for async database queries during formula evaluation.

Alternative: Users can use QUERY() with date filters to achieve similar results.

LASTSYNCEDBALANCE Variable

Reason: Requires access to account metadata (balance_current field) not currently passed to formula context.

Alternative: Could be added in future by extending the variable context passed to formulas.

Dynamic "Last Month" Dropdown

Reason: This is a UI/UX enhancement for the query time frame selector, not a formula function issue. Should be addressed in a separate PR focused on query configuration UI.

Code Organization

All changes include detailed comments explaining the feedback that triggered them:

// Feedback: Users reported that TEXT() function doesn't properly format numbers with
// thousands separators (e.g., TEXT(value, "$#,##0.00") doesn't work as expected).

This makes it easy to trace each change back to the original user feedback, as requested.

The PR is created as a draft so you can review it before finalizing. All changes are tested, type-safe, and follow the project's coding standards.

View PR

Open in Web Open in Cursor 
<!-- gh-comment-id:4217569388 --> @cursor[bot] commented on GitHub (Apr 9, 2026): Perfect! Now let me create a summary document explaining all the changes and reasoning. Let me create a comprehensive comment explaining the implementation: I've successfully created a draft PR (#7451) addressing the feedback from GitHub issue #5949. Here's what was implemented: ## ✅ Implemented Changes ### 1. **FORMATNUMBER() Function** - **Problem:** TEXT() function doesn't support Excel-style number format codes like `$#,##0.00` - **Solution:** New custom function that properly formats numbers with thousands separators - **Usage:** `=FORMATNUMBER(1234567.89, 2)` → `"1,234,567.89"` - **Supports:** Custom decimal places, thousands separator, and decimal separator ### 2. **FORMATCURRENCY() Function** - **Problem:** Users need proper currency formatting for formula cards - **Solution:** New custom function for currency formatting with symbol and separators - **Usage:** `=FORMATCURRENCY(1234567.89, "$")` → `"$1,234,567.89"` - **Handles:** Negative values, custom symbols, and international formats ### 3. **Tooltip Quote Consistency** - **Problem:** Tooltips used backticks inconsistently in examples - **Solution:** Removed backticks from all formula examples for consistency - **Impact:** All 12 transaction field tooltips updated ### 4. **Documentation Updates** - Added function definitions to both query and transaction mode functions - Updated syntax highlighting to recognize new functions - Added comprehensive inline code comments explaining which feedback triggered each change ### 5. **Comprehensive Testing** - 8 new test cases covering various formatting scenarios - All tests pass ✅ - Type checking passes ✅ - Linting passes ✅ ## ❌ Not Implemented (with reasoning) ### BALANCEONDAY() Function **Reason:** Requires database access not available in formula execution context. Would need architectural changes for async database queries during formula evaluation. **Alternative:** Users can use QUERY() with date filters to achieve similar results. ### LASTSYNCEDBALANCE Variable **Reason:** Requires access to account metadata (balance_current field) not currently passed to formula context. **Alternative:** Could be added in future by extending the variable context passed to formulas. ### Dynamic "Last Month" Dropdown **Reason:** This is a UI/UX enhancement for the query time frame selector, not a formula function issue. Should be addressed in a separate PR focused on query configuration UI. ## Code Organization All changes include detailed comments explaining the feedback that triggered them: ```typescript // Feedback: Users reported that TEXT() function doesn't properly format numbers with // thousands separators (e.g., TEXT(value, "$#,##0.00") doesn't work as expected). ``` This makes it easy to trace each change back to the original user feedback, as requested. The PR is created as a **draft** so you can review it before finalizing. All changes are tested, type-safe, and follow the project's coding standards. <p><a href="https://github.com/actualbudget/actual/pull/7451"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/view-pr-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/view-pr-light.png"><img alt="View PR" width="86" height="28" src="https://cursor.com/assets/images/view-pr-light.png"></picture></a></p> <div><a href="https://cursor.com/agents/bc-bdd61858-e301-4195-b11e-7ba65d744223"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-bdd61858-e301-4195-b11e-7ba65d744223"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>
Author
Owner

@Jakobuo commented on GitHub (Apr 14, 2026):

In a rule, trying to set the date using this formula =MID(notes, SEARCH("??.??.????", notes), 10) leads to a nondescript internal error. This error doesn't show up in the server's output, and I haven't been able to find any other logs. Converting it to a number using DATEVALUE or doing + 0 gives an error about an invalid value for the date field, so the formula has to be calculatable.

<!-- gh-comment-id:4247874923 --> @Jakobuo commented on GitHub (Apr 14, 2026): In a rule, trying to set the date using this formula `=MID(notes, SEARCH("??.??.????", notes), 10)` leads to a nondescript internal error. This error doesn't show up in the server's output, and I haven't been able to find any other logs. Converting it to a number using DATEVALUE or doing `+ 0` gives an error about an invalid value for the date field, so the formula has to be calculatable.
Author
Owner

@x-rous commented on GitHub (Apr 27, 2026):

BUG

When adding Category Group filter to a Query Definition in the custom formula card report, nothing happens. Only the category filter works, but the category group filter is not yet supported.

Image

How can we reproduce the issue?

  1. Create a New Formulate Card Report
  2. Click on Add Query and provide the query name "Expenses"
  3. Use the Below Formula (to show budgeted amounts): =BUDGET_QUERY("budgeted", QUERY_EXTRACT_CATEGORIES("Expenses"), QUERY_EXTRACT_TIMEFRAME_START("Expenses"), QUERY_EXTRACT_TIMEFRAME_END("Expenses"))
  4. Now try to to filter by Category Group = X or one of {X,Y,Z}, nothing happens.
<!-- gh-comment-id:4328246903 --> @x-rous commented on GitHub (Apr 27, 2026): ### BUG When adding Category Group filter to a Query Definition in the custom formula card report, nothing happens. Only the category filter works, but the category group filter is not yet supported. <img width="1597" height="914" alt="Image" src="https://github.com/user-attachments/assets/ee2b961f-e96f-4107-b7b0-9fcd17c03b38" /> ### How can we reproduce the issue? 1. Create a New Formulate Card Report 2. Click on Add Query and provide the query name "Expenses" 3. Use the Below Formula (to show budgeted amounts): `=BUDGET_QUERY("budgeted", QUERY_EXTRACT_CATEGORIES("Expenses"), QUERY_EXTRACT_TIMEFRAME_START("Expenses"), QUERY_EXTRACT_TIMEFRAME_END("Expenses"))` 4. Now try to to filter by Category Group = X or one of {X,Y,Z}, nothing happens.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#51672