diff --git a/i18n/grid-failure.de.json b/i18n/grid-failure.de.json
index b22ba11..d9cfdae 100644
--- a/i18n/grid-failure.de.json
+++ b/i18n/grid-failure.de.json
@@ -18,6 +18,7 @@
     "BranchColorCode": "Farbe der Sparte",
     "City": "Ort (betroffene Orte)",
     "District": "Ortsteil",
+    "ExpectedReason": "Voraussichtlicher Grund",
     "FailureBegin": "Störungsbeginn (gemeldet)",
     "FailureClassification": "Klassifikation",
     "FailureEndPlanned": "Störungsende (geplant)",
@@ -28,7 +29,6 @@
     "InternalRemark": "Interne Bemerkungen",
     "Postcode": "Postleitzahl",
     "PressureLevel": "Druckstufe",
-    "ProbableReason": "Voraussichtlicher Grund",
     "Radius": "Radius",
     "Responsibility": "Zuständigkeit",
     "StationDescription": "Bezeichnung",
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-api-client.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-api-client.ts
index 1b4d1a8..e1df839 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-api-client.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-api-client.ts
@@ -20,7 +20,7 @@
   FailureClassification,
   FailureType,
   FailureState,
-  FailurePublicationText,
+  FailureExpectedReason,
   FailureRadius,
 } from '@grid-failure-information-app/shared/models';
 import { POST } from '@grid-failure-information-app/shared/async-services/http';
@@ -97,9 +97,9 @@
     return null;
   }
 
-  @GET('/publication-texts')
+  @GET('/expected-reasons')
   @Adapter(GridFailureService.publicationTextListAdapter)
-  public getGridFailurePublicationTexts(): Observable<FailurePublicationText[]> {
+  public getGridFailurePublicationTexts(): Observable<FailureExpectedReason[]> {
     return null;
   }
 }
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.html b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.html
index 4663368..23e96d8 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.html
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.component.html
@@ -310,15 +310,16 @@
               </div>
             </div>
 
-            <!-- probableReason -->
+            <!-- expectedReason -->
             <div class="form-group row">
-              <label for="probableReason" class="col-sm-2 col-form-label">{{ 'GridFailure.ProbableReason' | translate }}</label>
+              <label for="expectedReason" class="col-sm-2 col-form-label">{{ 'GridFailure.ExpectedReason' | translate }}</label>
               <div class="col-sm-4">
                 <select
                   required
                   type="text"
                   class="form-control"
-                  [ngrxFormControlState]="((gridFailureDetailsSandbox.gridFailureDetailsFormState$ | async)?.controls)['publicationTextId']"
+                  id="expectedReason"
+                  [ngrxFormControlState]="((gridFailureDetailsSandbox.gridFailureDetailsFormState$ | async)?.controls)['expectedReasonId']"
                 >
                   <option [value]="null" selected disabled>{{ 'SelectOption' | translate }}</option>
                   <option *ngFor="let item of gridFailureDetailsSandbox.gridFailurePublicationTexts$ | async" [value]="item.id">{{ item.text }}</option>
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.spec.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.spec.ts
index e5f1f2b..e284873 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.spec.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.spec.ts
@@ -76,7 +76,7 @@
 
   it('should dispatch loadGridFailurePublicationTexts Action via loadGridFailurePublicationTexts()', () => {
     service.loadGridFailurePublicationTexts();
-    expect(appState.dispatch).toHaveBeenCalledWith(gridFailureActions.loadGridFailurePublicationTexts());
+    expect(appState.dispatch).toHaveBeenCalledWith(gridFailureActions.loadGridFailureExpectedReasons());
   });
 
   it('should dispatch loadGridFailureVersions Action via loadGridFailureVersions(id)', () => {
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.ts
index 1a22b17..4df3771 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-details/grid-failure-details.sandbox.ts
@@ -27,7 +27,7 @@
   FailureBranch,
   FailureState,
   FailureRadius,
-  FailurePublicationText,
+  FailureExpectedReason,
 } from '@grid-failure-information-app/shared/models';
 import { BaseFormSandbox } from '@grid-failure-information-app/shared/sandbox/base-form.sandbox';
 import * as store from '@grid-failure-information-app/shared/store';
@@ -58,7 +58,7 @@
     .select(store.getGridFailureStatesData)
     .pipe(map(states => states.filter(item => item.external)));
   public gridFailureRadii$: Observable<FailureRadius[]> = this.appState$.select(store.getGridFailureRadiiData);
-  public gridFailurePublicationTexts$: Observable<FailurePublicationText[]> = this.appState$.select(store.getGridFailurePublicationTextsData);
+  public gridFailurePublicationTexts$: Observable<FailureExpectedReason[]> = this.appState$.select(store.getGridFailurePublicationTextsData);
   public datePickerResetEnum = DatePickerResetEnum;
   public voltageLevelEnum = VoltageLevelEnum;
   public pressureLevelEnum = PressureLevelEnum;
@@ -106,7 +106,7 @@
   }
 
   public loadGridFailurePublicationTexts(): void {
-    this.appState$.dispatch(gridFailureActions.loadGridFailurePublicationTexts());
+    this.appState$.dispatch(gridFailureActions.loadGridFailureExpectedReasons());
   }
 
   public loadGridFailureVersions(gridFailureId: string): void {
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list-column-definition.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list-column-definition.ts
index 40797b4..d358a9e 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list-column-definition.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure-list/grid-failure-list-column-definition.ts
@@ -140,8 +140,8 @@
     },
   },
   {
-    field: 'publicationText',
-    headerName: 'GridFailure.ProbableReason',
+    field: 'expectedReasonText',
+    headerName: 'GridFailure.ExpectedReason',
     sortable: true,
     filter: 'setFilterComponent',
   },
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.service.spec.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.service.spec.ts
index 282ddb1..c83e1af 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.service.spec.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.service.spec.ts
@@ -17,7 +17,7 @@
   FailureType,
   FailureState,
   FailureRadius,
