Concentric

Reference

The mathematics

Every formula the site uses, written out and in one place. Verbose on purpose: this is the page for checking a number rather than reading an argument.

Scoring engine: v0.1.0
Reference sample: 512,295

Shorter versions of most of this appear beside the figures they govern, which is where they are useful in the moment. This page is the long form. Where a formula has a deliberate weakness, it is named here rather than in a footnote — see the limitations in Methods.

1.Scoring an answer

Every item is answered on a 1–5 scale in the Big Five core and a 1–7 scale in the closeness block. Roughly half the items are worded so that agreement means less of the trait, and those are reversed before anything is added:

scored = (reverseConstant) − raw   where reverseConstant = scaleMax + scaleMin

So a 5-point item reverses as 6 − raw and a 7-point item as 8 − raw. A missing answer is null, never zero — the distinction matters enough that the engine refuses to represent it any other way.

Facets and domains

A facet is the sum of its four items, so it ranges 4–20. A domain is the mean of its six facet sums, which also ranges 4–20:

facet = Σ scored(item)  ·  domain = (1/6) Σ facet

Not the sum of 24 items

A domain is a mean of sums, not a sum of items. Adding all 24 gives a 24–120 range that looks perfectly reasonable and silently invalidates every comparison against published norms. The engine asserts 4 ≤ raw ≤ 20 rather than trusting itself.

Prorating a partly answered facet

When some items are unanswered, the facet is scaled up to its full length:

prorated = (answered mean) × itemCount

That fixes the point estimate and leaves a lie in the interval, because a 3-item scale is less reliable than a 4-item one. So the reliability is walked backwards through Spearman–Brown before the band is drawn:

α' = (r·α) / (1 + (r − 1)·α)   where r = answered / itemCount

With r < 1 this lowers α, which widens the interval. Prorating that only moved the estimate would report a shorter test as though it were as precise as a longer one.

2.Percentiles

Norms are stored as an exact discrete distribution — an integer count for every value the scale can take — rather than as a fitted curve. A percentile is then the mid-rank form used in test manuals:

PR(x) = 100 · (countBelow(x) + ½·countEqual(x)) / n

The half-count matters. The naive “proportion below” returns 0 for the lowest observed score, and telling somebody they are at the 0th percentile is both wrong and unkind. Results are clamped to [100/2n, 100 − 100/2n], so the reported extreme is honest about the resolution the reference sample actually supports.

Composing an arbitrary group

Because cells hold integer counts over a fixed support, they are additive. The distribution for ages 25–40 is the elementwise sum of the per-year cells for 25 through 40 — identical to what you would get by scoring those people directly, not an interpolation between bands. The pooled moments come from the parts rather than from the summed counts:

μ = Σ nᵢμᵢ / Σ nᵢ  ·  σ² = Σ nᵢ(σᵢ² + μᵢ²) / Σ nᵢ − μ²

Reading the moments back off the summed counts instead would give the moments of the snapped data — a prorated score does not land exactly on the grid — and the composed window would then disagree with the banded cell describing the same people.

3.Confidence intervals, and the true score

Two standard errors matter, and they are not the same:

SEM = σ·√(1 − α)    SEest = σ·√(α(1 − α)) = SEM·√α

The headline percentile on a results page is not the percentile of the observed score. It is the percentile of Kelley’s regressed true score:

T = μ + α·(X − μ)

A test is imperfectly reliable, so an extreme observed score is on average partly luck. Kelley pulls it toward the reference mean in proportion to the unreliability: a facet with α = 0.7 keeps 70% of its distance from the mean. The band is centred on T and is z·SEest wide, which is the statistically correct interval and has one consequence worth stating plainly — your observed score can sit outside your own confidence band, and at the extremes it often does.

Coverage is 80% rather than 95%. A 95% band on a four-item facet spans roughly forty percentile points and reads as “this test does not work”. The trade is disclosed rather than hidden: every band is labelled with its coverage.

