<?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: Loan Amortization Schedule in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2534975#M108483</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="157" data-end="412"&gt;Welcome to the world of QlikView — great to see you experimenting with something practical like a &lt;STRONG data-start="255" data-end="285"&gt;Loan Amortization Schedule&lt;/STRONG&gt;. It’s definitely doable using a &lt;STRONG data-start="318" data-end="334"&gt;&lt;CODE data-start="320" data-end="327"&gt;WHILE&lt;/CODE&gt; loop&lt;/STRONG&gt; or the &lt;STRONG data-start="342" data-end="356"&gt;&lt;CODE data-start="344" data-end="354"&gt;IterNo()&lt;/CODE&gt;&lt;/STRONG&gt; and &lt;STRONG data-start="361" data-end="374"&gt;&lt;CODE data-start="363" data-end="372"&gt;RecNo()&lt;/CODE&gt;&lt;/STRONG&gt; functions within a &lt;STRONG data-start="394" data-end="411"&gt;resident load&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P data-start="414" data-end="700"&gt;If you’re also exploring how real-world loan repayment structures work (like short-term or bridging loans), you can check out some examples at &lt;A class="decorated-link" href="https://prosperusfunding.com" target="_new" rel="noopener" data-start="557" data-end="606"&gt;Prosperus Funding&lt;/A&gt;, where they explain how structured loan schedules are used for projects and property finance.&lt;/P&gt;
&lt;HR data-start="702" data-end="705" /&gt;
&lt;H3 data-start="707" data-end="743"&gt;🧩 Step 1: Load Your Input Table&lt;/H3&gt;
&lt;P data-start="744" data-end="781"&gt;Assume your QVD contains fields like:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;DIV class="sticky top-9"&gt;
&lt;DIV class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;DIV class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;CODE class="whitespace-pre!"&gt;&lt;SPAN&gt;LoanID, Principal, Rate, Term, StartDate
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="overflow-visible!" data-start="782" data-end="830"&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;P data-start="832" data-end="846"&gt;Load it first:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;DIV class="sticky top-9"&gt;
&lt;DIV class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;DIV class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;CODE class="whitespace-pre! language-qlik"&gt;&lt;SPAN&gt;Loans:
LOAD 
    LoanID,
    Principal,
    Rate,
    Term,
    StartDate
FROM [YourLoanFile.qvd] (qvd);
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="overflow-visible!" data-start="847" data-end="963"&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;HR data-start="965" data-end="968" /&gt;
&lt;H3 data-start="970" data-end="1019"&gt;&lt;span class="lia-unicode-emoji" title=":gear:"&gt;⚙️&lt;/span&gt; Step 2: Generate the Amortization Schedule&lt;/H3&gt;
&lt;P data-start="1020" data-end="1121"&gt;You can now use a &lt;STRONG data-start="1038" data-end="1052"&gt;While loop&lt;/STRONG&gt; in a &lt;STRONG data-start="1058" data-end="1075"&gt;resident load&lt;/STRONG&gt; to generate a new table for the payment plan.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;DIV class="sticky top-9"&gt;
&lt;DIV class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;DIV class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;CODE class="whitespace-pre! language-qlik"&gt;&lt;SPAN&gt;LoanSchedule:
LOAD
    LoanID,
    StartDate + (IterNo()-1) * 30 AS PaymentDate, // assuming monthly payments
    IterNo() AS PaymentNumber,
    Rate/12 AS MonthlyRate,
    Principal AS OpeningBalance,
    (Principal * (Rate/12) * (Pow(1 + Rate/12, Term))) / (Pow(1 + Rate/12, Term) - 1) AS EMI,
    (Principal * (Rate/12) * (Pow(1 + Rate/12, Term))) / (Pow(1 + Rate/12, Term) - 1)
        - (Principal * (Rate/12)) AS PrincipalComponent,
    (Principal * (Rate/12)) AS InterestComponent
