Investment restriction

Vintage-year concentration (private markets)

Vintage-year concentration is the share of a private-markets programme's commitments made to funds of a single vintage year. Policies cap it to spread commitments across economic cycles, for example ‘no more than 25% of commitments in one vintage year’. Acclimetry groups commitments by the vintage in an approved data field and tests each year's share of all commitments in scope against the limit.

Rule template
vintage_concentration
Vintage-year concentration
Measured in
% of portfolio value
Worked examples, run by the engine
3

How policies word it

Private-markets programmes commit to funds that draw capital over several years. Committing too much in one year ties the programme to the conditions of that cycle. Policies therefore pace commitments and cap any one vintage.

The cap is usually a share of total commitments, sometimes with a higher limit for a named year while a programme is built. It sits beside a limit on unfunded commitments, which caps the calls still to come.

The policy should also say what ‘vintage’ means. Funds and data providers date it differently, for example by first close or by first capital call.

  • No more than 25% of total commitments in any single vintage year.
  • Commitments will be paced so that no vintage year exceeds 30% of the private-equity programme.
  • While the programme is being built, the 2025 vintage may reach 40% of commitments.
  • Unfunded commitments to any one vintage may not exceed 35% of total unfunded commitments.

How it is measured

Each commitment is placed in the year held in the rule's vintage field. Each year's share is that year's commitments divided by all commitments in scope.

  • Measure: total commitment, or unfunded commitment only.
  • Scope: the private-market classes named in the rule. A holding with no commitment, such as a listed share, is out of scope.
  • Limits: one general hard maximum for every year, plus optional named-year limits that replace it for those years.

Each vintage year gets its own result, with its share, headroom and the funds that contribute most. The vintage is never inferred from a first drawdown date or from a fund's name.

When it is breached and what follows

A year above its limit is a breach, and warning bounds give notice as a year approaches it. With total commitments, a breach usually follows a new commitment, which makes it an active breach.

With unfunded commitments, the shares drift on their own. Capital calls in other years shrink their unfunded amounts and raise the share of a year that has not been called.

Continuing breaches form one case, with assignment, escalation and service-level clocks. A deliberate overweight, approved for a set period, is recorded as a time-bound waiver, which leaves the result unchanged.

Data the check reads

Rule parameters

The share of total commitments falling in any single vintage year must stay inside the approved band. Vintage is read from an approved governed field, never inferred.

ParameterIn the platformOptions and help
fieldCodeVintage-year fieldThe approved governed field carrying the fund's stated vintage year.
measureMeasurecommitment (Total commitment) · unfundedCommitment (Unfunded commitment)
vintageBandsPer-vintage limits (optional)
classNamesPrivate-market classes

Bounds the rule must set: hardMax

Methodology choices

Parameter names, methodology text and result-code meanings are shown exactly as the platform states them.

Worked examples, run by the engine

A 600 commitment in 2021 and a 400 in 2022 put 60% in one vintage, over a 50% cap; a listed equity with no commitment is out of scope

Rule template: vintage_concentration

fieldCode: VINTAGE
measure: commitment
Bounds: hard max 50%

Holdings
HoldingClassMarket valueCommitmentVINTAGE
F1Private Equity3006002021
F2Private Equity2004002022
EQStocks500–(blank)
Result
GroupStatusValueBoundsHeadroom to the hard boundCode
Vintage 2021 Breach 60% ≤ 50% -10% ABOVE_HARD_MAXIMUM
Vintage 2022 Compliant 40% ≤ 50% 10% WITHIN_LIMITS
  • ABOVE_HARD_MAXIMUM: The measured value exceeds the approved hard maximum, beyond any stated tolerance.
  • WITHIN_LIMITS: The measured value sits inside every approved bound.

Largest contributors: Vintage 2021 → F1 60% · Vintage 2022 → F2 40%

These are the product's own test cases for this template, evaluated by the Acclimetry rule engine (backend commit 8197063). The build fails if any result changes.

