Skip to content

· Acubic Research · 9 min read

How Position Sizing Works in Acubic

Key takeaways

  • Position sizing in Acubic happens in two stages: the optimizer sets target weights within your risk constraints, and the scheduler converts those weights to share quantities when a rebalance fires.
  • Weights become share quantities by rounding down, not to the nearest whole number. If the math produces 4.9 shares, the order is placed for 4.
  • Only positions that have drifted from their target weights generate orders. A position already at its target is not touched, and a run with no orders is a valid outcome.
  • Every order quantity scales directly from the automated capital figure you set at connection time. Holdings outside that boundary are never part of the calculation.
  • Orders execute one at a time, after a pre-submission sanity check against the managed value. A sanity-check halt stops the whole run before any order reaches the broker.

The question most Acubic users ask when they first see an executed rebalance is the same one: how did it arrive at these quantities? Why 4 shares of one holding and 7 of another? Why was a particular position not touched at all? The answer divides into two stages that are easy to blur together but genuinely distinct. Understanding the distinction resolves most of the questions that rebalance outputs raise.

Two stages, not one

The first stage happens at portfolio construction time. The optimizer assigns each holding in the strategy a target weight, expressed as a percentage of total capital, subject to the risk constraints you configured. The second stage happens when a rebalance fires. The scheduler reads your live positions, identifies the gap between current weights and target weights, and translates the gap into actual share quantities for each position that needs correcting.

Both stages have their own rules. A question about a weight percentage is almost always a question about the first stage: the optimizer, the concentration caps, and the construction method. A question about a specific share quantity is almost always a question about the second stage: the rounding rule, the automated capital figure, and what the scheduler did with the math. The two stages are connected but separate, and attributing a second-stage outcome to a first-stage cause is the most common source of confusion about what an Acubic rebalance produced.

The construction stage is covered in full in what risk constraints Acubic applies to your portfolio. This article focuses on the quantity calculation: how target weights become orders, why a quantity can be smaller than it appears it should be, and what determines whether a position appears in the order set at all.

Stage 1: target weights from the optimizer

When you build a portfolio in Acubic, the optimizer runs a construction process that assigns each selected holding a weight as a fraction of total capital. Those weights are bounded by the risk constraints you configured. The bounds are hard: the optimizer finds the best allocation it can within them, and a preference that would violate a bound is not traded away for a higher objective score. The bound is the limit.

The primary constraint on any single weight is the risk-level concentration cap: 10% for a conservative profile, 15% for moderate, 25% for aggressive. Any position-size floor and ceiling you have set applies on top of that, with the stricter of the two limits governing in every case. A position appearing at exactly 10% in a conservative portfolio has hit the cap. The optimizer would have assigned it more capital, but the constraint stopped it. A position you notice at 15% in a moderate portfolio may be at its ceiling, or it may simply be the optimizer's preferred allocation within the remaining headroom.

The target weights the optimizer produces become the reference point for every future rebalance. Because the construction process reruns from current market data and your risk settings on each scheduled date, those targets can shift slightly between runs. A holding that ranked highly six months ago by a trailing Sharpe ratio may rank differently today if the underlying data has changed. The article on one-click vs full-auto rebalancing explains how each automation mode handles the order set that the second stage produces, once the first stage has set the targets.

Stage 2: from weights to order quantities

Target weights are fractions. A rebalance order needs a number of shares. The scheduler converts one to the other at execution time. For each position in the order set, it multiplies the target weight by the automated capital figure to get the intended position value in currency, then divides by the current price to get a share count.

That count is almost always a non-integer. The scheduler then rounds down to the nearest whole number. A calculated count of 4.9 becomes 4. A count of 3.1 becomes 3. A count of 0.8 becomes 0, which means no order is placed for that position on that run.

The round-down rule applies in every case, for every holding, on every rebalance. It is the most common explanation for a quantity that looks smaller than expected. If the formula yields 7.8 shares and the order is for 7, nothing has gone wrong. The floor is working as documented. The residual fraction is not ordered. It stays as uninvested cash within the managed scope and is recalculated fresh on the next rebalance date.

Rounding down rather than up is a deliberate conservative choice: Acubic buys slightly less than the calculated target weight rather than slightly more. This avoids overshooting any individual position's allocation and keeps the total outlay within the automated capital figure. The rule is described in both the automation modes article and in what triggers an Acubic rebalance, where it sits alongside the explanation of how the full order set is constructed.

What the automated capital figure does

The automated capital figure is the total value Acubic is authorized to work with at a given broker connection. You set it at connection time. It is the denominator that every order size scales against: target weights are fractions of this number, and the absolute currency value of any order changes proportionally when the figure changes.

Positions outside the managed boundary are not touched. An account can hold existing positions or cash beyond what was assigned to the Acubic connection, and none of those are included in the calculation. This is true regardless of automation mode. If you add money to your account after setting the automated capital figure, those additional funds are outside the scope unless you update the figure explicitly.

