<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to Handle Circular dependency for Amortization Schedule in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1323691#M23307</link>
    <description>&lt;P&gt;First of all, thank you for the details you provide. Makes it much easier to follow.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I agree that the beginning balance depends on the previous period's ending balance.&amp;nbsp; But please explain why the ending balance would depend on the beginning balance? You should not need that, rather just do a SUMX over the current period.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What's the purpose of your calendar table?&amp;nbsp; It looks incomplete.&amp;nbsp; You will want to have a table of contiguous dates that (just) covers your fact dates.&lt;/P&gt;</description>
    <pubDate>Tue, 25 Aug 2020 18:42:57 GMT</pubDate>
    <dc:creator>lbendlin</dc:creator>
    <dc:date>2020-08-25T18:42:57Z</dc:date>
    <item>
      <title>How to Handle Circular dependency for Amortization Schedule</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1323630#M23305</link>
      <description>&lt;P&gt;I am having problems generating the &lt;STRONG&gt;Begining&lt;/STRONG&gt; and &lt;STRONG&gt;Ending&lt;/STRONG&gt; balance for Armotization Schedule, as they both depend on each other to get the required result.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;See the error:&lt;/P&gt;&lt;DIV class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DAX Measures&lt;/STRONG&gt;&lt;BR /&gt;Begining Balance =&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Begining Balance = 
var __1stPeriodBeginingBalance = MAX( 'Table'[Amount Borrowed])
var __RemainingPeriodBeginingBalance = CALCULATE([Ending Balance], DATEADD(TableCalendar[Dates],-1,MONTH))

RETURN
IF(MAX(TableCalendar[Period]) = 1, __1stPeriodBeginingBalance, __RemainingPeriodBeginingBalance)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ending Balance =&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Ending Balance = 
var __1stPeriodEndingBalance = MAX( 'Table'[Amount Borrowed]) - [1 Monthly Principal]
var __RemainingPeriodEndingBalance = [Begining Balance] - [1 Monthly Principal]

RETURN
IF(MAX(TableCalendar[Period]) = 1, __1stPeriodEndingBalance, __RemainingPeriodEndingBalance)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Other Dax created and referenced&lt;BR /&gt;-&amp;nbsp;&lt;SPAN&gt;Monthly Payment&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;1 Monthly Payment = 
VAR __PresendtValue = MAX( 'Table'[Amount Borrowed])
Var __Rate = MAX( 'Table'[Rate])
Var __RateBy12 = DIVIDE(__Rate, 12)
Var __NPER = MAX( 'Table'[Period])

Return
PMT(__Rate, __NPER, -__PresendtValue,0)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;-&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Monthly Interest&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;1 Monthly Interest = 
VAR __PresendtValue = MAX( 'Table'[Amount Borrowed])
Var __Rate = MAX( 'Table'[Rate])
Var __RateBy12 = DIVIDE(__Rate, 12)
Var __NPER = MAX( 'Table'[Period])
Var __Period = MAX(TableCalendar[Period])

Return
IPMT(__Rate,__Period,__NPER,-__PresendtValue,0)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;-&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Monthly Principal&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;1 Monthly Principal = 
VAR __PresendtValue = MAX( 'Table'[Amount Borrowed])
Var __Rate = MAX( 'Table'[Rate])
Var __RateBy12 = DIVIDE(__Rate, 12)
Var __NPER = MAX( 'Table'[Period])
Var __Period = MAX(TableCalendar[Period])

Return
PPMT(__Rate,__Period,__NPER,-__PresendtValue,0)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Background Tables on Power Query&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;Table Photo&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;DIV class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;M language to generate &lt;STRONG&gt;Table&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WUjE0MNAxMDDQMzBQ0lEyNgORQI6hgYUxCAB5hvqG+kYGhpZwpomlUmwsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Amount Borrowed" = _t, Period = _t, Rate = _t, StartDate = _t, EndDate = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Amount Borrowed", Currency.Type}, {"Period", Int64.Type}, {"Rate", type number}, {"StartDate", type date}, {"EndDate", type date}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Days", each List.Dates
(
    [StartDate],
    Duration.Days([EndDate] - [StartDate]),
    #duration(1,0,0,0)
)),
    #"Expanded Days" = Table.ExpandListColumn(#"Added Custom", "Days"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Days",{{"Days", type date}}),
    #"Added Custom1" = Table.AddColumn(#"Changed Type1", "SOM", each [Days] = Date.StartOfMonth([Days])),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom1", each [SOM] = true),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"SOM"})
in
    #"Removed Columns"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;TableCalendar Photo&lt;BR /&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;M language to generate &lt;STRONG&gt;TableCalendar&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlLSUTLUN9Q3MjC0hDNNQExTAwMdAwMDEEvPyFRVKTYWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Leased ID" = _t, StartDate = _t, EndDate = _t, #"Initial Loan Balance" = _t, #"Interest Rate" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Leased ID", Int64.Type}, {"StartDate", type date}, {"EndDate", type date}, {"Initial Loan Balance", Int64.Type}, {"Interest Rate", Percentage.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Years", each Date.Year([EndDate]) - Date.Year([StartDate])),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Days", each List.Dates