The reference sample has error too

A percentile estimated from a finite sample is itself uncertain. The band is widened by the Wilson score half-width at each end:

half = (z / (1 + z²/n)) · √( p(1−p)/n + z²/4n² )

Negligible against 512,295 people, and dominant at a few hundred — which is the regime any novel scale of ours lives in for a long time. It is added rather than combined in quadrature: overstating precision is the failure that matters here, so the arithmetic errs wide.

4.Domain coherence

A domain score is a mean of six facets, and a mean describes nobody when the six disagree. Two gates decide whether to say so, and both must fire.

Gate A — is the spread real? Under the null that every facet shares one true standing, each facet z has error variance (1 − α), so dividing by it turns the spread into a chi-square:

Q = Σ (zᵢ − z̄)² / (1 − αᵢ)  ~  χ²(k − 1)

Gate B — is it unusual? Statistically real is not the same as noteworthy: with six facets at these reliabilities a great many people clear Gate A. So the descriptive spread is compared against the distribution of everyone else’s:

spread = √( Σ (zᵢ − z̄)² / k )  flagged when spread > p90 of the reference

The reference percentiles are measured on the norm sample, not chosen. Under a common factor model the expected within-person facet-z SD is already around 0.71, so a hand-picked threshold would flag most of the population and the warning would mean nothing.

5.The closeness gradient

Ten facets are asked again at four ordered levels of closeness — inner circle, friends, acquaintances, strangers. The four ring scores are decomposed into four orthogonal contrasts. The decomposition is saturated: four numbers in, four out, nothing lost, and the original rings can be reconstructed exactly.

level    [0.25, 0.25, 0.25, 0.25]  — mean expression
linear   [-3, -1, 1, 3]  — the construct
quadratic [1, -1, -1, 1]  — curvature
cubic    [-1, 3, -3, 1]  — unpredicted: a noise probe

Each contrast is the dot product of its weights with the four ring means. The linear contrast converts to a slope per ring step by dividing by 10 — the rings centred at ±1.5, ±0.5 have sum of squares 5, and b = ½·L/5:

L = −3y₀ − y₁ + y₂ + 3y₃  ·  slope = L / 10

Negative means contraction — less expression toward more distant people. That is the expected direction for the prosocial facets and the reversed direction for Anger, which is precisely why Anger is in the instrument.

The cubic buys a free noise estimate

No theory predicts a cubic shape across four ordered rings, so whatever lands there is treated as measurement error — a per-person noise estimate at no extra item cost:

noise = √(C² / 20)

This assumes zero true cubic variance. If some real plateau-then-drop shape exists, the estimate is too large — which errs conservative, the right direction, and becomes checkable in aggregate once the sample is big enough.

Why not simply subtract the ends?

Because a difference score cannot carry the claim. The reliability of a difference between two correlated measurements is

ρ(diff) = (α − rxy) / (1 − rxy)

which collapses as the two measurements correlate — and ring scores correlate strongly. It lands around .27 for these facets. Worse, inner − strangers throws away the two middle rings, and those are exactly where a gradual taper is distinguished from a cliff. That distinction is the substantive claim.

A hyperbolic discount rate is wrong for a different reason: four ordinal rings are not the ratio-scaled distances that model assumes, and coding them 1,2,3,4 rather than 1,5,20,100 moves the estimate of k by two orders of magnitude. Hyperbolic and exponential fits are computed as diagnostics only, never as a headline.

How reliable is a slope?

For contrast weights w over rings with SDs σ, reliabilities α and inter-ring correlation matrix R:

ρ(contrast) = 1 − ( Σ wᵢ²σᵢ²(1 − αᵢ) ) / ( Σᵢ Σⱼ wᵢwⱼσᵢσⱼRᵢⱼ )

