Dit scenario laat de credits-economie van begin tot eind zien: een vraag stellen is gratis, credits verdien je door andermans vragen te beoordelen, en je betaalt ze om je eigen uitslag in te zien (resultaat terugzien). De inzage-prijs is de op de Vraag bevroren creditkosten = aantalBeoordelingen × creditkostenPerBeoordeling, waarbij aantalBeoordelingen de bij het stellen bevroren beheerinstelling aantalOpiniegevers is (het vaste aantal beoordelingen per vraag). Waarden in dit voorbeeld (de standaardwaarden): creditsPerBeoordeling = 5, creditkostenPerBeoordeling = 1 en aantalOpiniegevers = 10, dus elke vraag krijgt 10 beoordelingen en een creditkosten van 10 — twee gegeven beoordelingen (2 × 5 = 10 credits) betalen precies één inzage (alle waarden instelbaar via Systeembeheer). Credits staan strikt gescheiden van het euro-saldo voor betaald advies (voorgesteld per 2026-07-05; geen omwisselkoers), en cumulatief verdiende credits tellen mee voor de ster-mijlpaal (elke 200).
| # | Stap | Wat er gebeurt | Saldo |
|---|
| 1 | Registreren | Nieuwe gebruiker maakt een account aan. | 0 |
| 2 | Vraag stellen | De gebruiker maakt een opname, stelt zijn Beoordelingsselectie samen (de te beoordelen secties) en verstuurt — gratis; de app toonde vooraf de vaste inzage-prijs. De opname gaat direct de pool in als beoordeelbaar werk; er wordt niets afgeschreven. Het vaste aantal beoordelingen (10) en de inzage-prijs creditkosten = 10 worden op de vraag bevroren. (Voor de eerste vraag van een nieuwe gebruiker geldt per 2026-07-05 bovendien de onboarding-poort: eerst 2 vragen beantwoorden — dan staat het saldo al op 10.) | 0 |
| 3 | Vraag wordt beoordeeld | Opiniegevers beoordelen de vraag; zodra alle opinies binnen zijn, is de uitslag klaar. | 0 |
| 4 | Uitslag proberen in te zien | Onder Mijn vragen ziet de gebruiker: “inzien kost 10 credits · saldo 0”. Ontgrendelen lukt nog niet. | 0 |
| 5 | Doorverwezen naar beoordelen | De gebruiker gaat naar Opinies geven om credits te verdienen. | 0 |
| 6 | Twee beoordelingen | Hij vraagt werk op (keuzeset), kiest een vraag, scoort en verstuurt zijn opinie — en herhaalt dat: 2 × 5. | 10 |
| 7 | Uitslag ontgrendelen | Terug bij zijn eigen vraag: “inzien kost 10 credits · saldo 10” → ontgrendelen lukt; 10 credits eenmalig afgeschreven, resultaatOntgrendeld = true. Hij ziet de uitslag; verder inzien is gratis. | 0 |
De gebruiker verdient credits bij elke beoordeling. Na afronding kan hij bovendien elke ontvangen beoordeling waarderen met 0–5 op de smiley-schaal — dat is een kwaliteitsoordeel over de reviewer, geen valuta en volledig los van zijn credits (een waardering op een AI-opinie werkt niet door in een reviewer-profiel).
| Toestand | Saldo t.o.v. creditkosten | resultaatOntgrendeld | Gedrag |
|---|
| Vraag nog niet beoordeeld | n.v.t. | false | Geen uitslag; wachten tot de opiniegevers klaar zijn. |
| Beoordeeld, saldo te laag | < 10 | false | Ontgrendelen geblokkeerd → eerst verdienen (beoordelen). |
| Beoordeeld, saldo genoeg | ≥ 10 | false | Ontgrendelen lukt → 10 credits eenmalig afgeschreven, resultaatOntgrendeld = true. |
| Al ontgrendeld | n.v.t. | true | Inzien is gratis (idempotent, niets afgeschreven). |
flowchart TD
A["Vraag stellen<br/>POST /api/vragen (gratis)"] --> B["Opname in de pool<br/>opiniegevers beoordelen"]
B --> C{"Vraag<br/>beoordeeld?"}
C -->|nee| B
C -->|ja| D{"Saldo ≥<br/>creditkosten?"}
D -->|nee| E["Beoordeel andermans vragen<br/>+creditsPerBeoordeling per opinie"]
E --> D
D -->|ja| F{"resultaat<br/>al ontgrendeld?"}
F -->|nee| G["Uitslag ontgrendelen<br/>POST /api/vragen/{id}/ontgrendel<br/>−creditkosten eenmalig"]
F -->|ja| H["Uitslag inzien (gratis)<br/>GET /api/vragen/{id}/uitslag"]
G --> H
Een bezoeker zonder account doet hetzelfde, maar zijn saldo is sessie-gebonden:
- Bezoeker start een anonieme sessie (zonder registratie). Saldo: 0.
- Stelt een vraag → gratis, de opname gaat direct de pool in. Saldo blijft 0; het vaste aantal beoordelingen (10) en de inzage-prijs
creditkosten = 10 bevroren.
- Zijn vraag wordt beoordeeld; om de uitslag in te zien beoordeelt hij twee vragen → saldo 10.
- Ontgrendelt zijn uitslag → 10 credits eenmalig afgeschreven, saldo 0,
resultaatOntgrendeld = true.
- De sessie verloopt (na
anoniemeSessieMin) → de AnoniemeGebruiker en zijn credits vervallen. Een volgende keer begint hij weer op 0 en moet hij opnieuw verdienen om een volgende uitslag te ontgrendelen.
| Behoefte | Hoe het model dit ondersteunt |
|---|
| Gratis aanbod borgen | POST /api/vragen schrijft geen credits af; de opname gaat direct de pool in als beoordeelbaar werk (verdien-kans voor anderen). |
| Wederkerigheid | Wie zijn uitslag wil zien, draagt eerst zelf bij door andermans vragen te beoordelen — de credit-vorm van “beoordeel een ander om je eigen uitslag te krijgen”. |
| Geen cold-start deadlock | Iedereen start op 0 credits; omdat stellen gratis is, is er altijd werk om aan te verdienen. Geen “niemand heeft saldo, dus niemand kan beginnen”-impasse. |
| De poort op het inzien | POST /api/vragen/{id}/ontgrendel?actor=… schrijft de bevroren creditkosten (= aantalBeoordelingen × creditkostenPerBeoordeling, met het vaste aantal uit de instellingen) eenmalig af en zet Vraag.resultaatOntgrendeld = true; te weinig saldo → eerst verdienen. |
| Idempotent inzien | Een al ontgrendelde uitslag (resultaatOntgrendeld = true) kost niets meer; GET /api/vragen/{id}/uitslag is dan gratis. |
| Credits ≠ waardering ≠ euro’s | Beoordelen levert altijd credits op (deelname-valuta); de waardering 0–5 die de maker geeft is een kwaliteitsoordeel over de reviewer — geen valuta. Het (voorgestelde) euro-saldo voor betaald advies staat er strikt los van (geen omwisselkoers). Zie Credits. |
| Geval | Gedrag |
|---|
| Saldo precies genoeg | Ontgrendelen lukt; saldo wordt 0. |
| Uitslag opnieuw openen na ontgrendelen | Gratis — resultaatOntgrendeld blijft true, er wordt niets afgeschreven. |
| Saldo wijzigt tussen verdienen en ontgrendelen | De kosten/saldo-check gebeurt bij het ontgrendelen, niet bij het beoordelen. |
| Anonieme sessie verloopt vóór het ontgrendelen | Verdiende credits vervallen; opnieuw verdienen nodig om de uitslag te ontgrendelen. |
| AI-persona vult een slot | Levert de AI geen credits op (geen gebruiker). |
| Beoordeling door de tekstmoderatie afgekeurd | De reactie is ongepast → de beoordeling wordt niet opgeslagen en levert geen credit op. De reviewer hoort dit al bij het indienen en kan de tekst aanpassen. |
| Beheerder wijzigt de instellingen | De beheerinstelling bepaalt de prijs: nieuwe vragen bevriezen het dán geldende aantalOpiniegevers × creditkostenPerBeoordeling; de bevroren creditkosten (en het aantal slots) van al gestelde vragen wijzigen niet mee. |