Skip to content

Commit 2a6708e

Browse files
MImmesbergerclaude
andcommitted
GEP 10: adopt grouping-level dimensions and the [person] count
Rewrite GEP 10 end-to-end to make grouping levels (per person, per household, per Bedarfsgemeinschaft, ...) first-class, non-convertible pint dimensions supplied by the aggregation suffix / reference_level, and to promote head counts from DIMENSIONLESS to the [person] count dimension ([person]/[group] for a group count). This turns the per-capita divisions and multiply-by-count splittings gettsim already performs into self-checking arithmetic, and makes cross-level mixing a build-time error. Key model: - levels are denominators read off the suffix; [person] doubles as the leaf level and the count dimension, so counts and per-person amounts cancel. - extensive/intensive token default decides which tokens carry a level; dimensionless-physical tokens (HOURS_FLOW, DIMENSIONLESS) stay level-less. - index level (data layout, structural) vs unit level (dimensional); the check ties them only when a level is present. - aggregation: SUM swaps level, COUNT mints [person]/[target], MIN/MAX/MEAN preserve source level-ness, ANY/ALL dimensionless. - broadcast preserves the unit level, so cross-group safety falls out. - parameters carry reference_level (orthogonal to reference_period). Reverses the earlier draft's rejection of a count dimension; records the pure-DIMENSIONLESS and generic-[count] designs as rejected alternatives. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 85aaf79 commit 2a6708e

1 file changed

Lines changed: 457 additions & 250 deletions

File tree

0 commit comments

Comments
 (0)