R has never been measured on real respondents. Until it has, it is modelled as AR(1) — Rᵢⱼ = ρ^|i−j|, adjacent rings correlating most — and every reliability figure downstream inherits that assumption. It is the single most load-bearing unmeasured quantity in the instrument.

Shrinkage, and the person-level index

A single facet slope is too noisy to rank anybody on, so each is pulled toward the population mean by its own reliability — Kelley again, applied to a slope — and the headline is a reliability-weighted mean of the standardised per-facet linear contrasts:

SCI = Σ ρᵢ·zᵢ / Σ ρᵢ

The Social Contraction Index is reported as a z-like number only when real norms back the standardisation. With no reference sample the division is by an assumed SD, which manufactures precision against a population that does not exist, so the raw mean slope is shown instead and the absence of a comparison group is stated.

Naming a shape

The profile is bootstrapped and classified into flat, smooth, cliff, non-monotone or ambiguous. A label is printed only when the bootstrap gives P(class) ≥ 0.60; below that the profile is drawn with its bands and the page says the pattern is not distinguishable from noise.

flat additionally requires an equivalence test, not merely a failed significance test. “We could not reject sameness” is not evidence of sameness, and treating it as such told people the single-number model described them well when the truth was that the instrument could not tell. At three statements per ring, sameness is essentially never claimable — about 2 flat labels survive out of 31,200 simulated respondents, and reaching a one-point margin would need roughly 21 items per ring.

6.Comparing the gradient to the conventional score

The two live on different scales — a 4-item facet sum on a 1–5 metric against ring means on a 1–7 one — so both are rescaled to a proportion of their own scale before anything is compared:

conv = (raw/itemCount − scaleMin) / (scaleMax − scaleMin)  ·  ring = (value − 1) / 6

This is a rescaling, not an equating. It is legitimate for asking whether the conventional number sits inside the range of the rings, and it is not a claim that a 5-point and a 7-point item mean the same thing. The verdict is then one of four:

  • mismatch — the conventional score sits more than 0.2 of the scale outside the ring range entirely.
  • wide — the rings span at least 0.25 of the scale, so one number is summarising a real range.
  • insufficient — the span is smaller than what this instrument could detect. Nothing is claimed.
  • consistent — the rings agree, and the instrument was precise enough for that to mean something.

The last two are kept apart deliberately. Collapsing them lets a failure to measure be reported as sameness, which is the single easiest way to make this instrument lie. The gate is the minimum detectable drop for that facet’s own precision:

detectable = minimumDetectableDrop(SEMring) / 6

consistent requires detectable ≤ 1/6 of the scale. Where the instrument cannot resolve a sixth of the range, it says so instead.

7.The Compass

Five domains, each read high or low against its own reference group, give 2⁵ = 32 codes. The split is at the 50th percentile of the regressed true score, not of the observed one, and not of the raw score.

pole = high when percentile(T) ≥ 50, otherwise low

A letter is decisive only when the confidence interval clears the midpoint — lo > 50 or hi < 50. A domain whose band straddles 50 is genuinely undecided, and saying otherwise would be inventing a distinction the measurement does not support.

Someone whose letters are mostly undecided is not a failure of the system: they get The Fulcrum, which is a result rather than an error. Sitting near the middle on several axes is a real way to be.

The two meta-traits

The higher-order structure most often reported in the literature, computed from the code rather than re-derived:

Plasticity = Openness + Extraversion  (0–2)
Stability  = Conscientiousness + Agreeableness + Emotional Stability  (0–3)

The cube on /types places a code at the corner given by its first three letters read as three bits — Openness on x, Conscientiousness on y, Extraversion on z. Four codes share each corner; how they are separated on screen is a property of the drawing, not of the code.

8.Population figures

Nothing on a public page is computed from raw responses at request time. Figures are rolled up on a cadence, suppressed, and published; a page then reads one row. That arrangement is what keeps a public request off the response table, and it is also what makes the differencing defence below possible at all.