Resident Loans
While IterNo() &amp;lt;= Term;
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="overflow-visible!" data-start="1123" data-end="1661"&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;HR data-start="1663" data-end="1666" /&gt;
&lt;H3 data-start="1668" data-end="1721"&gt;&lt;span class="lia-unicode-emoji" title=":bar_chart:"&gt;📊&lt;/span&gt; Step 3: Calculate Remaining Balance (Optional)&lt;/H3&gt;
&lt;P data-start="1722" data-end="1823"&gt;If you want to compute &lt;STRONG data-start="1745" data-end="1766"&gt;Remaining Balance&lt;/STRONG&gt;, you can do it using &lt;STRONG data-start="1788" data-end="1798"&gt;Peek()&lt;/STRONG&gt; or in a subsequent load:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;DIV class="sticky top-9"&gt;
&lt;DIV class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;DIV class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;CODE class="whitespace-pre! language-qlik"&gt;&lt;SPAN&gt;FinalSchedule:
LOAD
    LoanID,
    PaymentNumber,
    PaymentDate,
    EMI,
    InterestComponent,
    PrincipalComponent,
    (Peek('OpeningBalance') - PrincipalComponent) AS RemainingBalance
Resident LoanSchedule
Order By LoanID, PaymentNumber;
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;PRE class="overflow-visible!" data-start="1824" data-end="2083"&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;HR data-start="2085" data-end="2088" /&gt;
&lt;H3 data-start="2090" data-end="2101"&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; Tips:&lt;/H3&gt;
&lt;UL data-start="2102" data-end="2350"&gt;
&lt;LI data-start="2102" data-end="2179"&gt;
&lt;P data-start="2104" data-end="2179"&gt;Always check if your &lt;STRONG data-start="2125" data-end="2133"&gt;Term&lt;/STRONG&gt; is in months or years — adjust accordingly.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2180" data-end="2273"&gt;
&lt;P data-start="2182" data-end="2273"&gt;You can replace &lt;CODE data-start="2198" data-end="2202"&gt;30&lt;/CODE&gt; with actual calendar logic if your payments aren’t strictly monthly.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2274" data-end="2350"&gt;
&lt;P data-start="2276" data-end="2350"&gt;To debug your While loop, try a smaller &lt;CODE data-start="2316" data-end="2322"&gt;Term&lt;/CODE&gt; (like 3 or 6 months) first.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-start="2352" data-end="2660"&gt;If you’re comparing how financial schedules apply to property funding, here’s a real-world case reference: &lt;A class="decorated-link" href="https://prosperusfunding.com/certified-residential-bridging-loans/" target="_new" rel="noopener" data-start="2459" data-end="2565"&gt;Certified Residential Bridging Loans&lt;/A&gt; — it shows how similar amortization logic is used in professional short-term finance planning.&lt;/P&gt;
&lt;HR data-start="2662" data-end="2665" /&gt;
&lt;H3 data-start="2667" data-end="2680"&gt;&lt;span class="lia-unicode-emoji" title=":blue_book:"&gt;📘&lt;/span&gt; Bonus:&lt;/H3&gt;
&lt;P data-start="2681" data-end="2891"&gt;There’s a great discussion on Qlik Community about iterative loads with amortization schedules:&lt;BR /&gt;&lt;A class="decorated-link" href="https://community.qlik.com/" target="_new" rel="noopener" data-start="2777" data-end="2835"&gt;https://community.qlik.com/&lt;/A&gt; — just search for &lt;EM data-start="2854" data-end="2890"&gt;Loan Amortization using While Loop&lt;/EM&gt;.&lt;/P&gt;</description>
    <pubDate>Sat, 01 Nov 2025 18:57:42 GMT</pubDate>
    <dc:creator>prosperusfunding</dc:creator>
    <dc:date>2025-11-01T18:57:42Z</dc:date>
    <item>
      <title>Loan Amortization Schedule</title>
      <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/1883979#M72797</link>
      <description>&lt;P&gt;Hi all!&lt;/P&gt;
