Size ranges and allocation bands
A band governs an asset class as a whole, for example “Equities sit between 44% and 67% of the portfolio.” It says nothing about how that 44% to 67% is split across individual holdings. A size range does that. The two are separate rules with separate statuses. A class can be compliant as a whole while one of its holdings is oversized, or the other way round. See Allocation bands for the class rule.Setting a size range
To set a size range, open Allocation, then the Rules tab, and add or edit a class’s rule. Enter a minimum and a maximum under Position size, for example 3% to 9% (a fictional example). The minimum can equal the maximum but not exceed it. Enter both numbers or neither. The app andsave_class_rule refuse a maximum without a minimum. Only a rules text fills in a missing minimum, which gives a cap with no floor, for example “no single equity holding over 7% of the portfolio.”
A class with a band but no size range shows its holdings as Not monitored for sizing, even though the class itself has a compliance status. A class with a size range but no band is the other way round: its holdings are checked and the class total isn’t.
A short has its own range. See Shorts.
How Allocait checks it
For each holding in a class with a range for the side it is on, Allocait compares that holding’s current value, as a percent of your total portfolio, to the range: the size range for a long, the short size range for a short, using the size without the minus sign.
A share exactly at either edge is in range. Allocait also allows a tolerance of 0.01 of a percentage point: a share within 0.01 of an edge counts as in range. Status words maps these statuses to the words each surface uses.
What agents get
Agents get the same status:POST /compliance/check, thecomplianceblock of the portfolio snapshot andcheck_allocationslist each holding outside its size range insize_violations.check_tradesjudges a proposed change and returns one size row per symbol, on the side the symbol ends on.- A holding that newly goes outside its range can send a
compliance.violationwebhook to an endpoint you’ve set up and subscribed to that event, after the daily close. See Webhooks for who can set one up and when delivery happens.
check_allocations checks a mix given as percentages, not prices. Two cases need care:
- An exit: send 0 for the holding. It counts as 0 toward its class, and no size range judges it.
- A new holding: name its class in
asset_classes. Allocait then judges the symbol against that class’s band and size range as it would a holding you already own. Without a class, the symbol appears inunknown_symbolsand no rule judges it.
Next steps
- Size a position turns a size range into a share count.
- Shorts covers the short size range.
- Allocation bands covers the rule for a whole class.
- Webhooks covers the
compliance.violationdelivery.