diff --git a/mo/score.py b/mo/score.py
index f497e95e5b370c812f9e52c806e3b934e103e5c1..04440a2bdae59da18dfef66610287fef3ede128e 100644
--- a/mo/score.py
+++ b/mo/score.py
@@ -87,6 +87,7 @@ class ScoreTask:
 class Score:
     round: db.Round
     contest: Optional[db.Contest]
+    hier_place: Optional[db.Place]
     part_states: List[db.PartState]
     want_successful: bool
     want_winners: bool
@@ -104,12 +105,13 @@ class Score:
     _messages: List[Tuple[str, str]]
 
     def __init__(
-        self, round: db.Round, contest: Optional[db.Contest] = None,
+        self, round: db.Round, contest: Optional[db.Contest] = None, hier_place: Optional[db.Place] = None,
         # Ze kterých stavů chceme výsledkovku počítat
         part_states: List[db.PartState] = [db.PartState.registered, db.PartState.active],
     ):
         self.round = round
         self.contest = contest
+        self.hier_place = hier_place
         self.part_states = part_states
         self.want_successful = round.score_successful_limit is not None
         self.want_winners = round.score_winner_limit is not None
@@ -121,6 +123,10 @@ class Score:
             contest_subq = [contest.master_contest_id]
         else:
             contest_subq = sess.query(db.Contest.master_contest_id).filter_by(round=round)
+            if hier_place:
+                contest_subq = db.filter_place_nth_parent(
+                    contest_subq, db.Contest.place_id, round.level - hier_place.level, hier_place.place_id
+                )
 
         # Načtení účastníků
         data: List[Tuple[db.User, db.Participation, db.Participant]] = (
diff --git a/mo/web/org_score.py b/mo/web/org_score.py
index 93f1d8762926d05e5a813619c0135a4a1040d5e6..7279e9bbb1e005f5a2ea0215c441513504001aa0 100644
--- a/mo/web/org_score.py
+++ b/mo/web/org_score.py
@@ -86,10 +86,12 @@ class ScoreEditForm(FlaskForm):
 
 @app.route('/org/contest/r/<int:round_id>/score')
 @app.route('/org/contest/r/<int:round_id>/score/edit', methods=('GET', 'POST'), endpoint="org_score_edit")
+@app.route('/org/contest/r/<int:round_id>/h/<int:hier_id>/score')
+@app.route('/org/contest/r/<int:round_id>/h/<int:hier_id>/score/edit', methods=('GET', 'POST'), endpoint="org_score_edit")
 @app.route('/org/contest/c/<int:ct_id>/score')
 @app.route('/org/contest/c/<int:ct_id>/score/edit', methods=('GET', 'POST'), endpoint="org_score_edit")
-def org_score(round_id: Optional[int] = None, ct_id: Optional[int] = None):
-    ctx = get_context(round_id=round_id, ct_id=ct_id)
+def org_score(round_id: Optional[int] = None, hier_id: Optional[int] = None, ct_id: Optional[int] = None):
+    ctx = get_context(round_id=round_id, hier_id=hier_id, ct_id=ct_id)
     contest = ctx.contest
     round = ctx.round
     format = request.args.get('format', "")
@@ -106,7 +108,7 @@ def org_score(round_id: Optional[int] = None, ct_id: Optional[int] = None):
     if is_edit and not can_manage:
         raise werkzeug.exceptions.Forbidden()
 
-    score = Score(round.master, contest)
+    score = Score(round.master, contest, ctx.hier_place)
     tasks = score.get_tasks()
     results = score.get_sorted_results()
     messages = score.get_messages()
diff --git a/mo/web/templates/org_round.html b/mo/web/templates/org_round.html
index 0a8ab128d1246d46ba686a142c3ebf2e6ed13cd3..25e713835d890ac20e08c7e72643f923069567ea 100644
--- a/mo/web/templates/org_round.html
+++ b/mo/web/templates/org_round.html
@@ -88,7 +88,7 @@
 	{% if can_view_contestants %}
 	<a class="btn btn-primary" href='{{ ctx.url_for('org_generic_list') }}'>Seznam účastníků</a>
 	{% endif %}
-	{% if can_view_contestants and round.state in [RoundState.grading, RoundState.closed, RoundState.delegate] and not in_hier %}
+	{% if can_view_contestants and round.state in [RoundState.grading, RoundState.closed, RoundState.delegate] %}
 	<a class="btn btn-primary" href='{{ ctx.url_for('org_score') }}'>Výsledky</a>
 	{% endif %}
 	{% if can_manage_contest %}
diff --git a/mo/web/templates/org_score.html b/mo/web/templates/org_score.html
index 564949f2521938c2c5dcefb8f2e6d5624c09aa1b..c4ea3bca4b3854de34a0a5c40391773e33a7f054 100644
--- a/mo/web/templates/org_score.html
+++ b/mo/web/templates/org_score.html
@@ -3,6 +3,7 @@
 
 {% block title %}
 {{ round.round_code() }}: Výsledky pro {{ round.name|lower }} kategorie {{ round.category }}{% if contest %} {{ contest.place.name_locative() }}{% endif %}
+{% if ctx.hier_place %} ({{ ctx.hier_place.name_locative() }}){% endif %}
 {% endblock %}
 {% block breadcrumbs %}
 {{ ctx.breadcrumbs(action="Výsledky oblasti" if contest else "Výsledky kola") }}