&lt;P&gt;I have recently started working on Qlikview so have less knowledge about it. The task I am trying to achieve is calculate the&amp;nbsp;Loan Amortization Schedule using the while loop but could able to do that.&lt;/P&gt;
&lt;P&gt;I have following input table(qvd)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="GhazanfarAli_0-1642781485807.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/70734iF6CFC9B5B16D3811/image-size/medium?v=v2&amp;amp;px=400" role="button" title="GhazanfarAli_0-1642781485807.png" alt="GhazanfarAli_0-1642781485807.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I want&amp;nbsp;Loan Amortization Schedule to be calculate in qvs using the Qvd I have up pasted meaning I want separate table for the Payment plan based on this inputs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;the desired result show be like that, this picture is random loan calculation&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="GhazanfarAli_4-1642782137528.png" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/70737i1D75025DFEABFC9F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="GhazanfarAli_4-1642782137528.png" alt="GhazanfarAli_4-1642782137528.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;will greatfull if somebody can help.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV id="tinyMceEditorGhazanfarAli_3" class="mceNonEditable lia-copypaste-placeholder"&gt;&amp;nbsp;&lt;/DIV&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;&amp;nbsp;&lt;/P&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;</description>
      <pubDate>Fri, 21 Jan 2022 16:23:54 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/1883979#M72797</guid>
      <dc:creator>GhazanfarAli</dc:creator>
      <dc:date>2022-01-21T16:23:54Z</dc:date>
    </item>
    <item>
      <title>Re: Loan Amortization Schedule</title>
      <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/1883989#M72799</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Did you see this;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.qlik.com/t5/QlikView-Documents/Loan-Amortisation/ta-p/1482957" target="_blank"&gt;Loan Amortisation - Qlik Community - 1482957&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Chris.&lt;/P&gt;</description>
      <pubDate>Fri, 21 Jan 2022 16:53:11 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/1883989#M72799</guid>
      <dc:creator>chrismarlow</dc:creator>
      <dc:date>2022-01-21T16:53:11Z</dc:date>
    </item>
    <item>
      <title>Re: Loan Amortization Schedule</title>
      <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/1884304#M72834</link>
      <description>&lt;P&gt;Hi Chris!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks Buddy for the quick replay!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;what I am after is to create the payment plan in qvs instead creating Set Expression formulas. By the way I have see the link already but it does not help much unless giving idea how calculations working.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;as I said I have been struggling with while loop to create line by line future payment plan.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would be grateful if you can help me with creating payment plan using scripts in Load statement.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/Ghazanfar&lt;/P&gt;</description>
      <pubDate>Mon, 24 Jan 2022 08:08:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/1884304#M72834</guid>
      <dc:creator>GhazanfarAli</dc:creator>
      <dc:date>2022-01-24T08:08:57Z</dc:date>
    </item>
    <item>
      <title>Re: Loan Amortization Schedule</title>
      <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/1885725#M72961</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;This might be a start, for each loan you could use something similar to below, which is a script equivalent of your second screenshot, it would need some work to loop through your loans though &amp;amp; attach dates ... your input table looks like it has loans with mid-month end dates, so not sure if you need something more sophisticated though.&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Chris.&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;let rate=0.049/12;
let nper=20;
let pv=5000;

payments:
Load
	[Payment Amount]-[Interest Portion] As [Principal Portion],
	*;
Load
	If(ID=1,
		$(pv),
		peek('Ending Balance')
		) as [Beginning Balance],
	If(ID=1,
		($(pv)*(1+$(rate)))-[Payment Amount],
		peek('Ending Balance')*(1+$(rate))-[Payment Amount]
		) as [Ending Balance],
	If(ID=1,
		$(pv)*$(rate),
		peek('Ending Balance')*$(rate)
		) as [Interest Portion],
	*;	
Load
	RecNo() as ID,
	fabs(num(Pmt($(rate), $(nper), $(pv)))) as [Payment Amount]