-  FailurePublicationText,
+  FailureExpectedReason,
 } from '@grid-failure-information-app/shared/models';
 import { GridFailureService } from '@grid-failure-information-app/pages/grid-failure/grid-failure.service';
 
@@ -74,7 +74,7 @@
   });
 
   it('should transform publication texts api response', () => {
-    const response = [new FailurePublicationText()];
+    const response = [new FailureExpectedReason()];
     response[0].id = 'X';
 
     expect(GridFailureService.publicationTextListAdapter(response)[0].id).toBe('X');
diff --git a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.service.ts b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.service.ts
index 3224ead..09794b7 100644
--- a/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.service.ts
+++ b/projects/grid-failure-information-app/src/app/pages/grid-failure/grid-failure.service.ts
@@ -18,7 +18,7 @@
   FailureType,
   FailureState,
   FailureRadius,
-  FailurePublicationText,
+  FailureExpectedReason,
 } from '@grid-failure-information-app/shared/models';
 
 @Injectable()
@@ -51,7 +51,7 @@
     return response.map(responseItem => new FailureRadius(responseItem));
   }
 
-  static publicationTextListAdapter(response: any): Array<FailurePublicationText> {
-    return response.map(responseItem => new FailurePublicationText(responseItem));
+  static publicationTextListAdapter(response: any): Array<FailureExpectedReason> {
+    return response.map(responseItem => new FailureExpectedReason(responseItem));
   }
 }
