Praxis Guide Sign in
Guide · How scoring works

How the scores are computed

Every number in Praxis is computed by rules you can read on this page. Each score comes from your committed playbook and the trades you log against it — nothing is hand-graded.

Where the numbers come from

The loop is short: set up your account, compose and commit a playbook, log each trade, and write a short review in the evening. The score reads two things off that record.

  • Per-trade rules are derived from what you logged. Praxis checks each trade against your committed playbook and resolves each rule to kept or broken on its own — you do not answer them by hand.
  • Day-level checks are the two end-of-day questions you answer yourself in the review, plus the daily trade cap, which Praxis derives for you from the trades you logged.

Both feed one daily execution score.

The execution score — one session

Each logged session earns a score from 0 to 100. The math is the same whether you traded or not:

StepEffect
Start100
Each Standard (non-critical) rule broken−12
One Critical rule brokencapped at 40
Two Critical rules brokencapped at 25
Three or more Critical rules brokencapped at 0
Proud of execution (4 or 5 on the 1–5 scale)+3

The result is clamped to the range 0 to the critical cap. The caps are the core idea: Critical rules are the ones that end accounts, so breaking one floors the session no matter how much else went right. A session with nine rules kept and one Critical broken is a 40 at best.

The 0–100 is the canonical number; alongside it the score resolves to a one-word Conduct verdict — Sharp, Clean, Minor, Lapsed, or Wait. Sharp is 90 or higher, Clean is 80 or higher, Minor is anything below that with no Critical break, Lapsed is any session with a Critical breach, and Wait is a day you sat out. The number is the measure; the word is how it reads at a glance.

A session is clean when it scores 80 or higher with zero Critical breaks. Clean sessions drive streaks, the heatmap's best shade, and several milestones.

Wait days are scored the same way

A wait day — a session where you did not trade — runs through the exact same formula off its rule answers. There is no separate scoring system for no-trade days. With no trade, the per-trade rules resolve to not-applicable and only the day-level checks can lower the score, so a clean wait day breaks no rules and scores about 100. Sitting out cleanly is a clean day.

Passing on a live setup is tracked as awareness and feeds your metrics — it does not add to the score.

The execution average in the discipline score below counts traded sessions only. A wait day never lifts or lowers that average; it shows up through clean rate and ritual instead.

The discipline score — thirty days

The headline number on your dashboard is a rolling thirty-day composite — the standing, not a single session:

ComponentWeightWhat it measures
Execution average45%Mean session score across the days you traded (wait days count via clean rate and ritual instead).
Clean rate30%Share of all logged sessions that ended clean — including clean wait days.
Consistency10%How tightly your session scores cluster — steadiness over spikes.
Ritual rate15%Sessions logged out of trading days expected. Showing up is scored, because the practice only works if it happens.

Components without enough data don't fake it. Consistency needs at least three scored sessions, and execution gates out entirely over a stretch of pure wait days where nothing was traded. When a term drops out, its weight is redistributed across the others rather than scored as a zero.

The ritual-rate denominator counts trading days (weekdays) only, and subtracts any away periods you have declared. A vacation is not a discipline failure, so the denominator does not pretend otherwise. Adding an away period after the fact — entering last week's trip today — is the intended repair.

Tiers

The discipline score names where you stand:

TierDiscipline score
At Risk0–59
Inconsistent60–69
Developing70–79
Disciplined80–89
Operator90–100

Before your first scored days you stand at Novice — a pre-tier, not a judgment. When your score crosses a boundary in either direction, the moment is marked: the data is read back, and the tier name is given or withdrawn. Demotions get the same honesty as promotions. The tier is a reading, not a reward.

How scores surface

The dashboard does not lead with a number. Its top slot is a sentence — the app's reading of where you are right now — with the scores below it. The sentence is built from your real state: it names a climb when you are stringing clean days after a hard one, it speaks plainly when a day went badly, and it only uses your tier's name once you have actually held that tier for a stretch.

Two things follow. First, the discipline tile shows a dash until enough days exist for the thirty-day window to mean something — a scalar from five days is noise. Second, the most useful shape a record can hold is not a flat line of clean days; it is a dip followed by a climb, because only that shape shows change. That is why the climb has its own pattern, and why one milestone — Climbed Back — cannot be earned by a spotless record.

Logging a bad day honestly always helps you here. It extends the ritual streak, it is the only thing that can start a climb, and it is the raw material of every pattern the app can show you.

The identity signal — months

Discipline you summon and discipline that has become character look identical on a scoreboard. The identity signal tells them apart. It reads three felt states across your last thirty days: how strongly things pulled at you (inverted — less pull, more integration), how native the process felt, and whether the practice felt like who you are now.

It is slow: it says nothing until roughly twenty entries exist. Together with the discipline score it places you in one of four cells:

Live example — the actual component, sample data
Discipline and identity
Discipline against identity — the path over months
Operatingit is youDriftingfeels native, slippingForgingstill effortfulSteadyingearly, or returnedyouDiscipline — the work, by tierat riskinconsistentdevelopingdisciplinedoperatorIdentity — has it become who you arefeels effortfulfeels native

You are doing the work, and it is still work. That is not failure — it is the forge. The feeling follows the behaviour, in months not weeks. Stay on the line.

disciplined tier · identity 71 · feeling is running ahead of the work

The path matters more than the point. Watch where it moves over months.

Operating — discipline at 80+, identity at 75+ — is the destination cell: trading well is simply what you do. Holding it for twelve consecutive weeks earns the Second Nature milestone.

What never touches your score

  • P&L. Captured per trade but quarantined — it powers a process-versus-outcome read and never moves your score, and it never shows in-session. A green day that broke rules is a bad day; a red day that kept them is a good one.
  • Trade counts and size. Derived from your logged trades and mirrored against your playbook's caps, never scored. If a number crosses a cap, the surface says so quietly.
  • Felt states. Awareness signals, not performance inputs. The one deliberate exception is the +3 pride bonus.
  • Repair answers. Naming repair never lowers a score — the behaviors that follow repair are already scored through your rules. Punishing the confession would teach you to stop confessing.
  • Absence. A day you did not log is a gap, never a zero. It shows up in the ritual rate and nowhere else.
  • Away periods. Pure exclusions. They un-penalize showing up; they never add to any quality metric.

One more deliberate refusal: no metric in Praxis can be satisfied by doing nothing. Every streak and rate requires a minimum of actual, logged practice before it speaks.