AutoGenerate ($(nper));&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Jan 2022 20:12:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/1885725#M72961</guid>
      <dc:creator>chrismarlow</dc:creator>
      <dc:date>2022-01-26T20:12:40Z</dc:date>
    </item>
    <item>
      <title>Re: Loan Amortization Schedule</title>
      <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2007880#M83387</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Yes, I'm familiar with that kind of graph. To make things easier, you can use programs that automatically calculate everything for you. All you have to do is enter the necessary numbers and watch the result. You will also be able to convert the graphs as needed. I think it's pretty handy, so you should try it. But it is worth consulting an expert for those who are still new to the subject. Personally, it was vital for me to address a few critical documentary issues, and &lt;A href="https://coventrymoneyman.com" target="_self"&gt;Mortgage Broker Coventry&lt;/A&gt; helped me with that. Maybe you will find it helpful too. You can also ask any questions you may have. &lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 25 Nov 2022 01:13:06 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2007880#M83387</guid>
      <dc:creator>AlexJoe</dc:creator>
      <dc:date>2022-11-25T01:13:06Z</dc:date>
    </item>
    <item>
      <title>Re: Loan Amortization Schedule</title>
      <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2023773#M84475</link>
      <description>&lt;P&gt;&lt;SPAN data-sheets-value="{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;The best you can do is to find an automatized program that will do the math for you. It will make things much easier. But even though online tools are helpful, when it comes to loans I prefer to seek professional advice. So just to make sure you won't make it wrong, I suggest consulting an expert. Find a company with good reviews, such as&amp;nbsp;Mortgage Advisor Derby, and address your critical documentary issues. I hope my advice will be helpful, and you'll manage to fulfill the task and convert your graph. &amp;quot;}" data-sheets-userformat="{&amp;quot;2&amp;quot;:375747,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;4&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16777215},&amp;quot;9&amp;quot;:0,&amp;quot;10&amp;quot;:1,&amp;quot;11&amp;quot;:3,&amp;quot;12&amp;quot;:0,&amp;quot;14&amp;quot;:{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:16711680},&amp;quot;15&amp;quot;:&amp;quot;Arial&amp;quot;,&amp;quot;16&amp;quot;:10,&amp;quot;18&amp;quot;:1,&amp;quot;19&amp;quot;:0,&amp;quot;21&amp;quot;:0}"&gt;The best you can do is to find an automatized program that will do the math for you. It will make things much easier. But even though online tools are helpful, when it comes to loans I prefer to seek professional advice. So just to make sure you won't make it wrong, I suggest consulting an expert. Find a company with good reviews, such as&amp;nbsp;&lt;A href="https://Derbymoneyman.com" target="_self"&gt;Mortgage Advisor Derby&lt;/A&gt;, and address your critical documentary issues. I hope my advice will be helpful, and you'll manage to fulfill the task and convert your graph. &lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 12:27:19 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2023773#M84475</guid>
      <dc:creator>RandallChristopher</dc:creator>
      <dc:date>2023-01-16T12:27:19Z</dc:date>
    </item>
    <item>
      <title>Re: Loan Amortization Schedule</title>
      <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2024572#M84513</link>
      <description>&lt;P&gt;You can look on the Internet for ready-made codes that will automatically display the amount of payments. Many banks offer a calculation function, you enter the amount and term of repayment and the site automatically calculates the monthly payment. The code is in the public domain. But sometimes the data on the site can be inaccurate. When I took out a mortgage to buy a house, the site said my monthly payment would be $1,500. These &lt;A href="https://Leicestermoneyman.com" target="_self"&gt;Mortgage Advisor Leicester&lt;/A&gt; guys helped me get the same amount for the same term and my monthly payment was only $1,350.&lt;/P&gt;</description>
      <pubDate>Thu, 12 Jan 2023 20:28:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2024572#M84513</guid>
      <dc:creator>Radagask</dc:creator>
      <dc:date>2023-01-12T20:28:25Z</dc:date>
    </item>
    <item>
      <title>Re: Loan Amortization Schedule</title>
      <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2143918#M93071</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Start with the principal amount, interest rate, and loan term. Then, use the loop to calculate each installment, reducing the principal each time. As for your input table (qvd), make sure it contains all the necessary data like principal, interest rate, and loan term. If you're still having trouble, don't hesitate to ask for help on Qlikview forums or communities. Folks there can often provide code snippets and guidance to get you on the right track. And if you ever need financial advice, I usually consult with &lt;A href="https://essexmoneyman.com/mortgage-broker-chelmsford/" target="_self"&gt;Mortgage Broker Chelmsford&lt;/A&gt;. They're pros when it comes to money matters.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Dec 2023 13:39:46 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2143918#M93071</guid>
      <dc:creator>ChadGregory</dc:creator>
      <dc:date>2023-12-04T13:39:46Z</dc:date>
    </item>
    <item>
      <title>Re: Loan Amortization Schedule</title>
      <link>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2534975#M108483</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="157" data-end="412"&gt;Welcome to the world of QlikView — great to see you experimenting with something practical like a &lt;STRONG data-start="255" data-end="285"&gt;Loan Amortization Schedule&lt;/STRONG&gt;. It’s definitely doable using a &lt;STRONG data-start="318" data-end="334"&gt;&lt;CODE data-start="320" data-end="327"&gt;WHILE&lt;/CODE&gt; loop&lt;/STRONG&gt; or the &lt;STRONG data-start="342" data-end="356"&gt;&lt;CODE data-start="344" data-end="354"&gt;IterNo()&lt;/CODE&gt;&lt;/STRONG&gt; and &lt;STRONG data-start="361" data-end="374"&gt;&lt;CODE data-start="363" data-end="372"&gt;RecNo()&lt;/CODE&gt;&lt;/STRONG&gt; functions within a &lt;STRONG data-start="394" data-end="411"&gt;resident load&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P data-start="414" data-end="700"&gt;If you’re also exploring how real-world loan repayment structures work (like short-term or bridging loans), you can check out some examples at &lt;A class="decorated-link" href="https://prosperusfunding.com" target="_new" rel="noopener" data-start="557" data-end="606"&gt;Prosperus Funding&lt;/A&gt;, where they explain how structured loan schedules are used for projects and property finance.&lt;/P&gt;
