diff --git a/app/views/loans/_form.html.erb b/app/views/loans/_form.html.erb
index bfadda90cf6..bceee9688ce 100644
--- a/app/views/loans/_form.html.erb
+++ b/app/views/loans/_form.html.erb
@@ -10,7 +10,7 @@
label: t("loans.form.interest_rate"),
placeholder: t("loans.form.interest_rate_placeholder"),
min: 0,
- step: 0.01 %>
+ step: 0.005 %>
<%= loan_form.select :rate_type,
[["Fixed", "fixed"], ["Variable", "variable"], ["Adjustable", "adjustable"]],
{ label: t("loans.form.rate_type") } %>
diff --git a/db/migrate/20241122183828_change_loan_interest_rate_precision.rb.rb b/db/migrate/20241122183828_change_loan_interest_rate_precision.rb.rb
new file mode 100644
index 00000000000..45a5d59ef30
--- /dev/null
+++ b/db/migrate/20241122183828_change_loan_interest_rate_precision.rb.rb
@@ -0,0 +1,5 @@
+class ChangeLoanInterestRatePrecision < ActiveRecord::Migration[7.2]
+ def change
+ change_column :loans, :interest_rate, :decimal, precision: 10, scale: 3
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index fa9dea5a05f..e662e3beda3 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[7.2].define(version: 2024_11_14_164118) do
+ActiveRecord::Schema[7.2].define(version: 2024_11_22_183828) do
# These are extensions that must be enabled in order to support this database
enable_extension "pgcrypto"
enable_extension "plpgsql"
@@ -107,7 +107,7 @@
t.decimal "balance", precision: 19, scale: 4
t.string "currency"
t.boolean "is_active", default: true, null: false
- t.virtual "classification", type: :string, as: "\nCASE\n WHEN ((accountable_type)::text = ANY ((ARRAY['Loan'::character varying, 'CreditCard'::character varying, 'OtherLiability'::character varying])::text[])) THEN 'liability'::text\n ELSE 'asset'::text\nEND", stored: true
+ t.virtual "classification", type: :string, as: "\nCASE\n WHEN ((accountable_type)::text = ANY (ARRAY[('Loan'::character varying)::text, ('CreditCard'::character varying)::text, ('OtherLiability'::character varying)::text])) THEN 'liability'::text\n ELSE 'asset'::text\nEND", stored: true
t.uuid "import_id"
t.uuid "plaid_account_id"
t.boolean "scheduled_for_deletion", default: false
@@ -439,7 +439,7 @@
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "rate_type"
- t.decimal "interest_rate", precision: 10, scale: 2
+ t.decimal "interest_rate", precision: 10, scale: 3
t.integer "term_months"
end