How ready are you, honestly?
Readiness signal
CompositeThis number stays at 0 until you start. Take a few practice items and review some flashcards — it will grow as your accuracy and coverage do. Nothing here is predictive of your exam result; it's a training signal, not a score.
Next study block
Progress by domain
Weighted per 2026 Candidate GuideStrengths will appear once you have at least two items answered per competency. Right now nothing has a signal.
Weak spots will appear as accuracy data comes in. The tool will not guess.
No activity yet — start a quiz or open the flashcards to see it show up here.
What the exam is, and what it's actually measuring.
Three hours. Seventy-eight situational items. Every one is asking the same underlying question in different clothes: when the moment heats up, do you stay inside the coaching partnership, or drift into advice, therapy, rescue, or the coach's own agenda?
Domain weighting
The eight competencies
Click any card for PCC Markers & depthEach item is a coaching scenario followed by four response options. You select both the best response and the worst response. Only the correct best and correct worst earn credit — other options may be reasonable but will not score. Drag-and-drop interface on the real exam.
Roughly two minutes seven seconds per item if you spread evenly. Most items will take less. Flag anything over ninety seconds and come back. Flag is a tool, not a failure. Unanswered items can be reviewed before exiting a section.
The whole exam, in plain language.
Situational judgment, with real teeth.
Every item gives you a coaching scenario and four response options. Pick the best and the worst — the other two may be reasonable but score zero, same as the real exam. After you submit, the rationale shows what to listen for next time.
Session complete.
—
Spaced repetition that actually spaces.
Nothing due right now.
You're current on this deck. Come back later, or switch to another deck above.
Adaptive coaching practice — prep before the session.
- Coaching objective for the case
- Agreement language at the current stage
- Layered questions for this stage + next
- Reflective summaries to keep in pocket
- Watchouts · drift points to catch
- Ethical flags from case content
- PCC-level elevation moves
- Acknowledge vs Validate — for this emotion
- Clearing sequence (when emotion > low)
- Gremlin · whose voice is talking
- Energy level read (1–7)
- AIM SMART scaffold (action/awareness stages)
- GAILS structure for close
- Notice in the client
- Notice in yourself
- Possible next-step pathways
Use Claude API for richer generation
Supabase Edge Function · coach-generate
// supabase/functions/coach-generate/index.ts
import { serve } from "https://deno.land/std@0.168.0/http/server.ts"
import { createClient } from "https://esm.sh/@supabase/supabase-js@2"
serve(async (req) => {
// CORS preflight
if (req.method === "OPTIONS") {
return new Response(null, {
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "authorization, content-type",
"Access-Control-Allow-Methods": "POST, OPTIONS",
},
})
}
// Auth check
const authHeader = req.headers.get("Authorization")
if (!authHeader) return new Response("Unauthorized", { status: 401 })
const supabase = createClient(
Deno.env.get("SUPABASE_URL")!,
Deno.env.get("SUPABASE_ANON_KEY")!,
{ global: { headers: { Authorization: authHeader } } }
)
const { data: { user } } = await supabase.auth.getUser()
if (!user) return new Response("Unauthorized", { status: 401 })
// Forward to Anthropic
const body = await req.json()
const response = await fetch("https://api.anthropic.com/v1/messages", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": Deno.env.get("ANTHROPIC_API_KEY")!,
"anthropic-version": "2023-06-01",
},
body: JSON.stringify(body),
})
const data = await response.json()
return new Response(JSON.stringify(data), {
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*",
},
})
})
supabase secrets set ANTHROPIC_API_KEY=sk-ant-your-key-here
supabase functions deploy coach-generate
https://<project>.supabase.co/functions/v1/coach-generate. Find it in your Supabase dashboard under Edge Functions. Paste it into the Proxy URL field and save.if (user.email !== "your@email.com") {
return new Response("Forbidden", { status: 403 })
}
Glanceable presence, during the session.
Before exploring, capture the client's Tangible Goal for this session in their own words — time-bound, specific, measurable. This anchors the agreement and gives you something concrete to return to at close.
Glanceable, not readable.
AIM SMART — find the range, then the step.
Develop the coach, not just the technique.
Reflection is a two-beat practice. First, audit the mechanics: what happened, what you noticed, what you drifted on. Then write the narrative: the moments that mattered and what you'll take into the next session.