Owner review 48: the research behind the redraws (2026-10-28)
Status: Reference · Date: 2026-10-28 · Three web briefs run for owner review 48, where the owner asked for best practice: live scoring, brackets and the organizer's console (L3-38, L3-39, L3-40); the read control, notices, contact and the legal pages (L3-13, L3-22, L3-43, L3-44, L3-45); self check-in, a word for 번개 and the trust tier names (L3-36, L2-03, L2-06, L3-01). Sources are linked per claim. Some apps (Toss, KakaoBank, 배민, Flashscore, Sofascore, Naver and Kakao live views) have no public documentation of their in-app behaviour, and some pages refused the fetch; claims taken from store listings or search summaries are marked so, and the lead's own inferences are marked as inferences.
1. Live scoring, brackets and the organizer's console
Live emphasis.
- Float the viewer's own matches first, then the rest: Apple Sports keeps starred teams at the top and shows a tennis player's path to the final (9to5Mac).
- One screen for every court: Picklr Lab's open play and the Korean doubles app 쉬운 대진표 both promise all courts and scores on one screen, with a private "you're up next" ping (store listings: Picklr Lab, 쉬운 대진표).
- Calm, honest live state: a LIVE label and a score that rolls when it changes, nothing pulsing for decoration (vp0 bracket UI notes, Apple HIG, Live Activities).
- One match card in three states, upcoming, live and done, with an outcome label (기권, 부전승) in its corner: UTR's redesigned match card (UTR).
Brackets and groups on a phone.
- The round is the unit of paging: swipe or pick a round, and a full tree is an optional pan-and-zoom view with the viewer's path highlighted (vp0, New Media Campaigns, mobile-first bracket, Sportradar bracket building).
- One data model for every format: a tournament is ordered stages, a stage has groups, a group has rounds, a round has matches; round-robin groups and elimination brackets are stage types, and groups feed the next stage (Toornament glossary, Toornament stages). Challonge splits a two-stage event into a group view and a final-stage view, and sets how many advance per group (Challonge).
- Round-robin ties: head-to-head for two players, then set and game percentages (Tennis Canada's rules, search summary: PDF).
The organizer's console, ranked. A mid-session organizer needs 1, 3, 4, 5 and 8 at the least; 2 and 6 separate a tool from a viewer.
- A court board with a queue: assign a match to a court, send it back to the queue, flag a match running late (pickleball.com Court Desk, R2 Sports).
- Stall alerts: a player who has not opened the match, a result waiting for approval, a protest (Tonamel).
- Entering a score for players, fast: winner first, then save and next; player entry with the opponent's confirmation as the other path (UTR post scores, pickleball.com player scoring).
- An outcome instead of a score: walkover, retirement, abandoned, both absent (UTR, Tonamel above; start.gg).
- Edit and clear a result (UTR, start.gg).
- Late or absent players: add a latecomer and rebalance from the next round (store listings: Padelino, PadelMix).
- Delays: pause a court and push its later matches back (UTR order of play).
- The next round, one press at the bottom (PadelMix; Playtomic feeds each result into the next pairings, search summary).
What makes scorecards appealing to amateur players. 내 다음 경기 kept in view and a ping when the court frees; the viewer's own day (partners, opponents, results); streaks and head-to-head; a shareable result card; a recap at the session's end with small awards (Picklr Lab, Apple Sports above; MatchPoint Coach listing; SportsVisio season wrap).
One structure for a club session and a tournament (the lead's synthesis). A club session is one stage with one group and N rounds; a tournament adds stages and groups. The page shows one horizontal line of chips (stage, group, round) and under it one list of match rows. Tabs: LIVE first (the viewer's matches, then by court), 일정 (with the full tree as its alternate view in a tournament), 결과, 순위. The organizer's 대진표 is the same match rows with 대신 입력, the late flag, the outcome menu and 다음 라운드.
2. The read control, notices, contact and the legal pages
Notifications: read without a control.
- A badge counts what is unseen and clears when the list opens; each item stays unread until it is opened (LinkedIn help, saasui).
- Read-on-open suits most products; an explicit mark is for queues and approvals. One small dot and a slightly heavier title are enough to mark unread (Courier).
- Where a mark-all exists, it is a header action, not a section head's (Courier above; PatternFly); on mobile, Slack documents a swipe to clear and no mark-all (Slack); 당근 has delete-all and per-row delete, with no read state, and expires notifications after a month (당근 FAQ, search summary).
- Recommendation: no 모두 읽음. Opening 알림 clears the bell's badge; a row's dot clears on tap; what is still dotted counts as seen when the viewer leaves (an inference from read-on-open). If an explicit control is kept, it is one header icon with a 되돌리기 toast.
Notices (공지사항): a list that opens a page. Toss's notices are rows of a title and a date that open a page with the text (Toss notices, a notice); 당근 the same (당근 notices); KakaoBank's notices are pages too (KakaoBank). Kakao's support notices expand in place and mark an important one with a 중요 prefix, with no NEW badge (Kakao CS notices). Recommendation: rows of title and date that open a notice page (a push can deep-link to it); an important notice pinned first; an unread dot instead of a NEW badge.
Contact (문의하기). Toss's help leads with task shortcuts, then the full FAQ, then contact for what is left (Toss support, FAQ); Kakao's leads with search and FAQ tabs and states each channel's hours (Kakao CS); KakaoBank lists its channels' hours (KakaoBank). Apple requires an easy way to contact the developer, the privacy policy reachable in the app, and account deletion in the app (App Review Guidelines 1.5, 5.1.1). Recommendation for a small app: the FAQ is the page's one list, grouped under three to five topics (search only past about fifteen questions); below it one 문의하기 button that opens an email with the app version, device and account filled in; a KakaoTalk channel as the second way when one exists.
이용약관 and 개인정보 처리방침. The privacy policy is published continuously and its changes are announced with a before-and-after comparison, earlier versions kept readable (개인정보 보호법 제30조, 시행령 제31조; summary at itwiki ISMS-P 3.5.1); the regulator scores policies on adequacy, readability and accessibility (이투데이); the 2026 writing guide asks for significant changes to be announced in advance (뉴스서울); terms changes are announced 7 days ahead, 30 when they disadvantage users (이투데이, convention). Kakao's policy page has a numbered contents list, six summary cards, an easy version, its 시행일자 and a list of earlier versions (Kakao privacy); its terms show 공고일자 and 시행일자 and link the earlier text (Kakao terms); 당근 has a version selector and an easy-reading link (당근); Toss publishes a comparison table per revision (Toss). Recommendation: each document is one page: its title; one line of 시행일 and one 이전 버전 control; for the privacy policy a five-to-six-line summary (items, purposes, retention, third parties and outsourcing, rights, the officer); a contents list that jumps to each article; numbered articles with tables for items and retention. The legal text stays counsel's verbatim.
3. Self check-in, a word for 번개 and the tier names
Check-in.
- Host-driven check-in is the norm: Meetup's organizer check-in mode with QR (Meetup), Eventbrite's one-at-a-time scan or search (Eventbrite, search summary); PLAB's manager takes attendance, and lateness costs points (나무위키, 플랩풋볼, community-edited).
- Self check-in exists in Korean group apps: 당근 모임's host shows a QR that members scan on site (유니콘팩토리); Check It enables its 출석 button as the start time nears (store listing, Check It).
- Time input on a phone: default to now or the next slot, steps of 15 or 30 minutes, chips over wheels (Eleken, UX Movement).
- Recommendation (the lead's, from the above and the app's own arrival picker,
packages/features/sessions/src/add-round/arrival-picker.tsx): a player presses 도착 (it stamps now, live from shortly before the start) and 먼저 가기 when leaving; a player who forgot picks from chips (정시, +15분, +30분, 직접 → the shared time selector). The host sees only the exceptions and confirms the rest in one press; lateness is computed from the stamp against the start, never typed.
A word for 번개. 번개 is still in common use (뉴시스, 2026; the apps 썬더링 and FaceCock; 당근's 번개런), so replacing it is a tone decision, not a correction. What Korean sports apps say: 소셜 매치 (PLAB, 아이엠그라운드: strangers meeting through the app; 부산일보); 오픈 매치 (Playtomic's open matches, padel); 게스트 모집 (온코트, 당근 tennis groups: names the person who fills a place, not the event); 반짝 모임 (당근's earlier one-off meetups, Byline); 모임 (too broad: it covers clubs). Candidates: 오픈 매치 (it says open to anyone, and match is tennis's word), 소셜 매치 (the platform tone), 반짝 모임 (the lighter one); 게스트 stays for the person who joins.
Trust tier names. The four tiers ship as 새싹, 활동 멤버, 신뢰 멤버 and 베테랑 멤버 (packages/app/src/config/i18n/ko/common.ts). Under the section head 신뢰, "활동 멤버" reads as "신뢰 활동 멤버", two tier names at once. Elsewhere a level is never a bare name: 당근's 매너온도 team found a bare number ambiguous and added named levels (당근 careers); 크몽 gives each level a one-line meaning and published thresholds (크몽); Airbnb's Superhost is one badge with four published criteria (Airbnb); PLAB and 온코트 keep skill and manners apart. Recommendation: show one tier at a time as a name, its one-line evidence (최근 20회 중 19회 참석) and the step to the next; and rename so no tier repeats the section's word 신뢰 and none needs 멤버 (the lead's candidates, unsourced: 새싹 · 단골 · 믿음직 · 베테랑). TrustTierInfoSheet stays the explainer.
4. The trust tier names (the owner, 2026-10-28: "Can you do some research on naming the trust tier names?")
What the ladder proves. Reliability and conduct, not skill (skill is NTRP and ELO): tier 2 is 5 confirmed sessions; tier 3 is 20 sessions, 10 distinct 칭찬, attendance of 90% and few reports; tier 4 is 50 sessions over 6 months and 20 distinct 칭찬 (docs/canon/trust.md). Reports from 3 members bring tiers 3 and 4 back to tier 2.
What others do.
- 당근's 매너온도 is one number on a thermometer that starts at 36.5 (ppss). Abroad, a start of 30 made newcomers look untrustworthy, so the Karrot Score starts at 0 with named levels, a guidance line tells a new member they are still building a record, and a plant ladder (Seed to Flowering) was considered and dropped (당근 careers 1, 2).
- 크몽 names NEW, LEVEL1 to 3 and MASTER, each with one sentence of meaning (크몽); 네이버 스마트스토어 grades sellers 씨앗 to 플래티넘 by sales (ampm); Naver Cafe's 씨앗 to 나무 ladder grades the cafe, not its members (나무위키).
- One earned badge with published criteria: Airbnb's Superhost (Airbnb). A behaviour ladder whose step can be lost: Discourse's trust levels (Discourse). Thresholds that unlock things, each explained: Stack Overflow (blog).
- Tennis and sports apps keep conduct apart from skill: 테친소 shows a 매너 점수 beside its review NTRP (store listing); PLAB gives its POM for manners over skill (channel.io).
- A word of caution on 새싹: some Daum cafes use 새싹회원 for members not yet allowed to write (search summary only), so 새싹 can read as "not yet allowed".
Takeaways. A named ladder works when each name carries one plain sentence of what it proves, and the first step must read as a start, not a penalty.
Candidate sets (each name with the one line under it):
| Set | Tier 1 | Tier 2 | Tier 3 | Tier 4 | Risks |
|---|---|---|---|---|---|
| A. Club talk | 새내기 · 이제 막 시작했어요 | 단골 · 꾸준히 나오고 있어요 | 약속지기 · 약속을 잘 지키고 칭찬도 받았어요 | 버팀목 · 오랫동안 클럽을 든든히 지켜 왔어요 | 버팀목 is also a well-known government loan (버팀목 전세자금); 단골 is a shop-customer word; 약속지기 not yet checked as a mark |
| B. Plant ladder | 새싹 · 막 시작했어요 | 새잎 · 첫걸음을 뗐어요 | 열매 · 칭찬이 열매를 맺었어요 | 느티나무 · 오래 그늘이 돼 줘요 | 새싹 can read as restricted; Naver's grades use the same words; "열매가 됐어요" is odd for a person; 느티나무 is four syllables |
| C. Tennis, conduct | 첫 코트 | 파트너 | 굿매너 | 품격 | uneven word types; an English loan; 품격 sounds like luxury advertising |
| D. Formal | 신입 | 성실 | 모범 | 귀감 | stiff and school-like; "성실이 됐어요" fails the sentence test |
The lead's recommendation: set A, with tier 4 the owner's choice between 버팀목 (warm, but the loan brand is familiar to the 40 to 60 core) and a word without that echo. Its tier 3 is the only name in any set that says what the tier proves, and every name works in a sentence ("단골이 됐어요", "약속지기까지 3회"). Set B is the fallback that keeps 새싹. Either way the display fix stands: one tier at a time, its line, and the step to the next.
5. Generic tier names (the owner, 2026-10-29: "Don't like both A and B for tier names. Let's do a more generic tier names.")
What generic means here. A plain grade word that any member already reads as a step on a ladder, with no image to decode. The one line under each name (§ 4) still says what the step proves.
What the app already says. 레벨 and 등급 are taken by skill: the ranking filter's knobs read 최소 레벨 and 최고 레벨 (packages/app/src/config/i18n/ko/ranking.ts), the rating push reads "ELO 등급 승급" (ko/notifications.ts) and onboarding asks for the 테니스 실력 등급 (ko/onboarding.ts). The trust tier sits under 신뢰 등급 (ko/settings.ts). So a trust name must not look like a skill rank.
Generic ladders elsewhere. Grade words: 일반 회원 against 우수 or VIP 회원 is the plain split, and Korean card companies run 우수고객 programmes (카드고릴라; Shinhan's is 클래식, 베스트, 에이스, 프리미어). Metals: silver, gold, platinum is the common loyalty ladder, which naming guides call the default to avoid (Fabrik, search summary). Numbers: 크몽's LEVEL1 to 3 (§ 4).
| Set | Tier 1 | Tier 2 | Tier 3 | Tier 4 | Risks |
|---|---|---|---|---|---|
| E. Grade words | 신규 | 일반 | 우수 | 최우수 | a school or award tone; the words rank and do not say what they prove, so the line under each carries the meaning |
| F. Metals | 브론즈 | 실버 | 골드 | 플래티넘 | reads as a game's rating rank beside "ELO 등급 승급"; 브론즈 as the first step reads low (§ 4's start-not-penalty test); four loanwords |
| G. Numbered steps | 1단계 | 2단계 | 3단계 | 4단계 | sits beside skill numbers (NTRP 3.5, the 레벨 knobs, ELO) and reads as one; says nothing on its own |
The lead's recommendation: set E. Its first step says new, not low; none of its words is a skill word; none repeats 신뢰 or needs 멤버. In a sentence the name takes 등급: "신뢰 등급이 우수로 올랐어요", "최우수 등급까지 참석 3회". The display fix of § 4 stands.
6. Softer names, on Naver Cafe's ladder (the owner, 2026-10-29: "Hmmm why don't we something softer? I know Naver Cafe is using 새싹 etc.")
What Naver Cafe uses. Naver ranks each cafe on a growth ladder: 씨앗, 새싹, 잎새, 가지, 열매, 나무, then 숲, five steps each, from an activity score counted twice a month (나무위키, 네이버 카페, community-edited; the score formula is unofficial). The ladder grades the cafe, not its members: each cafe's manager sets its own member grades (나무위키, 네이버 카페/운영진). No source reached here names default member grades (the 새싹멤버, 일반멤버 … the lead half-remembered are unconfirmed). The words are still the familiar ones: a club that runs a Naver Cafe sees them on its own cafe, and the app already ships 새싹 as tier 1.
Soft sets, in Naver's order (each name with its one line, § 4):
| Set | Tier 1 (new) | Tier 2 (5 sessions) | Tier 3 (20, 칭찬, 90%) | Tier 4 (50, 6 months) | Risks |
|---|---|---|---|---|---|
| H. 새싹 to 나무 | 새싹 · 이제 막 시작했어요 | 잎새 · 꾸준히 나오고 있어요 | 열매 · 약속을 잘 지키고 칭찬도 받았어요 | 나무 · 오랫동안 클럽과 함께했어요 | 열매 for a person needs 등급 ("열매 등급이 됐어요"); 잎새 is a little literary |
| I. 새싹 to 숲 | 새싹 | 잎새 | 나무 | 숲 | Naver's top word for the top tier, but 숲 is a place, not a person ("숲이 됐어요" reads oddly) |
Both keep § 4's tests: the first step reads as a start, none is a skill word, none repeats 신뢰 or needs 멤버. Set B (새싹 · 새잎 · 열매 · 느티나무) was the same image in invented words; these are Naver's own words in Naver's order. The one caution from § 4 stays: a few Daum cafes use 새싹회원 for members who may not write yet (search summary only), but the app's tier 1 already says 새싹 and its line says it is a start.
The lead's recommendation: set H, 새싹 · 잎새 · 열매 · 나무. It follows Naver's ladder step for step (가지 left out: it also names the vegetable), and 열매 is the one word on that ladder that says something was earned. In a sentence the name takes 등급: "신뢰 등급이 열매로 올랐어요", "나무 등급까지 참석 30회".
7. A point system (the owner, 2026-10-29: "Hmm this feels too close to what Naver does. How about a point system?", then "Yes, points")
Decided: 신뢰 점수, 0 to 100, every point traceable. The named tiers (§ 4 to § 6) are set aside.
Why it is cheap. Nothing gates on the tier: the SQL only ever sets profiles.trust_tier, never compares it (private.recalculate_trust_tier, docs/canon/trust.md). Its one other consumer is partner matching, which turns the tier index into a 0 to 15 factor (computeTrustScore, packages/app/src/domain/rules/partner-matching.rules.ts); a 0 to 100 score feeds it directly (score ÷ 100 × 15).
Precedents. Korea moved credit from 신용등급 (1 to 10) to 신용점수 (1 to 1,000) on 2021-01-01 to remove the cliff between grades (디지털타임스, 카드고릴라), so a 점수 for trust is familiar. PLAB costs points for lateness (§ 3). 당근's 매너온도 is the caution: one number nobody can audit, which needed named levels abroad (§ 4).
The proposal, as approved (the weights are a first guess, to tune with data):
| Event | Points |
|---|---|
| Attended a session | +1 |
| Each new 칭찬 (a distinct tagger and tag) | +1 |
| 10 minutes or more late | −1 |
| Cancelled 12 to 24 hours before | −2 |
| Same-day cancel or no-show | −4 |
| An absence with 사유 인정 | 0 |
| A report the club upholds | −10 |
- Everyone starts at 50, the floor is 0 and the ceiling 100. The number stays hidden until 5 sessions; until then the card reads 기록을 쌓는 중이에요 with the count (참석 3회), so a new member never shows a low number.
- −4 and −2 mirror the attendance policy's weights for an absence (1 and 0.5), so the score and the attendance cooldown never disagree.
- 신뢰 기록 (L3-01) is the ledger: every session row shows its points (+2, −1, −4, 0), and the explainer sheet is the table above. That is what keeps it from being a 매너온도: every point has a row.
- Display: 공개 프로필's 신뢰 Cell reads 신뢰 점수 72점, its evidence on line 2 (최근 20회 중 19회 참석 · 칭찬 12); a stranger sees the score alone. It sits in its own 신뢰 section, always with 점 and never with decimals, apart from NTRP and ELO.
- The other model, the share of promises kept in the last 20 sessions, was set aside: it repeats the 출석률 tile and does not count 칭찬.
Risks to watch. A third number on 공개 프로필; comparison between members; the weights. A score change notifies only on a deduction (a quiet log for gains), so the bell does not ring at every session.
8. Live play in the code, and how Korean club tournaments run (batch 4, 2026-10-29)
Before batch 4 redrew 스코어카드, 대진표 and 토너먼트 (the owner: "Start batch 4"), the lead read what the code holds and how a Korean club tournament is run.
What the code holds (read from code, not docs).
- A tournament is a record of its own beside the session (
tournament.entity.ts, one per session byUNIQUE(session_id)in00097_tournaments.sql), its rounds and matches inside a JSONBstate. Its matches never reachmatches(use-create-tournament.ts), so neither the scorecard nor the match board can show a tournament. - Formats: 조별리그 (조별예선 → 본선 토너먼트), 토너먼트 (single elimination up to 8 players, groups and a knockout above), 전적매칭 토너먼트 (swiss) and 전원부활전 (compass) (
ko/tournaments.ts,bracket.strategy.ts). The knockout is a tree (single-elimination.ts:feedsWinnerToMatchId,position, byes completed automatically) with English round labels; group+knockout keeps its pools apart until every pool match is done (group-knockout.ts). TournamentBoardScreendraws flat standings and the current round's winner picks only: no bracket, no group tables, no earlier rounds, no scores, no third place, no walkover.- The scorecard's tabs are 일정, LIVE, 결과 (코트승급전 for King of Court), 순위;
get-default-tab.tsopens LIVE while a match is in progress. The match board has no court queue (rounds assign courts; the players resting arebench), late arrival isavailableFromRoundset in AddRound's 선수별 도착 picker, and the submit RPC accepts the walkover and abandoned outcomes with no UI to pick them.
How a Korean club tournament runs. A club rulebook (a Daum cafe's 대회 요강, m.cafe.daum.net/charm./1uZR/17): 예선 리그 by group, then a 본선 토너먼트; the organizer draws the groups; a group ranks by 승률, then 승자승 between two teams, then 게임 득실 among three or more, then the older pair; one no-ad set with a tiebreak at 5:5; prizes for 우승, 준우승 and 공동 3위, so no 3·4위전. The round words are 8강, 4강 and 결승. One rulebook is one source: the ranking order is the common one in Korean club play, and the code may make it a club setting.
What batch 4 took from this.
- One structure (§ 1's synthesis made concrete): a tournament is stages of its session's own matches, so 스코어카드 and 대진표 serve both, and the 토너먼트 page retires (its winner picks give way to scores and outcomes like any match).
- Scope as one Choice ▾ in the first head (A조 ▾ … 본선), since a tournament of four groups and a knockout has five scopes and a Choice set holds five at most and never scrolls.
- 순위 as a Group table for a group and a Bracket for the 본선 (two kit components, the library's § 10).
- The organizer's console, against § 1's ranking: the court board with its queue (a tournament's 코트 and 다음 경기), stall alerts (the 할 일 Task Cells), fast entry in sequence, the outcome step, edit and clear, a latecomer, and the next round as the band; pausing a court (§ 1's item 7) is left for later.