&lt;HR data-start="702" data-end="705" /&gt;
&lt;H3 data-start="707" data-end="743"&gt;🧩 Step 1: Load Your Input Table&lt;/H3&gt;
&lt;P data-start="744" data-end="781"&gt;Assume your QVD contains fields like:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;DIV class="sticky top-9"&gt;
&lt;DIV class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;DIV class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;CODE class="whitespace-pre!"&gt;&lt;SPAN&gt;LoanID, Principal, Rate, Term, StartDate
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="overflow-visible!" data-start="782" data-end="830"&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;P data-start="832" data-end="846"&gt;Load it first:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;DIV class="sticky top-9"&gt;
&lt;DIV class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;DIV class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;CODE class="whitespace-pre! language-qlik"&gt;&lt;SPAN&gt;Loans:
LOAD 
    LoanID,
    Principal,
    Rate,
    Term,
    StartDate
FROM [YourLoanFile.qvd] (qvd);
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="overflow-visible!" data-start="847" data-end="963"&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;HR data-start="965" data-end="968" /&gt;
&lt;H3 data-start="970" data-end="1019"&gt;&lt;span class="lia-unicode-emoji" title=":gear:"&gt;⚙️&lt;/span&gt; Step 2: Generate the Amortization Schedule&lt;/H3&gt;
&lt;P data-start="1020" data-end="1121"&gt;You can now use a &lt;STRONG data-start="1038" data-end="1052"&gt;While loop&lt;/STRONG&gt; in a &lt;STRONG data-start="1058" data-end="1075"&gt;resident load&lt;/STRONG&gt; to generate a new table for the payment plan.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;DIV class="sticky top-9"&gt;
&lt;DIV class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;DIV class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;CODE class="whitespace-pre! language-qlik"&gt;&lt;SPAN&gt;LoanSchedule:
LOAD
    LoanID,
    StartDate + (IterNo()-1) * 30 AS PaymentDate, // assuming monthly payments
    IterNo() AS PaymentNumber,
    Rate/12 AS MonthlyRate,
    Principal AS OpeningBalance,
    (Principal * (Rate/12) * (Pow(1 + Rate/12, Term))) / (Pow(1 + Rate/12, Term) - 1) AS EMI,
    (Principal * (Rate/12) * (Pow(1 + Rate/12, Term))) / (Pow(1 + Rate/12, Term) - 1)
        - (Principal * (Rate/12)) AS PrincipalComponent,
    (Principal * (Rate/12)) AS InterestComponent
