Skip to main content

Percentile Ontology

Descriptive Statistics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
FULL EXECUTABLE FLOW ALGEBRA — PERCENTILE ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/descriptive-statistics/percentile-ontology.html

FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Descriptive Statistics"
ONTOLOGY := "Percentile Ontology"
PRIMARY_ENTITY := Percentile
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"

BEGIN_FLOW

Percentile :=
    PositionalStatistic
    ∧ QuantileMeasure
    ∧ OrderedDistributionPartition

PercentileLevel := p where 0≤p≤100
QuantileProbability := q=p/100
RandomVariable := X
CDF := F(x)=P(X≤x)

PopulationPercentile :=
    P_p
    =
    inf{x:F(x)≥p/100}

QuantileFunction :=
    Q(q)
    =
    inf{x:F(x)≥q}

PercentileQuantileRelation :=
    P_p=Q(p/100)

MedianRelation :=
    P_50=Median
    under compatible quantile convention

QuartileRelations := {
    P_25=Q1,
    P_50=Q2,
    P_75=Q3
}

DecileRelation :=
    D_k=P_(10k)
    for k∈{1,...,9}

PercentileRank :=
    PercentageOfDistribution
    at_or_below specified value
    under defined tie convention

Dataset := {x_1,...,x_n}
OrderedDataset := x_(1)≤x_(2)≤...≤x_(n)
OrderStatistic := x_(k)

SamplePercentile :=
    EstimateOfPopulationPercentile
    computed_from ordered sample

PercentileAlgorithm :=
    OrderedData
    ∧ PercentileLevel
    ∧ PositionRule
    ∧ InterpolationRule
    → SamplePercentile

PercentileConventionConstraint :=
    MultipleSampleQuantileAlgorithmsExist
    ⇒ AlgorithmMustBeRecorded

NearestRankMethod :=
    Rank=ceil(pn/100)

NearestRankPercentile :=
    x_(ceil(pn/100))
    for p>0

LinearInterpolationMethod :=
    PercentilePosition
    between adjacent order statistics
    → Interpolate

Interpolation :=
    Q_hat(q)
    =
    (1-γ)x_(j)+γx_(j+1)

EndpointPercentiles :=
    P_0→Minimum
    ∧ P_100→Maximum
    under endpoint-support convention

Minimum := x_(1)
Maximum := x_(n)

PercentileMonotonicity :=
    p1≤p2
    ⇒ P_p1≤P_p2

PercentileBounds :=
    Minimum≤SamplePercentile≤Maximum

PercentileUnit :=
    SameMeasurementUnit
    as source variable

TranslationEquivariance :=
    P_p(X+c)=P_p(X)+c

PositiveScalingEquivariance :=
    a>0
    ⇒ P_p(aX)=aP_p(X)

IncreasingTransformation :=
    StrictlyIncreasing(g)
    ⇒
    Q_(g(X))(q)=g(Q_X(q))
    under compatible convention

PercentileDifference :=
    P_b-P_a

InterquartileRange :=
    IQR=P_75-P_25

InterdecileRange :=
    P_90-P_10

FiveNumberSummary := {
    P_0,
    P_25,
    P_50,
    P_75,
    P_100
}

PercentileThreshold :=
    P_p
    used_as distribution-relative cutoff

PercentileBand :=
    Interval(P_a,P_b)

PercentileProfile := {
    P_1,
    P_5,
    P_10,
    P_25,
    P_50,
    P_75,
    P_90,
    P_95,
    P_99
}

DistributionShapeFromPercentiles :=
    PercentileSpacing
    → InformationAbout(
        Spread,
        Skewness,
        TailWeight
    )

BowleySkewness :=
    (P_75+P_25-2P_50)
    /
    (P_75-P_25)
    where IQR>0

Robustness :=
    InteriorPercentiles
    generally less sensitive
    to extreme observations
    than minimum-maximum measures

ExtremePercentileSensitivity :=
    PercentilesNear0Or100
    become more sensitive
    to tail observations

EmpiricalCDF :=
    F_n(x)
    =
    (1/n)Σ_i1_(x_i≤x)

EmpiricalQuantile :=
    GeneralisedInverse
    of EmpiricalCDF
    under selected convention

DiscreteDistributionPercentile :=
    SmallestValue x
    such_that F(x)≥q

