diff --git a/src/lib/components/parameters/BracketEdit.svelte b/src/lib/components/parameters/BracketEdit.svelte
index fec6bc2d256ade926f3a2c222c44cf7786f65462..1162cce5873968a644b689dfae286e0fef4028ec 100644
--- a/src/lib/components/parameters/BracketEdit.svelte
+++ b/src/lib/components/parameters/BracketEdit.svelte
@@ -1,7 +1,9 @@
 <script lang="ts">
   import { createEventDispatcher } from "svelte"
 
-  export let bracket: { [threshold: string]: number | null } | undefined | null
+  import type { Bracket } from "$lib/parameters"
+
+  export let bracket: Bracket | undefined | null
 
   const dispatch = createEventDispatcher()
 
diff --git a/src/lib/components/variables/VariableReferredParameter.svelte b/src/lib/components/variables/VariableReferredParameter.svelte
index a136aa4cddf551171435d6b976aa7a200b5df2d0..2d5bb6f39f17d087e3385eb81bbc062a10f285a7 100644
--- a/src/lib/components/variables/VariableReferredParameter.svelte
+++ b/src/lib/components/variables/VariableReferredParameter.svelte
@@ -3,7 +3,8 @@
   import type { Writable } from "svelte/store"
 
   import type { Parameter } from "$lib/parameters"
-  import type { Reform } from "$lib/reforms"
+  import type { Reform, ReformChangeParameter } from "$lib/reforms"
+  import { ReformChangeType } from "$lib/reforms"
 
   import VariableReferredParameterHeader from "./VariableReferredParameterHeader.svelte"
 
@@ -18,7 +19,7 @@
   ) as Writable<boolean>
   let validValue = undefined
 
-  $: change = $reform[parameter.name]
+  $: change = $reform[parameter.name] as ReformChangeParameter | undefined
 
   $: latestValue = parameter.values?.[0]
 
@@ -40,6 +41,7 @@
         ...$reform,
         [parameter.name]: {
           start,
+          type: ReformChangeType.Parameter,
           value,
         },
       }
diff --git a/src/lib/components/variables/VariableReferredScale.svelte b/src/lib/components/variables/VariableReferredScale.svelte
index bec1cf73ff328ec1e43991844c944034a56edf4f..25c9b2212e5f1b52afbfd96e5a3764ff9bcef926 100644
--- a/src/lib/components/variables/VariableReferredScale.svelte
+++ b/src/lib/components/variables/VariableReferredScale.svelte
@@ -3,8 +3,9 @@
   import type { Writable } from "svelte/store"
 
   import BracketEdit from "$lib/components/parameters/BracketEdit.svelte"
-  import type { Scale } from "$lib/parameters"
-  import type { Reform } from "$lib/reforms"
+  import type { Bracket, Scale } from "$lib/parameters"
+  import type { Reform, ReformChangeScale } from "$lib/reforms"
+  import { ReformChangeType } from "$lib/reforms"
 
   import VariableReferredParameterHeader from "./VariableReferredParameterHeader.svelte"
 
@@ -22,6 +23,8 @@
     parameter.brackets,
   ).sort(([instant1], [instant2]) => instant2.localeCompare(instant1))
 
+  $: change = $reform[parameter.name] as ReformChangeScale | undefined
+
   $: latestInstantAndBracket = bracketsArray[0]
 
   $: latestBracket = latestInstantAndBracket[1]
@@ -30,22 +33,26 @@
 
   $: latestInstantSplit = latestInstant.split("-")
 
-  function changeBracket({ detail: bracket }) {
+  function changeBracket({ detail: bracket }: { detail: Bracket }) {
     updateReform(`${date.split("-")[0]}-01-01`, bracket)
   }
 
-  function updateReform(start: string, value) {
-    // TODO
-    // if (start !== undefined && value !== undefined) {
-    //   $reform = {
-    //     ...$reform,
-    //     [parameter.name]: {
-    //       start,
-    //       value,
-    //     },
-    //   }
-    //   $simulationRequested = true
-    // }
+  function updateReform(start: string, bracket: Bracket) {
+    if (
+      start !== undefined &&
+      bracket !== undefined &&
+      Object.keys(bracket).length > 0
+    ) {
+      $reform = {
+        ...$reform,
+        [parameter.name]: {
+          bracket,
+          start,
+          type: ReformChangeType.Scale,
+        },
+      }
+      $simulationRequested = true
+    }
   }
 </script>
 
diff --git a/src/lib/parameters.ts b/src/lib/parameters.ts
index ad6318389dff7caeda365d323a29dc7fac7edd12..0fdc1b72c555ab85b97574ee3dd545343ab4c3e2 100644
--- a/src/lib/parameters.ts
+++ b/src/lib/parameters.ts
@@ -1,5 +1,7 @@
 export type AnyParameter = Parameter | ParameterNode | Scale
 
+export type Bracket = { [threshold: string]: number | null }
+
 export interface Parameter extends ParameterBase {
   class: ParameterClass.Parameter
   values: ParameterAtInstant[]
@@ -45,7 +47,7 @@ export interface ParameterWithAncestors {
 }
 
 export interface Scale extends ParameterBase {
-  brackets: { [instant: string]: { [threshold: string]: number | null } | null }
+  brackets: { [instant: string]: Bracket | null }
   class: ParameterClass.Scale
   rate_unit?: Unit.Rate
   threshold_unit?: Unit.Currency
diff --git a/src/lib/reforms.ts b/src/lib/reforms.ts
index 10868582e31995f1518e22ab6d10c6b4f9c5412c..1bfa78e91ac1ad751c44450e6f1e56fa3b99c039 100644
--- a/src/lib/reforms.ts
+++ b/src/lib/reforms.ts
@@ -1,9 +1,28 @@
-export interface ReformChange {
+import type { Bracket } from "./parameters"
+
+export interface Reform {
+  [parameterName: string]: ReformChange
+}
+
+type ReformChange = ReformChangeParameter | ReformChangeScale
+
+export interface ReformChangeBase {
   start: string
   stop?: string
+  type: ReformChangeType
+}
+
+export interface ReformChangeParameter extends ReformChangeBase {
+  type: ReformChangeType.Parameter
   value: number
 }
 
-export interface Reform {
-  [parameterName: string]: ReformChange
+export interface ReformChangeScale extends ReformChangeBase {
+  type: ReformChangeType.Scale
+  bracket: Bracket
+}
+
+export enum ReformChangeType {
+  Parameter = "parameter",
+  Scale = "scale",
 }