diff --git a/projects/grid-failure-information-app/src/app/shared/models/failure-publication-text.model.ts b/projects/grid-failure-information-app/src/app/shared/models/failure-expected-reason.model.ts
similarity index 95%
rename from projects/grid-failure-information-app/src/app/shared/models/failure-publication-text.model.ts
rename to projects/grid-failure-information-app/src/app/shared/models/failure-expected-reason.model.ts
index 226ae03..976d574 100644
--- a/projects/grid-failure-information-app/src/app/shared/models/failure-publication-text.model.ts
+++ b/projects/grid-failure-information-app/src/app/shared/models/failure-expected-reason.model.ts
@@ -10,7 +10,7 @@
  *
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
-export class FailurePublicationText {
+export class FailureExpectedReason {
   public id: string = null;
   public text: string = null;
   public description: string = null;
diff --git a/projects/grid-failure-information-app/src/app/shared/models/grid-failure.model.ts b/projects/grid-failure-information-app/src/app/shared/models/grid-failure.model.ts
index 7cd9ab1..cfef922 100644
--- a/projects/grid-failure-information-app/src/app/shared/models/grid-failure.model.ts
+++ b/projects/grid-failure-information-app/src/app/shared/models/grid-failure.model.ts
@@ -47,8 +47,8 @@
   public objectReferenceExternalSystem: string = null;
   public publicationStatus: string = null;
   public publicationFreetext: string = null;
-  public publicationText: string = null;
-  public publicationTextId: string = null;
+  public expectedReasonText: string = null;
+  public expectedReasonId: string = null;
   public longitude: number = null;
   public latitude: number = null;
   public versionNumber: number = 0;
diff --git a/projects/grid-failure-information-app/src/app/shared/models/index.ts b/projects/grid-failure-information-app/src/app/shared/models/index.ts
index 2630c9a..f8e95ba 100644
--- a/projects/grid-failure-information-app/src/app/shared/models/index.ts
+++ b/projects/grid-failure-information-app/src/app/shared/models/index.ts
@@ -17,4 +17,4 @@
 export * from './failure-type.model';
 export * from './failure-state.model';
 export * from './failure-radius.model';
-export * from './failure-publication-text.model';
+export * from './failure-expected-reason.model';
diff --git a/projects/grid-failure-information-app/src/app/shared/store/actions/grid-failures.action.ts b/projects/grid-failure-information-app/src/app/shared/store/actions/grid-failures.action.ts
index 0d3875a..65cc525 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/actions/grid-failures.action.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/actions/grid-failures.action.ts
@@ -18,7 +18,7 @@
   FailureType,
   FailureState,
   FailureRadius,
-  FailurePublicationText,
+  FailureExpectedReason,
 } from '@grid-failure-information-app/shared/models';
 
 export interface ILoadGridFailuresSuccess {
@@ -75,9 +75,9 @@
 export const loadGridFailureRadiiSuccess = createAction('[GridFailureRadii] Load Success', props<{ payload: Array<FailureRadius> }>());
 export const loadGridFailureRadiiFail = createAction('[GridFailureRadii] Load Fail', props<{ payload: string }>());
 
-export const loadGridFailurePublicationTexts = createAction('[GridFailurePublicationTexts] Load');
-export const loadGridFailurePublicationTextsSuccess = createAction(
-  '[GridFailurePublicationTexts] Load Success',
-  props<{ payload: Array<FailurePublicationText> }>()
+export const loadGridFailureExpectedReasons = createAction('[GridFailureFailureExpectedReasons] Load');
+export const loadGridFailureExpectedReasonsSuccess = createAction(
+  '[[GridFailureFailureExpectedReasons] Load Success',
+  props<{ payload: Array<FailureExpectedReason> }>()
 );
-export const loadGridFailurePublicationTextsFail = createAction('[GridFailurePublicationTexts] Load Fail', props<{ payload: string }>());
+export const loadGridFailureExpectedReasonsFail = createAction('[[GridFailureFailureExpectedReasons] Load Fail', props<{ payload: string }>());
diff --git a/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.spec.ts b/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.spec.ts
index 93faddc..13e4883 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.spec.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.spec.ts
@@ -20,7 +20,7 @@
   FailureType,
   FailureState,
   FailureRadius,
-  FailurePublicationText,
+  FailureExpectedReason,
 } from '@grid-failure-information-app/shared/models';
 import * as gridFailureActions from '@grid-failure-information-app/shared/store/actions/grid-failures.action';
 import { GridFailureApiClient } from '@grid-failure-information-app/pages/grid-failure/grid-failure-api-client';
@@ -204,13 +204,13 @@
     actions$.next(gridFailureActions.loadGridFailureRadii());
   });
 
-  it('should equal loadGridFailurePublicationTexts after getGridFailurePublicationTexts', done => {
-    apiResponse = [new FailurePublicationText({ id: '1' })];
+  it('should equal loadGridFailureExpectedReasons after getGridFailureExpectedReasons', done => {
+    apiResponse = [new FailureExpectedReason({ id: '1' })];
     spyOn(apiClient, 'getGridFailurePublicationTexts').and.returnValue(of(apiResponse));
     effects.getGridFailurePublicationTexts$.pipe(take(1)).subscribe(result => {
-      expect(result).toEqual(gridFailureActions.loadGridFailurePublicationTextsSuccess({ payload: apiResponse }));
+      expect(result).toEqual(gridFailureActions.loadGridFailureExpectedReasonsSuccess({ payload: apiResponse }));
     });
     done();
-    actions$.next(gridFailureActions.loadGridFailurePublicationTexts());
+    actions$.next(gridFailureActions.loadGridFailureExpectedReasons());
   });
 });
diff --git a/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.ts b/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.ts
index 9756138..fa06b8e 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/effects/grid-failures.effect.ts
@@ -26,7 +26,7 @@
   FailureState,
   FailureRadius,
   FailureBranch,
-  FailurePublicationText,
+  FailureExpectedReason,
 } from '@grid-failure-information-app/shared/models';
 import { Store } from '@ngrx/store';
 
@@ -158,12 +158,12 @@
 
   getGridFailurePublicationTexts$: any = createEffect(() =>
     this._actions$.pipe(
-      ofType(gridFailureActions.loadGridFailurePublicationTexts),
+      ofType(gridFailureActions.loadGridFailureExpectedReasons),
       switchMap(action => {
         return this._apiClient
           .getGridFailurePublicationTexts()
-          .map((response: FailurePublicationText[]) => gridFailureActions.loadGridFailurePublicationTextsSuccess({ payload: response }))
-          .catch(error => of(gridFailureActions.loadGridFailurePublicationTextsFail({ payload: error })));
+          .map((response: FailureExpectedReason[]) => gridFailureActions.loadGridFailureExpectedReasonsSuccess({ payload: response }))
+          .catch(error => of(gridFailureActions.loadGridFailureExpectedReasonsFail({ payload: error })));
       })
     )
   );
