Prize Money & Awards
At a glance
Prize Money and Awards turns competition results into structured payouts: configurable prize pools per tournament with optional sponsor funding, percentage-based distribution recalculation, auto-generation from published bracket results, batch approval with per-jurisdiction withholding tax (Sweden 30, France 30, Germany 25, Spain 19, Italy 26, UK 20 percent), Stripe Connect-backed payment processing and a parallel trophy and medal inventory that auto-awards gold, silver, bronze and certificates from the same results.
How it works
Prize pools are managed at /prize-pools/ as competition-scoped documents that may be funded by a sponsor (linked through Sponsorship and Grants) or by the federation directly. Distribution rules are percentage-based: /prize-pools/{id}/recalculate-distribution rebuilds the per-place payout amounts whenever the pool size or rules change, and /prize-pools/{id}/generate-payouts reads the published competition results and creates a PrizePayout per finishing position. Each PrizePayout is approved individually or in batch through /prize-payouts/batch-approve with optional withholding-tax calculation.
Withholding rates are standardised per jurisdiction — Sweden 30 percent, France 30 percent, Germany 25 percent, Spain 19 percent, Italy 26 percent, United Kingdom 20 percent — and can be overridden per payout via custom_tax_rate. /prize-payouts/calculate-tax provides a preview before approval and /prize-payouts/tax-report aggregates gross, withholding and net per jurisdiction for tax filings. After approval, /prize-payouts/{id}/process-payment links the payout to a Payment document so settlement runs through the same Stripe / Swish / bank-transfer pipeline as any other outbound transaction, with Stripe Connect handling marketplace payouts where the player has a connected account. Trophies and medals are tracked in parallel via /trophy-inventories/ for stock and /trophy-awards/ for individual awards. /prize-pools/{id}/generate-awards reads the same results and assigns gold, silver, bronze, plaques or certificates per place, moving each award through pending -> awarded -> returned states.
Key capabilities
- Prize pool configuration per competition with optional sponsor linkage
- Percentage-based distribution rules with on-demand recalculation
- Auto-generation of payouts from published results via /prize-pools/{id}/generate-payouts
- Batch approval with standardised per-jurisdiction withholding tax and custom override
- Tax preview and aggregated /prize-payouts/tax-report grouping gross, withholding and net per country
- Payment integration via /prize-payouts/{id}/process-payment using Stripe Connect for marketplace payouts
- Trophy and medal inventory with auto-award from results and pending -> awarded -> returned tracking
In practice
A sponsored singles tournament closes with a 5 000 EUR prize pool. The director hits Generate payouts; the system reads the bracket and produces eight PrizePayout rows per the percentage rules (40 percent to first, 25 percent to second, and so on). She runs Calculate tax preview — the German winner sees 25 percent withholding, the French semi-finalist 30 percent.
She batch-approves all eight, the system withholds the appropriate amounts and creates Payment rows; Stripe Connect transfers net amounts to each player's connected account within two business days. In parallel /prize-pools/{id}/generate-awards assigns the gold, silver and bronze medals from inventory; when each player collects their medal at the prize-giving ceremony the volunteer scans the QR code and the award flips to awarded.
Features in this subsystem
5| ID | Status | Features |
|---|---|---|
| F08.06.01 | Shipped | Prize pool configuration per competition ✅ greenfield 40ec6f10.m-1 — /v1/prize-pools (klassbunden pott, finansieringskällor, livscykel draft→active→closed) |
| F08.06.02 | Shipped | Prize money distribution rules ✅ greenfield 40ec6f10.m-1 — regeln som KONFIG (/v1/prize-distribution-presets, …/distribution-rule), heltalsfördelning med redovisad rest |
| F08.06.03 | Shipped | Winner payment processing ✅ greenfield 40ec6f10.m-2 — raden drivs pending → approved → paid genom F1-6:s motor med tvåpersonsregel (EN approval_request per RAD, request_type=prize_payout), enskilt eller i batch med MÄTT per-rad-kvitto, och varje steg bokförs i BILL genom husets EGNA verifikatsömmar. Bokförd avvikelse: paid är kansliets BOKFÖRDA utbetalning (MarkPrizePayoutPaid är ordets ENDA skrivare), bekräftad av BILL m-10:s bankavstämning — huset har ingen F1-11-port som flyttar pengar UT till en människa, och den porten är ⊘ med ägare PAY/ägarbeslut |
| F08.06.04 | Shipped | Tax reporting for prize money ✅ greenfield 40ec6f10.m-2 — den aggregerade rapporten GET /v1/prize-payouts/tax-report per skatteland × valuta (en LÄSNING vid frågetillfället, aldrig ett lagrat aggregat) + CSV-underlaget …/tax-report/export.csv. BERÄKNINGEN är m-1:s (/v1/withholding-tax-rates, fryst på raden, null med skäl i stället för ett tyst 0). ⊘ KVAR: Skatteverkets KU-XML och utländska motsvarigheter, ägare ägarbeslut — huset bär varken formatspecifikation, personnummer/TIN eller inlämningskanal, så CSV:ns tax_identifier är ALLTID tom med sin kommentarsrad |
| F08.06.05 | Shipped | Trophy and medal inventory tracking ✅ greenfield 40ec6f10.m-3 — medaljer, pokaler, plaketter, diplom och vandringspriser inventerade per tävlingsklass, AUTO-TILLDELADE per placering i SAMMA transaktion som klassens resultat publiceras (m-1:s ankare i PublishCompetitionResult — EXAKT en utlösare), med units MÄTT ur registration_player och bristen (units_short) bokförd PÅ RADEN. Vandringsprisets pending → awarded → returned med förväntat returdatum, svepet trophy_return_reminder och ombindning till nästa upplaga (samma artikel — dess tilldelningslista ÄR gravyrlistan). Artikelns inköpskostnad bokförs i förbundets bok genom BILL:s EGNA sömmar: debet 4010 varukostnad (+ ingående moms ur bookkeeping.VATAccountFor bara när boken är momsregistrerad), kredit 1930 bank på paid_on. Bokförd avvikelse: ingen leverantörsskuld på 2440 utan faktura — attest FÖRE betalning är BILL m-7:s väg, och artikeln bär då bara en MJUK supplier_invoice_ref. ⊘ KVAR: utmärkelser/jury/rekord/hall of fame (ägare D-AWARDS), prisceremonins schemaläggning (D-EVENTS m-7), avskrivning/lagerplats och per-spelare-rader för medaljer (ägarbeslut) |