Page 1 of 1

Allocate available function with different time steps

Posted: Tue Jun 10, 2025 12:18 pm
by nzligul
Hello,

I use the ALLOCATE AVAILABLE function to prioritize different supplies in my model. However, I noticed that when the dt (time step) changes, the model outcomes also vary. I was wondering what could be causing this behavior. Unit consistency is maintained in the model, and the desired outcome is when dt=1. Are there some rules to apply this function? I am also sharing the model.

Re: Allocate available function with different time steps

Posted: Tue Jun 10, 2025 12:43 pm
by Administrator
Can you provide more detail? What outcomes are you looking at?

And have you selected a suitably small time step?
https://www.vensim.com/documentation/re ... =time+step

Re: Allocate available function with different time steps

Posted: Tue Jun 10, 2025 1:31 pm
by nzligul
There are 3 different brands and corresponding demands and supplies. Each demand is initially met by its own brand. However, if there is not enough supply from that brand, the demand is met by another cheapest available brand. That’s why there are two outflows for Supply and Demand: (1) demand fulfilment (supply usage) own brand, (2) demand fulfilment (supply usage) other brand. I am interested in those flows to see how much demand is fulfilled through the own brand and other brands throughout the simulation. For simplicity, there are no inflows for now.

For example, in the following case:
- Supply A, B, and C are 10, 38, and 50, respectively.
- Demand A, B, and C are 20, 30, and 40, respectively.
- Price A, B, and C are 1, 2, and 3, respectively.

Expected outcome for End of Day 1:
- A receives 10 units from A, B receives 30 from B, and C receives 40 from C. (demand fulfillment own brand)
- Since there is remaining supply (A has 0, B has 8, and C has 10), and remaining demand (A still needs 10, B and C have no unmet demand) A receives the remaining 8 units from B (because B is cheaper than C) and 2 units from C (because there is no inventory left in cheaper brands). (demand fulfilment other brand)

This is the expected outcome, and I can check it when I run the model with dt=1. However, when I use a dt value smaller than 1, the outcome deviates from this expected result, and this allocation process takes more time. I am sharing a small summary document with some figures. The shortest time constant in my model is 1. Thus, I assume it aligns with "TIME STEP should be smaller than 1/3 of the shortest time constant in the model".