Resident Loans
While IterNo() &amp;lt;= Term;
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="overflow-visible!" data-start="1123" data-end="1661"&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;HR data-start="1663" data-end="1666" /&gt;
&lt;H3 data-start="1668" data-end="1721"&gt;&lt;span class="lia-unicode-emoji" title=":bar_chart:"&gt;📊&lt;/span&gt; Step 3: Calculate Remaining Balance (Optional)&lt;/H3&gt;
&lt;P data-start="1722" data-end="1823"&gt;If you want to compute &lt;STRONG data-start="1745" data-end="1766"&gt;Remaining Balance&lt;/STRONG&gt;, you can do it using &lt;STRONG data-start="1788" data-end="1798"&gt;Peek()&lt;/STRONG&gt; or in a subsequent load:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;
&lt;DIV class="sticky top-9"&gt;
&lt;DIV class="absolute end-0 bottom-0 flex h-9 items-center pe-2"&gt;
&lt;DIV class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="overflow-y-auto p-4" dir="ltr"&gt;&lt;CODE class="whitespace-pre! language-qlik"&gt;&lt;SPAN&gt;FinalSchedule:
LOAD
    LoanID,
    PaymentNumber,
    PaymentDate,
    EMI,
    InterestComponent,
    PrincipalComponent,
    (Peek('OpeningBalance') - PrincipalComponent) AS RemainingBalance
Resident LoanSchedule
Order By LoanID, PaymentNumber;
&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;PRE class="overflow-visible!" data-start="1824" data-end="2083"&gt;&amp;nbsp;&lt;/PRE&gt;
&lt;HR data-start="2085" data-end="2088" /&gt;
&lt;H3 data-start="2090" data-end="2101"&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; Tips:&lt;/H3&gt;
&lt;UL data-start="2102" data-end="2350"&gt;
&lt;LI data-start="2102" data-end="2179"&gt;
&lt;P data-start="2104" data-end="2179"&gt;Always check if your &lt;STRONG data-start="2125" data-end="2133"&gt;Term&lt;/STRONG&gt; is in months or years — adjust accordingly.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2180" data-end="2273"&gt;
&lt;P data-start="2182" data-end="2273"&gt;You can replace &lt;CODE data-start="2198" data-end="2202"&gt;30&lt;/CODE&gt; with actual calendar logic if your payments aren’t strictly monthly.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2274" data-end="2350"&gt;
&lt;P data-start="2276" data-end="2350"&gt;To debug your While loop, try a smaller &lt;CODE data-start="2316" data-end="2322"&gt;Term&lt;/CODE&gt; (like 3 or 6 months) first.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-start="2352" data-end="2660"&gt;If you’re comparing how financial schedules apply to property funding, here’s a real-world case reference: &lt;A class="decorated-link" href="https://prosperusfunding.com/certified-residential-bridging-loans/" target="_new" rel="noopener" data-start="2459" data-end="2565"&gt;Certified Residential Bridging Loans&lt;/A&gt; — it shows how similar amortization logic is used in professional short-term finance planning.&lt;/P&gt;
&lt;HR data-start="2662" data-end="2665" /&gt;
&lt;H3 data-start="2667" data-end="2680"&gt;&lt;span class="lia-unicode-emoji" title=":blue_book:"&gt;📘&lt;/span&gt; Bonus:&lt;/H3&gt;
&lt;P data-start="2681" data-end="2891"&gt;There’s a great discussion on Qlik Community about iterative loads with amortization schedules:&lt;BR /&gt;&lt;A class="decorated-link" href="https://community.qlik.com/" target="_new" rel="noopener" data-start="2777" data-end="2835"&gt;https://community.qlik.com/&lt;/A&gt; — just search for &lt;EM data-start="2854" data-end="2890"&gt;Loan Amortization using While Loop&lt;/EM&gt;.&lt;/P&gt;</description>
      <pubDate>Sat, 01 Nov 2025 18:57:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Loan-Amortization-Schedule/m-p/2534975#M108483</guid>
      <dc:creator>prosperusfunding</dc:creator>
      <dc:date>2025-11-01T18:57:42Z</dc:date>
    </item>
  </channel>
</rss>

