← All committee reports

Round 21 · Correct playoff brackets, the "—:—" result fixed, and a cleaner, more consistent site

Everything we've done since Round 20, in one place. The headline: your playoff brackets for Divisions A, B and C are now calculated correctly — straight from your Rules & Regulations v5, §7.1 (group winners + wildcards), not the flat top-8 we had before. We fixed the "should be 0:5 but shows —:—" result you flagged, made the share card white with a green heading as you asked, corrected the sudden-death (21:20) scoring wording, and did a pass of navigation and consistency polish across the site. We also confirmed two things you asked for are already built (the About-page editor and the sign-in-as tool), and verified that three "blank page" reports were just loading-moment screenshots.
Everything below is live now and was checked on real data — the actual playoff qualifiers, a real corrected result, the rendered pages. Sign in and try any of it.
Playoff brackets fixedDiv A/B/C now follow rulebook §7.1 — group winners + wildcards
"—:—" result fixedMon 20 Jul now shows 0:5, everywhere
Share card = whiteWhite background, green heading — as requested
Cleaner & consistentNav, tags, labels, sudden-death wording
1 · Playoff brackets — now exactly your rulebook

You reported the Div A/B/C playoff trees were inaccurate — "the calculation is not correct… refer to Terry's." You were right. Our page was seeding a flat, division-wide top-8, which is meaningless for grouped divisions — Division B has 52 teams across 6 groups, Division C has 57 across 7 groups. We rebuilt the bracket to follow your Rules & Regulations v5, §7.1 (Post-Season Eligibility) exactly.

Qualification straight from §7.1 Live · checked on real standings

Division A — the top 4 teams in each group qualify (2 groups → 8 into the quarter-finals).

Division B — the winner of each of the 6 groups + 2 wildcards = 8.

Division C — the winner of each of the 7 groups + 1 wildcard = 8.

Wildcards are the highest win % among the non-winners, breaking ties by games-won % then average net-points per match — exactly as §7.1 states.

Better than a hand-drawn bracket

It's computed live from the current standings, so it's never a stale, manually-maintained tree.

Every team shows why it qualified — "Group 1 winner", "Group 2 #4", or "Wildcard · 88%".

Seeded 1v8 / 4v5 / 3v6 / 2v7 by overall record, so the wildcards meet the top seeds — the fair, standard draw.

The ranking tie-breaks reuse the same §7.0 engine we corrected in Round 19, so ranks resolve consistently everywhere.