ContinuousDistributionPercentile :=
    Solve F(x)=q
    when F continuous_and_strictly_increasing

UniformPercentile :=
    X~Uniform(a,b)
    ⇒
    P_p=a+q(b-a)

NormalPercentile :=
    X~N(μ,σ²)
    ⇒
    P_p=μ+σΦ^(-1)(q)

StandardNormalPercentile :=
    z_p=Φ^(-1)(q)

ExponentialPercentile :=
    X~Exponential(λ)
    ⇒
    P_p=-ln(1-q)/λ
    for 0≤q<1

LogisticPercentile :=
    X~Logistic(μ,s)
    ⇒
    P_p=μ+s ln(q/(1-q))
    for 0<q<1

CauchyPercentile :=
    X~Cauchy(x0,γ)
    ⇒
    P_p=x0+γtan[π(q-1/2)]

WeibullPercentile :=
    X~Weibull(k,λ)
    ⇒
    P_p=λ[-ln(1-q)]^(1/k)

LognormalPercentile :=
    X~LogNormal(μ,σ²)
    ⇒
    P_p=exp(μ+σΦ^(-1)(q))

GammaPercentile :=
    InverseGammaCDF(q;α,β)

BetaPercentile :=
    InverseBetaCDF(q;α,β)

ChiSquaredPercentile :=
    χ²_(q,ν)

StudentTPercentile :=
    t_(q,ν)

FDistributionPercentile :=
    F_(q,d1,d2)

CriticalValueRelation :=
    DistributionPercentile
    may define hypothesis-test critical value

ConfidenceIntervalRelation :=
    PercentilesOfReferenceDistribution
    determine interval endpoints

BootstrapPercentileMethod :=
    BootstrapReplicateDistribution
    → SelectLowerAndUpperPercentiles
    → ConfidenceInterval

PercentileRankVsPercentile :=
    Percentile maps probability rank_to value
    whereas PercentileRank maps value_to relative rank

QuantileVsPercentile :=
    Quantile commonly uses [0,1]
    whereas Percentile uses [0,100]

PercentileVsPercentage :=
    Percentile describes distribution position
    whereas Percentage describes proportion_or_rate

WeightedPercentile :=
    Percentile
    computed_from cumulative weights

WeightedQuantileProcedure :=
    SortValues
    → AccumulateWeights
    → NormaliseCumulativeWeight
    → LocateTargetProbability
    → ApplySpecifiedInterpolation

WeightConstraint :=
    w_i≥0
    ∧ Σ_iw_i>0

GroupedDataPercentile :=
    EstimatedPercentile
    from cumulative class frequencies
    under interpolation assumption

MissingDataPercentile :=
    Percentile
    computed_from selected nonmissing observations
    under explicit missingness rule

EmptyDatasetPercentile := Undefined

SingleObservationPercentile :=
    n=1
    ⇒
    InteriorSamplePercentiles
    equal sole observation
    under common conventions

NominalPercentileInvalid :=
    NominalVariable
    ⇒ PercentileNotMeaningful

OrdinalPercentile :=
    Meaningful
    under ordered-category quantile convention

MeasurementScaleConstraint :=
    Percentile
    requires at least ordinal ordering

PercentileSamplingDistribution :=
    DistributionOfSampleQuantile
    across repeated samples

AsymptoticQuantileDistribution :=
    IIDContinuousSample
    ∧ f(Q(q))>0
    ⇒
    sqrt(n)(Q_hat(q)-Q(q))
    →
    N(
        0,
        q(1-q)/f(Q(q))²
    )

AsymptoticPercentileVariance :=
    q(1-q)
    /
    [n f(Q(q))²]

PercentileEstimationUncertainty :=
    DependsOn(
        SampleSize,
        TargetProbability,
        DensityNearQuantile,
        SamplingDesign
    )

TailPercentileUncertainty :=
    ExtremePercentiles
    often require larger samples
    for stable estimation

PercentileConstraint :=
    ConstraintOn(
        Ordering,
        PercentileLevel,
        QuantileConvention,
        Interpolation,
        Missingness,
        Weighting,
        SamplingDesign
    )