The practical implication is direct. If your order quantities look smaller than you expected and the weight percentages in the proposal look correct, the most likely explanation is that the automated capital figure is set lower than the total value you intended Acubic to work with. Adjusting the automated capital figure scales every subsequent order proportionally. No optimizer setting controls absolute order size; the optimizer only controls weights, which are relative. Absolute size is entirely a function of the automated capital figure.

The distinction between automated capital and total account value is also why Acubic can sit alongside positions you want to hold independently. A holding outside the managed boundary, whether a long-term position you do not want touched or a copy-traded position, is invisible to the rebalance calculation. The construction runs against the capital in scope, and the orders stay within it.

Which positions appear in the order set

Not every position in the strategy generates an order on every rebalance date. The scheduler constructs the minimum set of orders needed to close the gap between current holdings and target weights. A holding already at its target weight generates no order. A holding with only marginal drift may also generate no order if correcting it would produce a share count that rounds to zero after the floor is applied.

This means a stable portfolio in a quiet market period can produce a handful of orders per rebalance, or none. A portfolio with significant drift across several holdings produces more. The number of orders on any given date reflects how much the portfolio has moved since the last rebalance, not a fixed list of positions the scheduler always revisits.

A run with zero orders is a valid rebalance. The construction process ran, the scheduler calculated the gaps, and nothing had drifted enough to require a correction. The scheduled date is not consumed by a missed run. The next scheduled date applies in the ordinary sequence. What triggers an Acubic rebalance explains how the construction decides what is and is not in the order set, and why a run that produces nothing is the correct outcome when the portfolio has not moved.

Orders one at a time, and the sanity check

When a rebalance places orders, it submits them one at a time. Each order is resolved before the next one goes out. Sequential submission makes individual outcomes attributable to individual positions and allows each result to be recorded before the next order fires.

Before any order reaches the broker, a sanity check runs against the whole calculated order set. If the total trades look implausible relative to the managed value, the run halts and nothing is sent. The check exists to catch a narrow class of problem: a stale position read or a data inconsistency that would produce orders wildly out of proportion to the account value. A portfolio in a normal state produces a small corrective order set on each rebalance date. An order set that looks structurally wrong relative to the automated capital figure is stopped rather than executed. The halt is recorded with a reason; no order in a halted run reaches the broker.

A broker rejection of an individual order is a distinct event from the sanity-check halt. When the broker refuses a single order in the set, the remaining orders in that run continue independently. A rejection of one position does not stop the others. That behavior is covered in full in what happens when an Acubic rebalance fails, including how each rejection is recorded and how the next rebalance handles remaining drift.

What you see depends on automation mode

The position sizing logic is identical across all three automation modes: Manual, one-click approval, and full-auto. What the mode changes is the moment you become aware of the calculated quantities and whether you confirm them before they are submitted.

In one-click approval mode, the order set is prepared and presented to you before any order goes to the broker. You can inspect every share quantity in the proposal and approve or reject the batch. In full-auto mode, the same quantities are calculated using the same rules and submitted without a per-rebalance prompt. In Manual mode, the quantities appear as a checklist but nothing is sent; you place any trades yourself at the broker. The round-down rule, the automated capital boundary, the one-at-a-time submission order, and the sanity check all apply in every mode that places orders.

One practical difference between modes is when you discover a quantity that surprises you. In one-click, you see it before the order is placed and can choose not to approve. In full-auto, you see it after the run in the audit log. In both cases the record is there, and in both cases the sizing logic is the same. The automation modes article covers how each mode handles the full rebalance sequence on both eToro and Trading 212, including the broker-specific constraints that affect which modes are available.

The full picture

Two numbers appear in every Acubic rebalance: a weight percentage and a share quantity. The weight percentage is set by the optimizer under the risk constraints you configured. Hard bounds, not preferences: the optimizer finds the best allocation within them and stops at the limit. The share quantity is the floor of (weight x automated capital / current price), rounded down to the nearest whole share. Only positions that have drifted from their target generate orders. The rest are left alone.

If a quantity looks smaller than you expected, the most likely explanations are: the round-down floor reduced the fractional count to the lower integer; the automated capital figure is set lower than the total value you wanted Acubic to work with; or the position had not drifted enough to need a correction on that date. None of these reflects an error in the optimizer's targets. They are the documented behavior of the quantity calculation stage, and each has a direct remedy.

The AI portfolio builder is where you start a strategy and review the initial proposal before connecting a broker. The methodology page documents the full construction process from the screen-select-allocate pipeline through to the five published model limitations. Acubic does not promise returns and does not predict short-term market moves. Position sizing keeps the order set within your stated bounds; what returns follow from those trades is determined by the markets, not by the sizing logic.

Want to put this into practice? Explore the Acubic guides or see how the AI portfolio builder turns constraints into a structured portfolio.

Build your portfolio agent today.