If you’ve been thinking about subsources or know you need them but don’t know if you really understand how they work within the ArcFM Feeder Manager framework, this post will attempt to shed a bit of light on the subject.


Why create a subsource network?


The need to identify additional sources of power led to adding Subsource functionality to ArcFM which allows for identification of additional feeders within the network (feeders within feeders based on voltage). Some North American utilities have downtown mesh networks and want to use one Subsource to manage that, and many non-North American utilities want to use two or more Subsources for their multiple voltage levels.  Multi-tiered networks, or Subsource functionality, or Extended Feeder Manager are all terms used to describe setting up Feeder Manager subsources.


What is an Ultimate Source?


Basic Feeder Manager (FM1, FM2) assumes one source of energy, coming from the most upstream device, which is called the CircuitSource (for example: CircuitBreaker).  Once Subsource functionality is configured, the CircuitSource is called the UltimateSource.


What is a Subsource?


A Subsource is a junction that indicates the beginning of a subfeeder within the main feeder.  Feature classes are designated as Subsources by a modelname (junctions only), and are usually switchable devices.  Individual features within that FC are identified via an attribute (so you can have a few features within an entire FC that act as subsources).  Subsources must have exactly two connected edges.


What are FeederLevels?


FeederLevel is an integer value belonging to a subsource that controls the unidirectional flow of tracing when it passes through the subsource: tracing should always go in the same direction through a subsource, and to be blocked whenever it attempts to pass through in the opposite direction.


The FeederLevel enforces one-way tracing through subsources via this rule: When downstream-directed tracing arrives at a subsource, it will be allowed to pass through it if the FeederLevel of that subsource is greater than the FeederLevel of the subsource that it most recently passed through. The FeederLevel of an UltimateSource is always Zero (0).  The feederlevels of the subsources are calculated based on voltage levels of the conductors connecting to it.  There are Autoupdaters that monitor changes in voltage and update the FeederLevel value appropriately.


This is an illustration of howsubsources work at a high level

Source1, Source2 = UltimateSource


Feeder information coming from Source1 can find its way into the subfeeder via Subsource1.  But it cannot find its way out again at Subsource2, whose one-way nature prevents travel in that direction


This concept can be explained in the diagram below (level = feederlevel)


  1. Moving left to right:  0 -->10   passes thru.   10 -->10 stops the trace at Subsource2 because the level values are the same
  2. Moving right to left:  0 -->10   passes thru.   10 -->10 stops the trace because the level values are the same


Below is an example of bad network data where flow can go either direction through subsource 2

FeederLevels can be confusing for utilities using subsources to demarcate voltage levels since the voltage levels are dropping but feeder levels are increasing which is opposite how one might expect the logic to be.


Here is the procedure used to compute the FeederLevel value for a subsource:


  1. If the subsource is an UltimateSource assign FeederLevel = 0
  2. Otherwise, inspect the voltage values of each of the two conductors attached to the subsource. Let’s call these values VoltageCode1 and VoltageCode2.
  3. If VoltageCode1 and VoltageCode2 are the same then assign a value; otherwise assign another value.


What are the data considerations for using Subsources?


  1. There are some additional fields that need to be added to feature classes that will be subsources:   CircuitSourceID and SubSource
  2. If you want to use a transformer as a subsource, it needs to adhere to the rule that only two conductors are attached so it can determine the feederlevel.   If you have a lot of subsource-worthy transformers with more than 2 connected lines, there will be an editing effort to convert from the left diagram to the right diagram.

Mesh network utilities need to ensure the ‘ring’ of transformers creating a mesh area are the same voltage level, otherwise the power flowing into the mesh will be able to flow out (the dreaded bi-directional flow situation shown above) Of interest:  transformers can step-up the voltage while moving ‘downstream’   because that particular feature isn’t tagged as a subsource. The voltage can be decreased at another transformer further on in the same manner. The feederlevels are only calculated on the voltage levels on either side of a designated subsource feature.


     3. Multiple transformers as subsources – aim for keeping the number of transformers as subsources to less than 20,000.

     4. Loops – if there are a lot of loops in your system, adding subsources to them will cause tracing problems.

     5. If FeederManager1 is implemented, the FeederSync tool will update those fields


As with everything in GIS and feeder management, the quality of the data will drive the quality of the results!


If you have any questions about Subsources or your specific network needs, please contact Schneider-Electric.