PercentileConsistency :=
    DataScope
    ∧ Ordering
    ∧ QuantileConvention
    ∧ InterpolationRule
    ∧ MissingnessRule
    ∧ WeightingRule
    jointly_compatible

InvalidPercentile :=
    PercentileLevelOutsideBounds
    ∨ NonOrderableVariable
    ∨ EmptyEffectiveDataset
    ∨ InvalidWeights
    ∨ UndefinedQuantileConvention
    ∨ UndocumentedMissingness
    ∨ InconsistentInterpolationRule

PercentileValidation :=
    ResolveVariable
    → ResolveVariableType
    → ValidateOrdering
    → ResolveDataScope
    → ResolvePercentileLevel
    → ResolveObservationsOrDistribution
    → ResolveMissingness
    → ResolveWeights
    → ResolveQuantileConvention
    → SortOrResolveCDF
    → ComputePercentile
    → ValidateMonotonicityAndBounds
    → ValidateResult

PercentileState := {
    Variable,
    DataScope,
    PercentileLevel,
    QuantileProbability,
    Observations,
    EffectiveCount,
    Ordering,
    QuantileConvention,
    InterpolationRule,
    Weights,
    MissingnessRule,
    PercentileValue,
    SamplingContext,
    Evidence,
    Confidence,
    Provenance
}

SEMANTIC_EQUIVALENCE(PercentileA,PercentileB) :=
    same(DataScope)
    ∧ same(VariableSemantics)
    ∧ same(PercentileLevel)
    ∧ same(QuantileConvention)
    ∧ same(InterpolationRule)
    ∧ same(MissingnessRule)
    ∧ same(WeightingRule)

PercentileOntology :=
    Classes
    ∧ Relations
    ∧ Constraints
    ∧ Axioms
    ∧ InferenceRules

CoreClasses := {
    Percentile,
    PopulationPercentile,
    SamplePercentile,
    PercentileRank,
    Quantile,
    Quartile,
    Decile,
    OrderStatistic,
    WeightedPercentile,
    GroupedPercentile,
    BootstrapPercentile,
    StatisticalVariable,
    StatisticalObservation,
    Dataset,
    Sample,
    Population,
    PercentileConstraint
}

CoreRelations := {
    computedFrom,
    summarises,
    equalsQuantile,
    hasLevel,
    hasRank,
    boundedBy,
    interpolatedFrom,
    weightedBy,
    estimatedBy,
    transformedBy,
    comparedWith,
    constrainedBy,
    equivalentTo,
    tracesTo
}

TypedRelations :=
    Percentile --computedFrom--> OrderedObservations
    Percentile --summarises--> StatisticalVariable
    Percentile --equalsQuantile--> Quantile
    Percentile --hasLevel--> PercentileLevel
    Observation --hasRank--> PercentileRank
    SamplePercentile --interpolatedFrom--> OrderStatistic
    WeightedPercentile --weightedBy--> Weight
    PopulationPercentile --estimatedBy--> SamplePercentile
    Percentile --transformedBy--> MonotonicTransformation
    Percentile --tracesTo--> Provenance

InferenceRules := {
    0≤p≤100
        ⇒ QuantileProbability=p/100,

    Percentile(p)
        ⇒ Quantile(p/100),

    p=50
        ⇒ Percentile=Median
        under compatible convention,

    p=25
        ⇒ Percentile=Q1,

    p=75
        ⇒ Percentile=Q3,

    p1≤p2
        ⇒ P_p1≤P_p2,

    StrictlyIncreasing(g)
        ⇒
        P_p(g(X))=g(P_p(X))
        under compatible convention,

    NominalVariable
        ⇒ FlagPercentileAsSemanticallyInvalid,

    InvalidPercentileLevel
        ⇒ RejectPercentileComputation
}

CanonicalPercentileRepresentation :=
    ParsePercentileRequest
    → ResolveVariable
    → ResolveDatasetSamplePopulationOrDistribution
    → ResolveVariableTypeAndOrdering
    → ResolvePercentileLevel
    → ConvertPercentileToQuantileProbability
    → ResolveObservationsOrCDF
    → ResolveMissingness
    → ResolveWeights
    → ResolveQuantileConventionAndInterpolation
    → ComputePercentile
    → ResolvePercentileRankOrSamplingPropertiesIfRequested
    → ValidatePercentile

PercentileGraph :=
    G=(V,E)