A named vintage is measured against its own 70% limit while the rest keep the general 50% cap

Rule template: vintage_concentration

fieldCode: VINTAGE
measure: commitment
vintageBands: vintage=2021, hardMax=70
Bounds: hard max 50%

Holdings
HoldingClassMarket valueCommitmentVINTAGE
F1Private Equity3006002021
F2Private Equity2004002022
Result
GroupStatusValueBoundsHeadroom to the hard boundCode
Vintage 2021 Compliant 60% ≤ 50% 10% WITHIN_LIMITS
Vintage 2022 Compliant 40% ≤ 50% 10% WITHIN_LIMITS
  • WITHIN_LIMITS: The measured value sits inside every approved bound.

Largest contributors: Vintage 2021 → F1 60% · Vintage 2022 → F2 40%

These are the product's own test cases for this template, evaluated by the Acclimetry rule engine (backend commit 8197063). The build fails if any result changes.

A commitment with no recorded vintage cannot be placed in a year, so no year is settled

Rule template: vintage_concentration

fieldCode: VINTAGE
measure: commitment
Bounds: hard max 50%

Holdings
HoldingClassMarket valueCommitmentVINTAGE
F1Private Equity3006002021
F2Private Equity200400(blank)
Result
GroupStatusValueBoundsHeadroom to the hard boundCode
Vintages Not evaluated: data quality – ≤ 50% – MISSING_POSITION_DATA
  • MISSING_POSITION_DATA: One or more positions had no readable value, and the partial numbers do not prove the outcome either way.

These are the product's own test cases for this template, evaluated by the Acclimetry rule engine (backend commit 8197063). The build fails if any result changes.

Commitments of 1,000,000 across four vintages: 2020 holds 350,000, or 35%, over the 30% cap, while the other years stay inside it.

Rule template: vintage_concentration

fieldCode: VINTAGE
measure: commitment
classNames: Private Equity, Infrastructure
Bounds: warn max 27% · hard max 30%

Holdings
HoldingClassMarket valueCommitmentVINTAGE
Buyout Fund APrivate Equity180,000350,0002020
Buyout Fund BPrivate Equity260,000250,0002021
Infrastructure Fund CInfrastructure120,000200,0002022
Growth Fund DPrivate Equity60,000200,0002024
Global equity fundEquities900,000–(blank)
Result
GroupStatusValueBoundsHeadroom to the hard boundCode
Vintage 2020 Breach 35% ≤ 30%
warning ≤ 27%
-5%
-8% to warning
ABOVE_HARD_MAXIMUM
Vintage 2021 Compliant 25% ≤ 30%
warning ≤ 27%
5%
2% to warning
WITHIN_LIMITS
Vintage 2022 Compliant 20% ≤ 30%
warning ≤ 27%
10%
7% to warning
WITHIN_LIMITS
Vintage 2024 Compliant 20% ≤ 30%
warning ≤ 27%
10%
7% to warning
WITHIN_LIMITS
  • ABOVE_HARD_MAXIMUM: The measured value exceeds the approved hard maximum, beyond any stated tolerance.
  • WITHIN_LIMITS: The measured value sits inside every approved bound.

Largest contributors: Vintage 2020 → Buyout Fund A 35% · Vintage 2021 → Buyout Fund B 25% · Vintage 2022 → Infrastructure Fund C 20%

Computed at build time by the Acclimetry rule engine (backend commit 8197063); the same code runs in the product.

Interpretation traps

Vintage is a stated fact, not an estimate

Acclimetry never infers vintage from a drawdown date or a fund name. Choose one definition, record it as an author decision, and load the same definition for every fund.

One missing vintage blocks every year

Every year shares one denominator, so a commitment with no vintage leaves all the shares unsettled. The result is not evaluated (data quality), unless the rule version chose a conservative-breach policy.

Total and unfunded answer different questions

Total commitment shows how evenly the programme was paced. Unfunded commitment shows where future calls will come from, and a fully called fund contributes nothing to it.

Result codes this check can return

