Metric definitions
Definitions v0.3 · last updated 2026-07-13
Review score
Priority score GSS uses to rank candidates for human review. Higher ranks first.
Formula & interpretation
Formula: review_score = weirdness_score − artefact_risk
Why GSS records it: Combines how unusual an object is with how likely it is to just be a measurement artefact, so reviewers see the most promising cases first.
Interpretation: Higher is more worth reviewing. A high weirdness score can still net out low if artefact risk is also high.
Weirdness
Composite measure of how statistically or physically unusual the object is.
Formula & interpretation
Formula: 10 × max(−anomaly_score, 0) + 0.45 × min(|full_red_score|, 8) + 0.25 × min(colour_smoothness, 8) + 0.35 × max(mu_r − 22.5, 0) + 0.20 × max(min(concentration_r, 7) − 2.5, 0), plus fixed bonuses for possible_lsb (+1.25), compact_red (+0.75), and extreme_colour (+0.75) flags.
Why GSS records it: Turns the raw anomaly score plus colour/morphology diagnostics into one blended “how interesting is this” number.
Interpretation: Higher means more unusual by these diagnostics. It says nothing about whether the object is a real source or an artefact -- see artefact risk for that.
Artefact risk
Estimate of how likely the object is a measurement or deblending artefact rather than a real unusual source.
Formula & interpretation
Formula: Sums fixed penalties for: likely_model_issue (+2.5), probable_shred (+2.0), large petroRad_r (+1.5 if >25, +0.75 if >18), high concentration_r (+1.5 if >9, +0.75 if >7), extreme colour_jump_max (+0.75 if >3.5), extreme psf_per_radius (+1.0 if >0.75), and a small penalty (+0.25) if already catalogued.
Why GSS records it: Isolation Forest anomalies are frequently deblending failures, saturated stars, or bad photometry rather than genuinely unusual astrophysics. This flags that risk explicitly instead of hiding it inside the weirdness score.
Interpretation: Higher means more likely to be junk. Values above ~5 (or any likely_model_issue flag) are auto-classified as triage_class = artefact_risk.
Anomaly score
Raw Isolation Forest score for this object, fit against every object scanned so far (not just this tile).
Formula & interpretation
Formula: sklearn IsolationForest.score_samples() on RobustScaler-normalised features.
Why GSS records it: This is the underlying statistical outlier signal everything else in GSS's triage is built on top of.
Interpretation: More negative = more isolated from the rest of the population = more anomalous.
Full red score
Sum of all four adjacent-band colour indices.
Formula & interpretation
Formula: full_red_score = (u−g) + (g−r) + (r−i) + (i−z)
Why GSS records it: A simple, cheap proxy for how red the object's overall spectral energy distribution is.
Interpretation: Large positive values indicate an unusually red object; contributes to the extreme_colour and compact_red flags.
Colour smoothness
How smoothly colour changes across the five SDSS bands.
Formula & interpretation
Formula: colour_smoothness = |Δ(u−g, g−r)| + |Δ(g−r, r−i)| + |Δ(r−i, i−z)|
Why GSS records it: Real stellar/galaxy spectra usually vary smoothly band to band; abrupt jumps can indicate unusual astrophysics (e.g. strong emission features) or unreliable photometry.
Interpretation: Low = smooth spectral energy distribution. High = abrupt colour changes worth a closer look.
Colour jump max
The single largest colour index, in absolute value.
Formula & interpretation
Formula: colour_jump_max = max(|u−g|, |g−r|, |r−i|, |i−z|)
Why GSS records it: Catches a single extreme colour that a smoothness/sum metric could dilute.
Interpretation: Large values may indicate unusual spectra or bad photometry in one band.
PSF/radius
PSF-minus-model magnitude difference in r-band, scaled by the object's angular size.
Formula & interpretation
Formula: psf_per_radius = (psfMag_r − r) / petroRad_r
Why GSS records it: Indicates whether the object looks point-like (star-like) relative to its apparent size -- a useful artefact/star-vs-extended-source signal.
Interpretation: Large absolute values contribute to the likely_model_issue flag (deblending/PSF-model mismatch).
Compactness proxy
How concentrated the object's light is, relative to its overall size.
Formula & interpretation
Formula: compactness_proxy = concentration_r / petroRad_r
Why GSS records it: Cheap morphology diagnostic distinguishing compact sources from large diffuse ones.
Interpretation: Larger values indicate light concentrated into a small angular radius.
SB offset
Difference between mean surface brightness and point-source r-band magnitude.
Formula & interpretation
Formula: surface_brightness_offset = mu_r − r
Why GSS records it: A cross-check on the surface brightness (mu_r) calculation relative to the object's raw magnitude.
Interpretation: Large mu_r values (feeding a large positive offset) contribute to the possible_lsb (low surface brightness) flag.
Triage flags
Independent yes/no diagnostic flags, any of which may apply to the same object: extreme_colour, likely_model_issue, possible_lsb, compact_red, probable_shred, gaia_matched, catalogued, wise_red_excess.
Formula & interpretation
Formula: Each flag is a fixed threshold rule over the diagnostics above -- see triage.py:add_candidate_triage for the exact conditions.
Why GSS records it: Gives reviewers specific, checkable reasons an object was flagged, instead of just a single opaque score.
Interpretation: catalogued/gaia_matched are soft signals only -- known objects are not dropped, just slightly deprioritised (+0.25 artefact_risk). wise_red_excess (W1-W2 > 0.8 mag on a locally crossmatched WISE source) only evaluates when a WISE match exists at all -- no match means the flag can't fire, not that it's false.
Triage class
Single best-fit bucket for this candidate, chosen from the flags and scores above in priority order (artefact risk first, then shred, then diffuse, LSB, compact red, extreme colour, high interest, else mixed_anomaly).
Formula & interpretation
Formula: See triage.py:add_candidate_triage for the exact if/elif ladder.
Why GSS records it: One label to sort/filter the review pack by, since a card can trip multiple flags at once.
Interpretation: Not mutually exclusive with the flags shown above -- it's a priority pick among the flags, not a merge of all of them.