diff --git a/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-details-form.reducer.ts b/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-details-form.reducer.ts
index 2395f9a..a63c456 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-details-form.reducer.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-details-form.reducer.ts
@@ -25,7 +25,7 @@
     branchId: validate(required),
     voltageLevel: validate(required),
     failureBegin: validate(required),
-    publicationTextId: validate(required),
+    expectedReasonId: validate(required),
     city: validate(required),
     street: validate(required),
     radiusId: validate(required),
diff --git a/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-publication-texts.reducer.spec.ts b/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-publication-texts.reducer.spec.ts
index 7d2c241..0f1c9f6 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-publication-texts.reducer.spec.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-publication-texts.reducer.spec.ts
@@ -20,7 +20,7 @@
   reducer,
 } from '@grid-failure-information-app/shared/store/reducers/grid-failures/grid-failure-publication-texts.reducer';
 import * as gridFailureActions from '@grid-failure-information-app/shared/store/actions/grid-failures.action';
-import { FailurePublicationText } from '@grid-failure-information-app/shared/models';
+import { FailureExpectedReason } from '@grid-failure-information-app/shared/models';
 
 describe('GridFailurePublicationTextsReducer', () => {
   it('should return the initial state', () => {
@@ -31,7 +31,7 @@
   });
 
   it('should trigger loading state', () => {
-    const action = gridFailureActions.loadGridFailurePublicationTexts();
+    const action = gridFailureActions.loadGridFailureExpectedReasons();
     const result = GridFailurePublicationTextsReducer(INITIAL_STATE, action);
 
     expect(result).toEqual({
@@ -41,8 +41,8 @@
   });
 
   it('should trigger loaded state', () => {
-    const items = { payload: [new FailurePublicationText()] };
-    const action = gridFailureActions.loadGridFailurePublicationTextsSuccess(items);
+    const items = { payload: [new FailureExpectedReason()] };
+    const action = gridFailureActions.loadGridFailureExpectedReasonsSuccess(items);
     const result = GridFailurePublicationTextsReducer(INITIAL_STATE, action);
 
     expect(result.loaded).toBe(true);
@@ -50,7 +50,7 @@
 
   it('should trigger failed state', () => {
     const error = { payload: 'err_msg' };
-    const action = gridFailureActions.loadGridFailurePublicationTextsFail(error);
+    const action = gridFailureActions.loadGridFailureExpectedReasonsFail(error);
     const result = GridFailurePublicationTextsReducer(INITIAL_STATE, action);
 
     expect(result).toEqual({
diff --git a/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-publication-texts.reducer.ts b/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-publication-texts.reducer.ts
index 64da952..fbbdf3a 100644
--- a/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-publication-texts.reducer.ts
+++ b/projects/grid-failure-information-app/src/app/shared/store/reducers/grid-failures/grid-failure-publication-texts.reducer.ts
@@ -11,14 +11,14 @@
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
 import * as gridFailureActions from '@grid-failure-information-app/shared/store/actions/grid-failures.action';
-import { FailurePublicationText } from '@grid-failure-information-app/shared/models';
+import { FailureExpectedReason } from '@grid-failure-information-app/shared/models';
 import { createReducer, on } from '@ngrx/store';
 
 export interface State {
   loading: boolean;
   loaded: boolean;
   failed: boolean;
-  data: Array<FailurePublicationText>;
+  data: Array<FailureExpectedReason>;
 }
 
 export const INITIAL_STATE: State = {
@@ -30,7 +30,7 @@
 
 export const GridFailurePublicationTextsReducer = createReducer(
   INITIAL_STATE,
-  on(gridFailureActions.loadGridFailurePublicationTexts, (state: any, action: any) => {
+  on(gridFailureActions.loadGridFailureExpectedReasons, (state: any, action: any) => {
     return {
       ...state,
       loading: true,
@@ -39,7 +39,7 @@
       data: [],
     };
   }),
-  on(gridFailureActions.loadGridFailurePublicationTextsSuccess, (state: any, action: any) => {
+  on(gridFailureActions.loadGridFailureExpectedReasonsSuccess, (state: any, action: any) => {
     return {
       ...state,
       loading: false,
@@ -48,7 +48,7 @@
       data: action['payload'],
     };
   }),
-  on(gridFailureActions.loadGridFailurePublicationTextsFail, (state: any, action: any) => {
+  on(gridFailureActions.loadGridFailureExpectedReasonsFail, (state: any, action: any) => {
     return {
       ...state,
       loaded: false,