Correlations

Pearson, over the cases scorable on both scales:

r = Σ(x − x̄)(y − ȳ) / √( Σ(x − x̄)² · Σ(y − ȳ)² )

Computed at facet level only. Domains are means of their own facets, so including them would fill the matrix with correlations that are true by construction. A pair on fewer than three people returns 0 rather than a number — two points always correlate perfectly, which is not a finding.

Direction against prediction

Each of the ten closeness facets was given a predicted direction in the item bank before any data existed. The published figure is the mean per-person slope, with a deadband so that noise is not given a sign:

observed = contracts when slope < −0.05, expands when slope > +0.05, otherwise flat

Agreement is reported for steep, flat and reversed only. moderate was authored as an expectation rather than a testable direction, and open makes no prediction at all — both return “not applicable”, never a hit or a miss.

The supersede rate is the share of respondents with at least one facet whose verdict is wide or mismatch. Facets returning insufficient are excluded from both halves of the fraction — counting them in the denominator would deflate the rate with facets nothing was learned about.

k-anonymity: four rules, not one

The minimum cell size is the obvious rule and the least of the four. Every one of the others is a way of recovering a suppressed cell from cells that were published.

  1. Minimum cell size. Nothing below n = 25 is published.
  2. Complementary suppression. If exactly one child of a published parent is hidden, subtracting the published children recovers it exactly. So a second child is hidden too — and because that can expose a cell elsewhere, the process iterates to a fixed point rather than running once.
  3. Dimension cap. No cell defined by more than 3 simultaneous filters, at any size. A cell of 400 defined by six conjoined attributes is still a re-identification vector, because the attacker usually knows the six.
  4. Differencing over time. Somebody who knows roughly when a target submitted can diff last night’s figure against tonight’s and recover that person exactly. So: publish weekly, republish a cell only once it has gained 10 respondents, round every published count to the nearest 5, and never publish a minimum, a maximum or an exact count.

Rule 4 is the one that gets left out, and it defeats the other three completely: with nightly publishing, every cell above the threshold leaks its newest member the day they join. Rounding is to nearest rather than down — rounding consistently down makes the residual recoverable across releases, which is the same attack wearing a different hat.

Suppression is applied when the rollup is written, not when it is read. A suppressed value never exists in the payload that reaches a browser, even in a field nothing renders.

Two floors, and why they differ

Figures pooled over every respondent — the closeness coverage counts, the directional table — are published from the first respondent rather than from 25. That is deliberate and it follows the floor’s purpose rather than its number: the minimum cell size protects a demographic cell from being small enough to single somebody out, and these carry no demographic key at all, so there is no cell to isolate a person within. What protects a respondent there is the republication rule.

Everything sliced by sex, age or type is such a cell, and the floor governs every one of them. The moment any pooled figure gains a demographic breakdown, it stops being pooled and the floor applies.

9.Where the arithmetic is weakest

Stated here rather than left to be discovered, because a formula page that only lists formulas is an advertisement.

  • The inter-ring correlation matrix is assumed, not measured. Every slope reliability, and therefore every shrunken slope and the whole Social Contraction Index, inherits an AR(1) model nobody has checked against respondents.
  • Three statements per ring is few. The design cannot rule out differences smaller than roughly two points on a seven-point scale, so “no gradient detected” is nearly always uninformative rather than a null result.
  • Kelley regression assumes the reference group is yours. Shrinking toward the mean of a self-selected internet sample is only right to the extent that sample is the right comparison, and it is not a probability sample.
  • The cubic noise probe assumes no true cubic variance. If a real plateau-then-drop shape exists, every per-person noise estimate is too large.
  • Proportion-of-scale alignment is not equating. It supports the question asked of it and would not support a claim that a 5-point and a 7-point response mean the same thing.

The falsification conditions this instrument is held to are on /why, and the item bank and administration detail are in /methods.