---
# nuzlocke-tracker-lsdy
title: Genlocke cumulative graveyard
status: completed
type: feature
priority: normal
created_at: 2026-02-09T07:42:46Z
updated_at: 2026-02-09T10:00:43Z
parent: nuzlocke-tracker-25mh
---

Display all deaths across all legs of a genlocke in a single unified graveyard view.

## Display
- Accessible from the genlocke overview page
- Shows all fainted Pokemon from every leg in one list
- Each entry shows:
  - Pokemon sprite, nickname, species
  - Which leg/game it died in
  - Death cause (if recorded)
  - Level at death
  - Whether it was a transferred Pokemon (part of a lineage) or caught fresh in that leg
- Sortable/filterable by leg, species, level, etc.
- Summary stats: total deaths, deaths per leg, deadliest leg

## Backend
- `GET /api/v1/genlockes/{id}/graveyard` — Return all fainted encounters across all legs of the genlocke
- Aggregates encounters with status "fainted" from all runs belonging to the genlocke's legs

## Frontend
- Could be a tab on the genlocke overview page or a separate sub-page (`/genlockes/:id/graveyard`)
- Reuse existing graveyard/encounter display components where possible

## Checklist
- [x] Implement `GET /api/v1/genlockes/{id}/graveyard` — query all encounters with status "fainted" across all runs linked to the genlocke's legs, include leg/game context per entry
- [x] Add summary stats to the response: total deaths, deaths per leg, deadliest leg
- [ ] Indicate whether each dead Pokemon was a transferred Pokemon or caught fresh (join with GenlockeTransfer) — deferred until GenlockeTransfer model exists (nuzlocke-tracker-lsc2)
- [x] Build the cumulative graveyard component: list of dead Pokemon with sprite, nickname, species, leg/game, death cause, level
- [x] Add sorting (by leg, level, species) and filtering (by leg/game)
- [x] Integrate as a tab on the genlocke overview page or as a sub-route
- [x] Reuse existing graveyard display components where applicable