V := {
    Percentiles,
    PopulationPercentiles,
    SamplePercentiles,
    PercentileRanks,
    Quantiles,
    Quartiles,
    Deciles,
    OrderStatistics,
    WeightedPercentiles,
    GroupedPercentiles,
    BootstrapPercentiles,
    Variables,
    Observations,
    Datasets,
    Samples,
    Populations,
    Evidence,
    ProvenanceNodes
}

E := {
    computedFrom,
    summarises,
    equalsQuantile,
    hasLevel,
    hasRank,
    boundedBy,
    interpolatedFrom,
    weightedBy,
    estimatedBy,
    transformedBy,
    comparedWith,
    constrainedBy,
    equivalentTo,
    tracesTo
}

CONFIDENCE(PercentileResolution) :=
    weighted_mean(
        VariableResolution,
        DataScopeResolution,
        OrderingValidity,
        PercentileLevelValidity,
        QuantileConventionResolution,
        MissingnessHandling,
        WeightingValidity,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectPercentileIntent
    → IdentifyVariableAndDataScope
    → ResolvePercentileLevel
    → DetermineSamplePopulationOrDistributionContext
    → ResolveQuantileConventionWeightingAndMissingness
    → IdentifyRequestedPercentileValueRankRangeOrInference

AI_REASONING_FLOW :=
    Query
    → ParsePercentileProblem
    → ResolveDatasetSamplePopulationOrDistribution
    → ResolveVariable
    → ValidateOrdering
    → ResolvePercentileLevel
    → ConvertToQuantileProbability
    → ResolveObservationsOrCDF
    → ResolveMissingValues
    → ResolveWeights
    → ResolveQuantileConventionAndInterpolation
    → ComputePercentile
    → ResolvePercentileRankIfRequested
    → ResolveSamplingPropertiesIfRequested
    → ValidatePercentileResult
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParsePercentileEntities,
    ParseTypedRelations,
    ResolveVariables,
    ResolveObservations,
    ResolveDatasets,
    ResolveSamples,
    ResolvePopulations,
    ResolveProbabilityDistributions,
    ValidateOrdering,
    ResolvePercentileLevels,
    ConvertPercentileToQuantileProbability,
    ResolveQuantileConventions,
    ResolveInterpolationRules,
    ResolveMissingness,
    ResolveWeights,
    ComputeSamplePercentiles,
    ComputePopulationPercentiles,
    ComputePercentileRanks,
    ComputeWeightedPercentiles,
    ComputeGroupedPercentiles,
    ComputeInterquartileRanges,
    ResolveDistributionPercentiles,
    ResolveCriticalValues,
    ComputeBootstrapPercentileIntervals,
    ResolveSamplingDistributions,
    ValidatePercentileSemantics,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewObservationLevelConventionWeightOrDistributionEvidence
    → ValidateInput
    → IdentifyAffectedPercentileClaims
    → UpdatePercentileState
    → RecomputeEffectiveObservationSet
    → RecomputeOrdering
    → RecomputePercentile
    → RecomputeRelatedPercentileRanges
    → ReevaluateSamplingProperties
    → RevalidateConstraints
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

ObservationUpdate :=
    AddedRemovedOrCorrectedObservation
    ⇒ recompute(
        EffectiveCount,
        OrderStatistics,
        PercentileValue
    )

ConventionUpdate :=
    ChangedQuantileOrInterpolationConvention
    ⇒ recompute(
        PercentileValue,
        SemanticEquivalence
    )

PercentileLevelUpdate :=
    ChangedPercentileLevel
    ⇒
    ConvertToQuantileProbability
    → RecomputePercentile

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        Percentile,
        PercentileValidation,
        PercentileConstraint,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    PercentileEntityResolution,
    Variable,
    DataScope,
    VariableType,
    PercentileLevel,
    QuantileProbability,
    ObservationCount,
    EffectiveObservationCount,
    QuantileConvention,
    InterpolationRule,
    Weights,
    MissingnessRule,
    PercentileValue,
    PercentileRank,
    QuantileRelation,
    SamplingProperties,
    ValidationStatus,
    Confidence,
    Provenance,
    Explanation
}

END_FLOW

END OF FULL EXECUTABLE FLOW ALGEBRA
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