diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangModelAssembler.java
index 205bd81da8557af9393258a1c0c62c560c9d1544..16eaa4b9efc658bf68ccf80fd93c325aa9e96e9f 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangModelAssembler.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangModelAssembler.java
@@ -31,6 +31,7 @@ import java.util.stream.Stream;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.hateoas.EntityModel;
 import org.springframework.hateoas.Link;
+import org.springframework.hateoas.LinkRelation;
 import org.springframework.hateoas.RepresentationModel;
 import org.springframework.hateoas.mediatype.hal.HalModelBuilder;
 import org.springframework.hateoas.server.RepresentationModelAssembler;
@@ -44,6 +45,7 @@ import de.ozgcloud.alfa.common.user.UserId;
 import de.ozgcloud.alfa.common.user.UserRole;
 import de.ozgcloud.alfa.statistic.Statistic;
 import de.ozgcloud.alfa.wiedervorlage.WiedervorlageController;
+import io.micrometer.core.annotation.Timed;
 import lombok.RequiredArgsConstructor;
 
 @Component
@@ -60,6 +62,7 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent
 	private final VorgangService vorgangService;
 	private final LinkedResourceProcessor<Vorgang> linkedResourceProcessor;
 
+	@Timed("http_vorgang_toCollectionModel")
 	public RepresentationModel<EntityModel<EnhancedVorgang>> toCollectionModel(Stream<VorgangHeader> entities, VorgaengeHeaderResponse response,
 			FindVorgaengeHeaderRequestCriteria requestCriteria, Statistic statistic) {
 		var model = initModel(entities, statistic);
@@ -131,18 +134,26 @@ class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, Ent
 		return filterCriteria.getAssignedTo().map(UserId::toString).orElse(StringUtils.EMPTY);
 	}
 
+	@Timed("http_vorgang_toModel")
 	@Override
 	public EntityModel<Vorgang> toModel(Vorgang vorgang) {
 		var selfLinkBuilder = linkTo(VorgangController.class).slash(vorgang.getId());
-		var assignLink = linkTo(methodOn(CommandByRelationController.class).createCommand(vorgang.getId(), vorgang.getId(),
-				vorgang.getVersion(), null)).withRel(REL_VORGANG_ASSIGN);
-		var wiedervorlagenLink = linkTo(methodOn(WiedervorlageController.class).findByVorgang(vorgang.getId())).withRel(REL_WIEDERVORLAGEN);
 
 		return EntityModel.of(vorgang)
 				.add(selfLinkBuilder.withSelfRel())
 				.add(selfLinkBuilder.withRel(REL_VORGANG_MIT_EINGANG))
-				.addIf(isAssigneable(vorgang), () -> (assignLink))
-				.addIf(userService.hasRole(UserRole.VERWALTUNG_USER), () -> wiedervorlagenLink);
+				.addIf(isAssigneable(vorgang), () -> buildAssignLink(vorgang))
+				.addIf(userService.hasRole(UserRole.VERWALTUNG_USER), () -> buildWiedervorlagenLink(vorgang));
+	}
+
+	private Link buildWiedervorlagenLink(Vorgang vorgang) {
+		var uriBuilder = linkTo(WiedervorlageController.class).toUriComponentsBuilder().queryParam("vorgangId", vorgang.getId()).build();
+		return Link.of(uriBuilder.toUriString(), LinkRelation.of(REL_WIEDERVORLAGEN));
+	}
+
+	private Link buildAssignLink(Vorgang vorgang) {
+		return linkTo(CommandByRelationController.class, vorgang.getId(), vorgang.getId(), vorgang.getVersion(), null)
+				.withRel(REL_VORGANG_ASSIGN);
 	}
 
 	boolean isAssigneable(Vorgang vorgang) {
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangService.java
index cb9bb12fbd8121227543a03eb95a7b38b4b2e0e0..d25d210dfdad79080c9a4ab029413ee33fbfb0a7 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangService.java
@@ -32,6 +32,7 @@ import org.springframework.stereotype.Service;
 import de.ozgcloud.alfa.common.user.CurrentUserService;
 import de.ozgcloud.alfa.common.user.UserRole;
 import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus;
+import io.micrometer.core.annotation.Timed;
 
 @Service
 class VorgangService {
@@ -41,6 +42,7 @@ class VorgangService {
 	@Autowired
 	private CurrentUserService userService;
 
+	@Timed("findVorgangs")
 	public VorgaengeHeaderResponse findVorgaengeHeader(FindVorgaengeHeaderRequestCriteria requestCriteria) {
 		requestCriteria = setOrderBy(requestCriteria);
 
@@ -98,11 +100,12 @@ class VorgangService {
 		return userService.getUser().getOrganisationseinheitIds();
 	}
 
+	@Timed("vorgang_isVorgangEditable")
 	public boolean isVorgangEditable(Vorgang vorgang) {
-		var vorgangWithEingang = vorgang instanceof VorgangWithEingang ?
-				(VorgangWithEingang) vorgang :
-				findVorgangWithEingang(vorgang.getId());
-		return isVorgangWithEingangEditable(vorgangWithEingang);
+		if (vorgang instanceof VorgangWithEingang withEingang) {
+			return isVorgangWithEingangEditable(withEingang);
+		}
+		return false;
 	}
 
 	boolean isVorgangWithEingangEditable(VorgangWithEingang vorgang) {
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangServiceTest.java
index fa26b153010675a2873b292c5ae8716e90ce3f98..c36a152a25329c6158ac2c2ef7f74ffcdfdc47c0 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangServiceTest.java
@@ -368,21 +368,17 @@ class VorgangServiceTest {
 			private final Vorgang vorgang = VorgangHeaderTestFactory.create();
 			private final VorgangWithEingang vorgangWithEingang = VorgangWithEingangTestFactory.create();
 
-			@BeforeEach
-			void init() {
-				doReturn(vorgangWithEingang).when(service).findVorgangWithEingang(VorgangHeaderTestFactory.ID);
-			}
-
 			@Test
-			void shouldFindVorgangWithEingang() {
-				service.isVorgangEditable(vorgang);
+			void shouldReturnFalseForVorgangHeader() {
+				var result = service.isVorgangEditable(vorgang);
 
-				verify(service).findVorgangWithEingang(VorgangHeaderTestFactory.ID);
+				verify(service, never()).findVorgangWithEingang(VorgangHeaderTestFactory.ID);
+				assertThat(result).isFalse();
 			}
 
 			@Test
 			void shouldCheckIfVorgangIsEditable() {
-				service.isVorgangEditable(vorgang);
+				service.isVorgangEditable(vorgangWithEingang);
 
 				verify(service).isVorgangWithEingangEditable(vorgangWithEingang);
 			}
@@ -390,9 +386,9 @@ class VorgangServiceTest {
 			@ParameterizedTest
 			@ValueSource(booleans = { true, false })
 			void shouldReturnCheckResult(boolean checkResult) {
-				when(service.isVorgangWithEingangEditable(vorgangWithEingang)).thenReturn(checkResult);
+				doReturn(checkResult).when(service).isVorgangEditable(any());
 
-				var editable = service.isVorgangEditable(vorgang);
+				var editable = service.isVorgangEditable(vorgangWithEingang);
 
 				assertThat(editable).isEqualTo(checkResult);
 			}