Division A playoff bracket
Division A quarter-finals, computed live from §7.1. Each team is badged with how it qualified (Group 1/2 winner, #seed, or Wildcard %). Div B shows 6 group winners + 2 wildcards; Div C shows 7 winners + 1 wildcard.
2 · The reports you filed — fixed & verified
The reported —:— result
What you reported — Monday 20 July, the match shows "— —" even though the five games below it are all scored (1:21). "Should be 0:5, why only -:-."
Now shows 0:5
Fixed — the same match now reads 0 : 5 everywhere (Results, the home page, team pages). A finished match with scored games can never show blank again, and we corrected the stored record too.

"—:—" instead of 0:5 Fixed everywhere

"Monday, 20, July match should 0:5, why only -:-."

The match had all five games scored (0:5), but the match total was blank. We fixed it on every surface that shows a score, and corrected the match record so all pages agree.

Share card was "too green" Now white

"Can the share scorecard be displayed as white in background instead? right now, it is too green."

Rebuilt as a white card with a green heading — winner score in green, a green WINNER pill, clean and printable. Same on the live-match share.

"No win by 2 — the match can be 21:20"

"i cannot submit the score, but it should be correct for the sudden death."

A 21-20 sudden-death score now submits cleanly, and the old "must win by 2" wording is gone from the scoresheet and the server messages. Matches your rulebook: first to 21, sudden death at 20-20.

"Recent Results shown black"

"Recent results here are displayed as black… it should be pale, like white with green heading."

Now pale white with a green heading, consistent with the rest of the site.

White share card
The share card, now white with a green heading — winner in green, WINNER pill, HKPL mark.
3 · A cleaner, more consistent site

Navigation — your portal link moved to the right

"…please place [My Home] on the right side. Separate from the browsing section titles."

Your signed-in link (My Team / My Home / Admin) now sits on the right, apart from the browsing sections — done in the one shared header, so it's the same on every page.

Spectator "My Home" is now a real fan home, not just a form

"…a spectator would expect personal info/updates, rather than an application form."

A signed-in spectator now lands on a "What's happening" feed — recent results plus quick links to Live, Schedule and Standings — with "Become a player" as a secondary card below (and the nav link reads "Become a player"). EN / 繁 / 简.

Homepage news ticker carries league announcements

"…what kind of content can be shown on the marquee… if it updates every week, keep it."

Kept the ticker (it already shows live + upcoming matches, which change weekly) and added 📢 league announcements at the front — post one from the admin and it appears on the marquee in a few words.

One defined set of tags, shared site-wide

"Badge/tag has so many different design style… consolidate and define the categories of tagging."

The section labels now use one shared, documented tag system (in the site's style tokens) — a single set of eyebrow / tag / count styles instead of ad-hoc pills, so padding, colour and size stay consistent.

"This Week" was unclear → "Latest"

"Recent Results This week: how to count this week?"

The home results heading now reads "Latest" — no ambiguous time window to interpret.

Tags & badges consolidated

"Badge/tag has so many different design style… one page have at least 5 styles."

The section labels ("Explore the League", "Upcoming", "Press", "Core Mission"…) used 4+ different styles. They now all use one consistent tag style.

Hero "Scroll" hint removed

"Hero banner there is a 'Scroll' indication. Should take it out."

Removed — the content is easy to scan and people scroll without a prompt.

Settings tidied — and two invisible buttons fixed

Added a "Back to portal" link and a direct "View my DUPR profile" button; aligned the "Remove password" link. We also caught a real bug where the Save-password and DUPR buttons were rendering invisibly — now fixed.

Nav with portal on the right
The signed-in "My Team" link now on the right, separate from League / Players / Clubs / Register / About.
Settings page
Settings — Back-to-portal, a DUPR profile button, and the previously-invisible buttons now visible.
4 · Already built — and a few clarifications

"About HKPL" admin page — it already exists

"i need a page called about HKPL here, it will be displayed in the website."

Edit it under Admin → Tenant Settings (English / 繁體 / 简体). It renders on the public About page. Just type your content in.

"Sign in as their identity" — already in the admin

"i need this function… i need to login as their identity."

The full tool (search by name / email / DUPR, or browse by club) already lives on the admin dashboard. We added a "🔑 Sign in as…" shortcut in the sidebar so it's easy to find.

Member gender counts — kept, with a note

"…not sure is it good to show on the website considering privacy."

These are aggregate, league-wide totals — no individual is identified — and gender balance is part of the format (every match fields 2 men + 2 women), so we've kept them and added a one-line clarification.

Rules & Regulation opens in the same window

"…do not open as new window."

Fixed across the public pages — the rulebook now opens in place, not a new tab.

5 · Under the hood — correctness & real-data testing

Your playoff & ranking rules now live in the rulebook engine — edit the rule, the bracket follows

The playoff qualification (§7.1) and the ranking tie-break (§7.0) used to be written into our code. They're now encoded rules you can edit, and the bracket + standings read them live — change the rule and the result updates, no code change. We proved it: flipping Div C's wildcard count in the rule instantly changed the qualifiers, then reverting restored them.

Matched the forfeit rule (§2.3) to its exact wording

Your rulebook says a forfeit counts as 21-0 in all 5 games — "for the purpose of wildcard tie-breaker calculations." We apply that credit only in the wildcard tie-break, exactly as written; the group-winner ranking (§7.0) uses the real game-points. A rulebook-fidelity detail, checked line-by-line.

Checked with real data — from the user's side, not just "the page loads"

We ran the actual playoff qualifiers for every division against live standings, submitted a real sudden-death 21:20 score as a captain (accepted — no "win-by-2" block), and confirmed the "—:—" match now reads 0:5 everywhere.

Three "blank page" reports were loading-moment screenshots

The role-assignment panel, the rulebook editor, and a captain screen were reported as blank/overlapping. We opened each directly and confirmed they render correctly once loaded — the screenshots caught the page mid-load.

Everything above is live on the site now and was verified on real data — the actual playoff qualifiers, a real corrected result, and the rendered pages.
Sign in and try any of it. As always, use the Send feedback button on any page — your notes and screenshots come straight to us.