---
title: Release 25.2.0
description: New release of Actual.
date: 2025-02-05T10:00
slug: release-25.2.0
tags: [announcement, release]
hide_table_of_contents: false
authors: jfdoming
---

The release has the following notable improvements:

- Upcoming schedule length officially released as first-party feature
- Ability to switch the interface language, with experimental support for the `nl`, `pt-BR`, `uk`, and `en-GB` locales
- Ability to disable category learning
- Combined account view on mobile

<!--truncate-->

**Docker tag: 25.2.0**

## Actual

#### Features

- [#4112](https://github.com/actualbudget/actual/pull/4112) Add language setting — thanks @jfdoming
- [#4141](https://github.com/actualbudget/actual/pull/4141) Add sorting options to custom reports — thanks @matt-fidd
- [#4173](https://github.com/actualbudget/actual/pull/4173) Release schedule upcoming length adjustment — thanks @matt-fidd
- [#4206](https://github.com/actualbudget/actual/pull/4206) Add option for custom upcoming length — thanks @SamBobBarnes

#### Enhancements

- [#3734](https://github.com/actualbudget/actual/pull/3734) Add navigation to combined-accounts transactions lists from the accounts page on mobile. — thanks @GabeKlavans
- [#3805](https://github.com/actualbudget/actual/pull/3805) Enables rule activation from the account view via dropdown menu or by pressing 'R' — thanks @esseti
- [#4019](https://github.com/actualbudget/actual/pull/4019) Add "Year to date" and "Last year" to reports header. — thanks @rodriguestiago0
- [#4032](https://github.com/actualbudget/actual/pull/4032) Allow note prefixes in budget templates. — thanks @UnderKoen
- [#4072](https://github.com/actualbudget/actual/pull/4072) Sort bar chart data — thanks @matt-fidd
- [#4081](https://github.com/actualbudget/actual/pull/4081) Added ability to control category learning per payee and globally — thanks @NullScope
- [#4089](https://github.com/actualbudget/actual/pull/4089) Include translations in builds — thanks @jfdoming
- [#4096](https://github.com/actualbudget/actual/pull/4096) Add Copy last 6/12 months to budget menu. — thanks @psybers
- [#4097](https://github.com/actualbudget/actual/pull/4097) Do not show undo/redo notifications on desktop. — thanks @psybers
- [#4129](https://github.com/actualbudget/actual/pull/4129) Add ability to provide default cleared status in the API and skip updating the cleared status on subsequent imports. — thanks @NikxDa
- [#4159](https://github.com/actualbudget/actual/pull/4159) Display transaction notes on mobile, fixes #1764 — thanks @DarkWolfSLV
- [#4164](https://github.com/actualbudget/actual/pull/4164) Move upcoming schedule length setting — thanks @matt-fidd
- [#4166](https://github.com/actualbudget/actual/pull/4166) Show all occurrences of upcoming schedules within the upcoming period — thanks @matt-fidd
- [#4168](https://github.com/actualbudget/actual/pull/4168) Improve one month schedule upcoming length and introduce current month option — thanks @matt-fidd
- [#4180](https://github.com/actualbudget/actual/pull/4180) Add option to complete non-recurring schedules from transaction menu — thanks @matt-fidd
- [#4181](https://github.com/actualbudget/actual/pull/4181) [Mobile] Show undo notification when updating category budget. — thanks @joel-jeremy
- [#4216](https://github.com/actualbudget/actual/pull/4216) Extend "fix splits" to also fix transfers that have categories and should not. — thanks @youngcw & @UnderKoen
- [#4243](https://github.com/actualbudget/actual/pull/4243) Add new helpers to rule action templating — thanks @UnderKoen
- [#4276](https://github.com/actualbudget/actual/pull/4276) Show sorting of reports on the dashboard — thanks @UnderKoen

#### Bugfix

- [#3998](https://github.com/actualbudget/actual/pull/3998) Usage of notes is (nothing) on new transactions — thanks @UnderKoen
- [#4033](https://github.com/actualbudget/actual/pull/4033) Change net bar graph to show actual net values — thanks @UnderKoen
- [#4051](https://github.com/actualbudget/actual/pull/4051) Fixing report crash when filters have an "any" clause selected and all conditions are deleted. — thanks @douugdev
- [#4075](https://github.com/actualbudget/actual/pull/4075) Fix to ensure that the toolbar's server status updates correctly during synchronization — thanks @p-payet
- [#4099](https://github.com/actualbudget/actual/pull/4099) Fix resulting wrong name when creating a new payee in rule with the condition set to "one of" — thanks @sveselinovic
- [#4120](https://github.com/actualbudget/actual/pull/4120) Fixed stacked templates with priorities — thanks @youngcw
- [#4130](https://github.com/actualbudget/actual/pull/4130) Fix translations missing from preview deploys — thanks @jfdoming
- [#4149](https://github.com/actualbudget/actual/pull/4149) Fix string upload if new changes are present — thanks @jfdoming
- [#4151](https://github.com/actualbudget/actual/pull/4151) Remove code injection in /update-vrt workflow — thanks @UnderKoen
- [#4161](https://github.com/actualbudget/actual/pull/4161) Fix payees autocomplete not reflecting new name of a renamed account (under the Transfer To/From section) — thanks @joel-jeremy
- [#4162](https://github.com/actualbudget/actual/pull/4162) Fix inconsistent legend coloring in custom reports — thanks @matt-fidd
- [#4167](https://github.com/actualbudget/actual/pull/4167) Improve translation string punctuation in reports — thanks @jfdoming
- [#4171](https://github.com/actualbudget/actual/pull/4171) Fix schedule actions not applying and schedules paid today not showing — thanks @matt-fidd
- [#4175](https://github.com/actualbudget/actual/pull/4175) Add a missing space between the category name and "is" in the category deletion popup. — thanks @sampellino
- [#4182](https://github.com/actualbudget/actual/pull/4182) Fix amount input requiring two clicks on safari mobile — thanks @MatissJanis
- [#4185](https://github.com/actualbudget/actual/pull/4185) Fix i18n language fallback for regional languages — thanks @jfdoming
- [#4186](https://github.com/actualbudget/actual/pull/4186) Fix various split transaction edits not working — thanks @jfdoming
- [#4188](https://github.com/actualbudget/actual/pull/4188) Fix paid schedules showing as upcoming in the account — thanks @matt-fidd
- [#4190](https://github.com/actualbudget/actual/pull/4190) Fix rounding of split rules — thanks @jfdoming
- [#4194](https://github.com/actualbudget/actual/pull/4194) Fix Spending Report category filters when comparing to Budgeted — thanks @CertifiKate
- [#4195](https://github.com/actualbudget/actual/pull/4195) Fix schedule bug crashing API — thanks @matt-fidd
- [#4196](https://github.com/actualbudget/actual/pull/4196) Fix app hanging when schedule moved before weekend — thanks @matt-fidd
- [#4199](https://github.com/actualbudget/actual/pull/4199) Fix upcomingLength type mismatch in getStatus — thanks @SamBobBarnes
- [#4200](https://github.com/actualbudget/actual/pull/4200) Fix FocusableAmountInput's onUpdate to only fire when amount was updated — thanks @joel-jeremy
- [#4222](https://github.com/actualbudget/actual/pull/4222) Fix notifications when applying to a single category — thanks @youngcw
- [#4225](https://github.com/actualbudget/actual/pull/4225) Fix persistent split error popover — thanks @matt-fidd
- [#4246](https://github.com/actualbudget/actual/pull/4246) Hide to budget tooltip when menu is open — thanks @UnderKoen
- [#4255](https://github.com/actualbudget/actual/pull/4255) Allow child transactions to have different transfer payees — thanks @jfdoming
- [#4256](https://github.com/actualbudget/actual/pull/4256) Fix first occurrence of some schedules moved after the weekend not showing in preview — thanks @matt-fidd
- [#4265](https://github.com/actualbudget/actual/pull/4265) Fix schedule templates sometimes budgeting wrong amounts — thanks @youngcw
- [#4266](https://github.com/actualbudget/actual/pull/4266) Make password login page more mobile responsive — thanks @matt-fidd

#### Maintenance

- [#3583](https://github.com/actualbudget/actual/pull/3583) Mobile budget menu modal e2e tests — thanks @joel-jeremy
- [#3964](https://github.com/actualbudget/actual/pull/3964) TypeScript: move ScheduleDetails to tsx. — thanks @MatissJanis
- [#3993](https://github.com/actualbudget/actual/pull/3993) Migrate to ESLint v9 — thanks @matt-fidd
- [#4000](https://github.com/actualbudget/actual/pull/4000) Phase 1 - Migrate to modern redux toolkit APIs — thanks @joel-jeremy
- [#4012](https://github.com/actualbudget/actual/pull/4012) Phase 2 - Redux Toolkit Migration - accounts slice — thanks @joel-jeremy
- [#4016](https://github.com/actualbudget/actual/pull/4016) Phase 2 - Redux Toolkit Migration - queries slice — thanks @joel-jeremy
- [#4018](https://github.com/actualbudget/actual/pull/4018) Phase 2 - Redux Toolkit Migration - app slice — thanks @joel-jeremy
- [#4041](https://github.com/actualbudget/actual/pull/4041) Improve translation strings and update some wording — thanks @matt-fidd
- [#4047](https://github.com/actualbudget/actual/pull/4047) TypeScript: Refactor Accounts/Balances to tsx and Remove ts-strict-ignore from Accounts/Account — thanks @tlesicka
- [#4061](https://github.com/actualbudget/actual/pull/4061) Refactoring the mobile TransactionListWithBalance component into typescript — thanks @leoltl
- [#4063](https://github.com/actualbudget/actual/pull/4063) Refactoring the mobile TransactionList component to typescript — thanks @leoltl
- [#4083](https://github.com/actualbudget/actual/pull/4083) Remove unused `report` prop from `Link` component. — thanks @MatissJanis
- [#4085](https://github.com/actualbudget/actual/pull/4085) Remove unused `permission` prop from `Button` component. — thanks @MatissJanis
- [#4086](https://github.com/actualbudget/actual/pull/4086) Refactor `theme` variable to be statically defined. — thanks @MatisJanis
- [#4105](https://github.com/actualbudget/actual/pull/4105) Mark releases as draft by default — thanks @jfdoming
- [#4108](https://github.com/actualbudget/actual/pull/4108) TypeScript: ported transactions-table tests to TS. — thanks @MatissJanis
- [#4110](https://github.com/actualbudget/actual/pull/4110) Add types to loot-core server events. — thanks @joel-jeremy
- [#4123](https://github.com/actualbudget/actual/pull/4123) Add eslint rule for useDispatch and useSelector — thanks @joel-jeremy
- [#4124](https://github.com/actualbudget/actual/pull/4124) [Address suppressed ESLint errors] Fix exhaustive deps errors in App.tsx — thanks @joel-jeremy
- [#4144](https://github.com/actualbudget/actual/pull/4144) Update issue template with translation issue type — thanks @jfdoming
- [#4146](https://github.com/actualbudget/actual/pull/4146) Fix `send` types in a number of places (1/2) — thanks @jfdoming
- [#4147](https://github.com/actualbudget/actual/pull/4147) Fix `send` types in a number of places (2/2) — thanks @jfdoming
- [#4148](https://github.com/actualbudget/actual/pull/4148) Exclude untranslated languages from builds — thanks @jfdoming
- [#4154](https://github.com/actualbudget/actual/pull/4154) Improve translation strings and update some wording — thanks @matt-fidd
- [#4155](https://github.com/actualbudget/actual/pull/4155) Add types to loot-core app — thanks @joel-jeremy
- [#4160](https://github.com/actualbudget/actual/pull/4160) Updating linting rules and disabling yarn TransparentWorkspaces in prep for merging actual-server into actual repository — thanks @MikesGlitch
- [#4163](https://github.com/actualbudget/actual/pull/4163) Change TS `moduleResolution` to `bundler` and patch `CSSProperties` imports. — thanks @MatissJanis
- [#4179](https://github.com/actualbudget/actual/pull/4179) Remove unnecessary dispatch calls that are already being handled by shared-listeners.ts — thanks @joel-jeremy
- [#4183](https://github.com/actualbudget/actual/pull/4183) Do not check if active version is outdated for preview builds. — thanks @MatissJanis
- [#4184](https://github.com/actualbudget/actual/pull/4184) Patch lint issues in master branch. — thanks @MatissJanis
- [#4187](https://github.com/actualbudget/actual/pull/4187) Ensure 'GitHub' name is used correctly across the project, following the official style. — thanks @xthiago
- [#4189](https://github.com/actualbudget/actual/pull/4189) Make `Account.tsx` compatible with `exactOptionalPropertyTypes` — thanks @jfdoming
- [#4191](https://github.com/actualbudget/actual/pull/4191) Use `'cimode'` as default language in tests — thanks @jfdoming
- [#4207](https://github.com/actualbudget/actual/pull/4207) Add type to the amount utils to clarify the difference between amount, integer amount, and currency. — thanks @joel-jeremy
- [#4208](https://github.com/actualbudget/actual/pull/4208) [Typescript] Update validateBudgetName and uniqueBudgetName return types — thanks @joel-jeremy
- [#4217](https://github.com/actualbudget/actual/pull/4217) Convert playwright tests to TypeScript. — thanks @joel-jeremy
- [#4232](https://github.com/actualbudget/actual/pull/4232) Keep all English translations regardless of translated percentage — thanks @matt-fidd

## Actual Server

#### Features

- [#550](https://github.com/actualbudget/actual-server/pull/550) Add support for `ABANCA_CORP_CAGLPTPL` payee name — thanks @sergiofmreis

#### Enhancements

- [#531](https://github.com/actualbudget/actual-server/pull/531) Add GoCardless formatter for `SSK_DUSSELDORF_DUSSDEDDXXX` Stadtsparkasse Düsseldorf (Germany) — thanks @DennaGherlyn
- [#534](https://github.com/actualbudget/actual-server/pull/534) Make Google Pay transactions work for `ABNAMRO_ABNANL2A` — thanks @UnderKoen
- [#537](https://github.com/actualbudget/actual-server/pull/537) Add GoCardless integration for `COMMERZBANK_COBADEFF` — thanks @nsulzer
- [#539](https://github.com/actualbudget/actual-server/pull/539) Add GoCardless formatter for `BANK_OF_IRELAND_B365_BOFIIE2D` Bank of Ireland. — thanks @MatissJanis
- [#542](https://github.com/actualbudget/actual-server/pull/542) Add GoCardless formatter for LHV Estonia (`LHV_LHVBEE22`). — thanks @lnagel
- [#546](https://github.com/actualbudget/actual-server/pull/546) Add health check section to the existing `docker-compose.yml` file. — thanks @Knocks83
- [#547](https://github.com/actualbudget/actual-server/pull/547) Add "Caixa Geral De Depositos" PT to banks with limited history — thanks @ihhha
- [#551](https://github.com/actualbudget/actual-server/pull/551) Use the maximum access validity time provided by GoCardless — thanks @matt-fidd
- [#553](https://github.com/actualbudget/actual-server/pull/553) Remove non-booked transactions from import of `SSK_DUSSELDORF_DUSSDEDDXXX` due to placeholder text in the payee and notes field — thanks @DennaGherlyn
- [#554](https://github.com/actualbudget/actual-server/pull/554) Add handler for `DIREKT_HELADEF1822` — thanks @matt-fidd

#### Bugfix

- [#499](https://github.com/actualbudget/actual-server/pull/499) Fix the auth proxy trust by ensuring the proxy is in the trust — thanks @twk3
- [#533](https://github.com/actualbudget/actual-server/pull/533) Fixed issue when no payee name is given for KBC transaction — thanks @robxgd
- [#535](https://github.com/actualbudget/actual-server/pull/535) Add corner case transaction for ING Bank Romania — thanks @spideraxal

#### Maintenance

- [#538](https://github.com/actualbudget/actual-server/pull/538) Fix WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match in Dockerfiles — thanks @lnagel
- [#541](https://github.com/actualbudget/actual-server/pull/541) Standardize GoCardless bank handlers — thanks @matt-fidd