(
    [StartDate],
    Duration.Days([EndDate] - [StartDate]),
    #duration(1,0,0,0)
)),
    Days1 = #"Added Custom1"[Days],
    Days2 = Days1{0},
    #"Converted to Table" = Table.FromList(Days2, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Changed Type1" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type date}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Column1", "Dates"}}),
    #"Added Custom2" = Table.AddColumn(#"Renamed Columns", "SOM", each [Dates] =
Date.StartOfMonth([Dates])),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom2", each [SOM] = true),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"SOM"}),
    #"Added Index" = Table.AddIndexColumn(#"Removed Columns", "Period", 1, 1, Int64.Type)
in
    #"Added Index"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;RelationShip&lt;/P&gt;&lt;DIV class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;Expected Result:&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Please Note:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I have read the Circular depency article by Albertor Ferari&lt;/STRONG&gt;, problem is still not fixed. As his explanation is more applicable to calculated column not Mesure. I am not using calculated columns.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Aug 2020 17:55:31 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1323630#M23305</guid>
      <dc:creator>Euto</dc:creator>
      <dc:date>2020-08-26T17:55:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to Handle Circular dependency for Amortization Schedule</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1323640#M23306</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Missing pictures from the problem above..&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Picture of Error:&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Tables relationsip&lt;BR /&gt;&lt;img /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Aug 2020 18:06:25 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1323640#M23306</guid>
      <dc:creator>Euto</dc:creator>
      <dc:date>2020-08-25T18:06:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to Handle Circular dependency for Amortization Schedule</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1323691#M23307</link>
      <description>&lt;P&gt;First of all, thank you for the details you provide. Makes it much easier to follow.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I agree that the beginning balance depends on the previous period's ending balance.&amp;nbsp; But please explain why the ending balance would depend on the beginning balance? You should not need that, rather just do a SUMX over the current period.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What's the purpose of your calendar table?&amp;nbsp; It looks incomplete.&amp;nbsp; You will want to have a table of contiguous dates that (just) covers your fact dates.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Aug 2020 18:42:57 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1323691#M23307</guid>
      <dc:creator>lbendlin</dc:creator>
      <dc:date>2020-08-25T18:42:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to Handle Circular dependency for Amortization Schedule</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1323744#M23310</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="100342" data-lia-user-login="lbendlin" class="lia-mention lia-mention-user"&gt;lbendlin&lt;/a&gt;&amp;nbsp;Thank you for your response, and the questions you have asked are very sensible.&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;Why the ending balance depend on the beginning balance ?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;The Ending Balance = Beginning balance – Principal&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;The beginning balance for the period 1 &lt;STRONG&gt;is known&lt;/STRONG&gt; (the amount borrowed).&lt;/LI&gt;&lt;LI&gt;However, the beginning balance for the Period 2 onwards (is &lt;STRONG&gt;not&lt;/STRONG&gt; Known), as it is the Ending Balance of the Previous Period.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I am not sure how you mean by "do a SUMX over the current period". &lt;STRONG&gt;Can you please do this and see if you get the expected result as shown below?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Expected Result&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;img /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;What's the purpose of your calendar table?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;To be honest at this point, the calendar table is not as useful, I could have easily created a period column on fact table given the one to one relationship.&lt;/P&gt;&lt;P&gt;But then when you think of it, even with the way it is, if I start generating, Quarters, Month Name or Days for further analysis it will become useful as I would not want to have those on the fact table.&lt;/P&gt;&lt;P&gt;But at this point, I am aware that it is not doing much in this test data.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Aug 2020 19:15:28 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1323744#M23310</guid>
      <dc:creator>Euto</dc:creator>
      <dc:date>2020-08-25T19:15:28Z</dc:date>
    </item>
    <item>
      <title>Re: How to Handle Circular dependency for Amortization Schedule</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1324640#M23347</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="245271" data-lia-user-login="Euto" class="lia-mention lia-mention-user"&gt;Euto&lt;/a&gt; , I have just seen it. Seem like other super users are already helping. Just see if these functions can help you. In case it does not resolve. I will look back&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: rgba(0, 0, 0, 0.87); font-family: Roboto, Noto, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"&gt;openingbalancemonth,openingbalancequarter, openingbalanceyear &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: rgba(0, 0, 0, 0.87); font-family: Roboto, Noto, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"&gt;&lt;A href="https://youtu.be/6lzYOXI5wfo" target="_blank"&gt;https://youtu.be/6lzYOXI5wfo&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: rgba(0, 0, 0, 0.87); font-family: Roboto, Noto, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"&gt;closingbalancemonth ,closingbalancequarter, closingbalanceyear&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: rgba(0, 0, 0, 0.87); font-family: Roboto, Noto, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"&gt;&lt;A href="https://youtu.be/yPQ9UV37LOU" target="_blank"&gt;https://youtu.be/yPQ9UV37LOU&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Aug 2020 05:28:22 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1324640#M23347</guid>
      <dc:creator>amitchandak</dc:creator>
      <dc:date>2020-08-26T05:28:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to Handle Circular dependency for Amortization Schedule</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1326159#M23387</link>
      <description>For such things to work you have to disentangle at least one of the measures (meaning: only one measure can depend on the other, they both can't depend on each other mutually). If value f(n) depends on g(n-1) and g(n) depends on f(n-1), then certainly f(n) depends on f(n-1) and/or f(n-2). So, you have to express f(n) in terms of f(n-1) and/or f(n-2) and you have to get rid of recursion. Then and only then will you be able to do the calculation.</description>
      <pubDate>Wed, 26 Aug 2020 14:20:25 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1326159#M23387</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2020-08-26T14:20:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to Handle Circular dependency for Amortization Schedule</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1326727#M23421</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="100342" data-lia-user-login="lbendlin" class="lia-mention lia-mention-user"&gt;lbendlin&lt;/a&gt;&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="148838" data-lia-user-login="amitchandak" class="lia-mention lia-mention-user"&gt;amitchandak&lt;/a&gt;&amp;nbsp;Anonymous&lt;/a&gt;&amp;nbsp; Thanks to you all for your responses.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I figured I had to go a completely&amp;nbsp;different route to avoid the circular dependency by creating all independent measures.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Solution:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- I finetuned&amp;nbsp;&lt;SPAN&gt;Other Dax created&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Monthly Payment&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Monthly Payment= 
VAR __PresendtValue = MAX( 'Table'[Amount Borrowed])
Var __Rate = MAX( 'Table'[Rate])
Var __AllPeriod = CALCULATE(MAX(TableCalendar[Period]), ALL(TableCalendar))

Return
PMT(__Rate, __AllPeriod, -__PresendtValue,0)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Monthly Interest&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Monthly Interest= 
VAR __PresendtValue = MAX( 'Table'[Amount Borrowed])
Var __Rate = MAX( 'Table'[Rate])
Var __Period = MAX(TableCalendar[Period])
Var __AllPeriod = CALCULATE(MAX(TableCalendar[Period]), ALL(TableCalendar))

Return
IPMT(__Rate,__Period,__AllPeriod,-__PresendtValue,0)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;Monthly Principal&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Monthly Principal= 
VAR __PresendtValue = MAX( 'Table'[Amount Borrowed])
Var __Rate = MAX( 'Table'[Rate])
Var __Period = MAX(TableCalendar[Period])
Var __AllPeriod = CALCULATE(MAX(TableCalendar[Period]), ALL(TableCalendar))

Return
PPMT(__Rate,__Period,__AllPeriod,-__PresendtValue,0)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;- I created a new Dax for the Begining and Ending Balance&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Begining Balance&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Begining Balance= 
VAR __PresendtValue = MAX( 'Table'[Amount Borrowed])
Var __Rate = MAX( 'Table'[Rate])
Var __Period = MAX(TableCalendar[Period])
Var __AllPeriod = CALCULATE(MAX(TableCalendar[Period]), ALL(TableCalendar))
Var __PMT = PMT(__Rate, __AllPeriod, -__PresendtValue,0)
Return
FV(__Rate,__Period-1,__PMT,-__PresendtValue,0)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;BR /&gt;Ending Balance&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Ending Balance= 
VAR __PresendtValue = MAX( 'Table'[Amount Borrowed])
Var __Rate = MAX( 'Table'[Rate])
Var __Period = MAX(TableCalendar[Period])
Var __AllPeriod = CALCULATE(MAX(TableCalendar[Period]), ALL(TableCalendar))
Var __StartPeriod =CALCULATE(Min(TableCalendar[Period]), ALL(TableCalendar))
Var __CUMPRINC = -CUMPRINC(__Rate,__AllPeriod,__PresendtValue,__StartPeriod,__Period,0)

RETURN
__PresendtValue - __CUMPRINC&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Outcome Of above dax&lt;BR /&gt;&amp;nbsp;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;BR /&gt;Eli&lt;/P&gt;</description>
      <pubDate>Wed, 26 Aug 2020 18:25:34 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/1326727#M23421</guid>
      <dc:creator>Euto</dc:creator>
      <dc:date>2020-08-26T18:25:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to Handle Circular dependency for Amortization Schedule</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/2127073#M48791</link>
      <description>&lt;P&gt;Is there a way to make this work if the monthly payment is not the same every month?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sid&lt;/P&gt;</description>
      <pubDate>Mon, 11 Oct 2021 10:38:55 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/How-to-Handle-Circular-dependency-for-Amortization-Schedule/m-p/2127073#M48791</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-10-11T10:38:55Z</dc:date>
    </item>
  </channel>
</rss>