CodeStateMeaningWhat to do
WITHIN_LIMITS ✓CompliantThe measured value sits inside every approved bound.–
ABOVE_WARNING_MAXIMUMWarningThe measured value has crossed the early-warning maximum but not the hard limit.No breach yet; the early-warning band exists so the position can be managed before one.
BELOW_WARNING_MINIMUMWarningThe measured value has crossed the early-warning minimum but not the hard limit.No breach yet; the early-warning band exists so the position can be managed before one.
ABOVE_HARD_MAXIMUM ✓BreachThe measured value exceeds the approved hard maximum, beyond any stated tolerance.Remediate the exposure, or record an approved waiver against the case.
BELOW_HARD_MINIMUMBreachThe measured value falls below the approved hard minimum, beyond any stated tolerance.Remediate the exposure, or record an approved waiver against the case.
CONSERVATIVE_MISSING_DATABreachData was missing and this rule version's approved unknown-data policy is conservative_breach, so the gap is treated as a breach rather than as Not Evaluated.Supply the missing values; the reading is deliberately pessimistic until you do.
EMPTY_PORTFOLIONot applicableThe portfolio held no positions at the evaluation moment.–
NO_MEASURED_POSITIONSNot applicableNo position in the portfolio fell inside this rule's measured population.–
NOT_IN_SCOPENot applicableThis rule version does not apply to this portfolio — the portfolio is outside the version's stated scope. Recorded so that "considered and out of scope" can be told from "never run".–
AGGREGATE_MEMBER_NOT_ACCEPTEDNot evaluated: data qualityA portfolio in the measured set has no authoritative snapshot, so the set-level number cannot be stated.Accept the named portfolios' snapshots. A partial set produces no aggregate.
MISSING_POSITION_DATA ✓Not evaluated: data qualityOne or more positions had no readable value, and the partial numbers do not prove the outcome either way.Supply the missing valuations. The platform will not fabricate a zero to produce a reading.
SNAPSHOT_NOT_ACCEPTEDNot evaluated: data qualityThe portfolio's newest snapshot awaits data-quality review; only accepted data may produce an authoritative result.Accept, override or reject the snapshot on Data & Quality.
SNAPSHOT_REJECTEDNot evaluated: data qualityThe portfolio's newest snapshot was rejected, so there is no authoritative data to measure.Load a corrected file.
STALE_POSITIONSNot evaluated: data qualityThe newest snapshot is older than the organisation's staleness threshold.Load current positions, or revisit the threshold on Data & Quality ▸ Policy.
STALE_PRICESNot evaluated: data qualityA holding had no price on the position file and its approved price was older than the organisation's price-staleness threshold, so it was left unvalued.Load a current price for the holding, price it on the position file, or revisit the threshold on Data & Quality ▸ Policy.
AWAITING_EXTERNAL_DATAPending external dataAn approved input is late but still inside the organisation's grace window. This is not a pass and not an exception.None yet. If the delivery does not arrive, this becomes a data-quality exception.
METHOD_NOT_SUPPORTEDNot evaluated: unsupportedThe rule version asks for a measurement method this engine does not implement. Declared rather than approximated.Choose a supported methodology, or treat this limit as a manual obligation until the method ships.
EVALUATOR_ERRORNot evaluated: system errorThe evaluator raised an error. Surfaced as a visible result rather than as silence.Report it. A system error is never a pass and never a compliant reading.

✓ seen in the worked examples. The rest come from the platform registry’s own scan of the template source.

Questions

What is a vintage year?

The year a private fund is treated as starting to invest. Definitions differ, for example first close or first capital call, so the policy should name the one its data uses.

Can Acclimetry work out a fund's vintage?

No. The vintage is read from an approved data field and is never inferred from a drawdown date or a fund name.

Does a fully drawn fund still count?

Under the total-commitment measure, yes: its whole commitment stays in its year. Under the unfunded measure it contributes nothing once all its capital has been called.

Updated: 12 October 2026Acclimetry · Foreranger Ltd