
Financial calculation library can perform a wide variety of calculations and generate cash flows for financial instruments such as amortizations, loans, annuities, CDs amd IRAs.
Financial Calculation Library Features
 Financial instruments represented
 Mortgages
 Personal loans
 Certificates of Deposit
 Amortization Schedules
 Deposit Accounts
 Annuities
 Annuities receiving contributions
 Annuities generating income
 IRAs
 Future Value/Present Value of Funds
 Pure ActiveX Objects with no user interface
 "Both" Threaded  can be used in singlethreaded and multithreaded applications
 Compatible with
 Visual Basic (VB6)
 Active Server Pages (ASP)
 Visual Interdev
 Visual C++ (VC++ 6)
 Windows Scripting Host (VBScript and JScript)
 Visual Basic for Applications^{�} (VBA)
 Microsoft Office (Word, Excel, Access) with VBA
 Delphi
 Full cashflow tables
 Cashflow tables as collections (supports "
For Each ... Next
") Solve for any value
 No mathematical knowledge required
 Small memory footprint  does not require MFC, MSVCRT, ATL, or the VB6 Runtime
AtFinCalc Financial Calculation Library Technical Details
AtFinCalc.dll Help
Installing your license key
You can install the license key you received with your purchase by using the Atereon License Manager. The license manager can be found on the "Start Menu" under "Programs  Atereon" as "Register Atereon Software".
In the license manager, select "AtFinCalc" as your application and enter your license key.
Using the Library back to contents
How to use the AtFinCalc.dll library.
Visual Basic
Step 1: Add a reference to the AtFinCalc.dll
Step 2: Create an Object
AtFinCalc Objects can now be created using a Dim statement, either referencing the library or not.
Dim mLoan as New Loan
dim mAnn1 as New GrowingAnnuity
dim mAnn2 as New PayingAnnuity
dim mDep as New Deposit
dim mFlowItem as CashFlow
dim mFlows as CashFlows
or
dim mLoan as new AtFinCalc.Loan
dim mAnn1 as new AtFinCalc.GrowingAnnuity
dim mAnn2 as new AtFinCalc.PayingAnnuity
dim mDep as new AtFinCalc.Deposit
dim mFlowItem as AtFinCalc.CashFlow
dim mFlows as AtFinCalc.CashFlows
Visual C++ back to contents
The AtFinCalc.dll objects can be added to a Visual C++ project using
the #import
directive in a header file. The AtFinCalc objects can be
created using the compiler generated SmartPointers and their "CreateInstance" methods.
The #import
directive creates a header file "AtFinCalc.tlh"
that can be added to your project to get Class View references for the AtFinCalc
objects.
Don't forget to call CoInitialize(NULL)
to set up COM.
All "optional" parameters should be passed in as 0 or 0.0 to use their default values.
#include "stdafx.h"
#include <comdef.h>
#import "c:\libraries\AtFinCalc\AtFinCalc.dll" no_namespace
int main(int argc, char* argv[])
{
CoInitialize(NULL);
ILoanPtr m_loan;
m_loan.CreateInstance("AtFinCalc.Loan");
m_loan>Amount = 1000.0;
m_loan>Periods = 24;
m_loan>Rate = 0.10 / 12.0;
printf("%.2f\n", m_loan>CalcPayment(0, 0, 0));
CoUninitialize();
return 0;
}
ASP  Active Server Pages
In ASP use the Server.CreateObject function to create AtFinCalc.dll objects.
dim mLoan
set mLoan = Server.CreateObject("AtFinCalc.Loan")
VB Script
In VB Script use the CreateObject function to create AtFinCalc.dll objects.
dim mLoan
set mLoan = CreateObject("AtFinCalc.Loan")
Redistributing the library as part of your product back to contents
Note:
Redistributing the AtFinCalc library requires a client licenses for each target
workstation, a singleserver license for each network server (including, but not
limited to web servers), or a redistribution agreement for the product with Atereon,
Inc.
Using Windows Installer
The AtFinCalc distribution includes a Windows Installer Merge Module (MSM) file that can be included in your own project. This is the preferred method of redistributing the library.
Other installation toolkits back to contents
If you want to create an install manually, you need to include the following:
Both files need to be registered. The standard location for these files is "Program Files\Common Files\Atereon".
In order to install your license you will need to use the Atereon License manager or the code below. In the code below, replace the license key with the license key you received with your purchase. If a license is not installed the evaluation license will expire after 30 days, and your application will no longer function.
dim atfincalc as new AtFinCalcLib
call atfincalc.SetLicense("1234567812345678")
CashFlows Object back to contents
The CashFlows Object is a Collection of CashFlow Objects. The contained
CashFlow Objects can be referenced by index (flows(i)
)or using the
iterator methods (For Each flow in mFlows
).
This object contains a single entry in a cash flow table (the CashFlows Collection Object). Each item in a CashFlows Collection is a CashFlow object.
Not all properties have values in every cash flow. For example, a CashFlows collection created by a Loan Object has no Contribution or Distribution properties.
Properties
Balance  The remaining principle of a financial instrument at the beginning of the period. 
Contribution  The amount contributed to an annuity in this period. 
Distribution  The amount paid out of an annuity in this period. 
Interest  The amount of interest paid on a loan payment, or added to a Deposit or GrowingAnnuity Object in this period. 
Payment  The payment made this period. 
Principle  The amount of principle paid on a loan payment in this period 
Methods back to contents
None
Example
Problem:
What does the cash flow table for a mortgage look like?
Dim mort as New Loan
dim flows as CashFlows
dim i as long
mort.Amount = 100000
mort.Periods = 360 ' 30 Years
mort.Rate = .0725/12 ' 7.25%
set flows = mort.CalcCashFlows
for i = 0 to flows.Count  1
' Do processing
principle = flows(i).Balance ' Starting Principle
interest = flows(i).Interest ' Interest Paid
payment = flows(i).Payment ' Payment Amount
' flows(i).Payment = flows(i).Interest + flows(i).Principle
next i
' Or do it this way
dim flow as CashFlow
for each flow in flows
' Do processing
principle = flow.Balance ' Starting Principle
interest = flow.Interest ' Interest Paid
payment = flow.Payment ' Payment Amount
' flow.Payment = flow.Interest + flow.Principle
next flow
Deposit Object back to contents
This object is used for calculations on Deposit accounts  accounts that have an initial deposit and receives interest at a fixed rate over a period of time. This includes financial instruments such as savings accounts and certificates of deposit.
You can combine the calculations of a Deposit Object with the calculations of a GrowingAnnuity Object to perform calculations for an annuity that has an initial value and is also receiving regular contributions. See the GrowingAnnuity Object example for an example.
Properties
FutureValue  The value of the deposit (PresentValue) after Periods of Rate interest. 
Periods  The number
of periods of interest compounding. If the deposit will be for 2 years with
interest compounded monthly then:
Periods = 12 * 2 = 24. 
PresentValue  The amount of the deposit. 
Rate  The interest
rate on the deposit per period. If the rate is 5%, and it its compounded
daily, then:
Rate = 0.05 / 360 = .0001389. 
Yield  The calculated APY of Rate over Periods. Periods should be for 1 year to make this A (annual) P (percentage) Y (yield). 
Methods
For each function, you can either set the properties in advance or pass them in as parameters.
CalcAPY  Calculate the APY of Rate at Periods/year. The result of this calculation is discarded. Requesting the Yield property is the same as calling this method. 
CalcFutureValue  Calculate the the future value of the deposit using PresentValue, Rate and Periods. 
CalcPeriods  Calculate the Periods needed for PresentValue to grow to FutureValue at Rate. 
CalcPresentValue  Calculate the PresentValue based using FutureValue, Rate and Periods. 
CalcRate  Calculate the Rate required for PresentValue to reach FutureValue in Periods. 
Example back to contents
Problem:
What will a $1000 18 month CD at 6% be worth when it matures?
dim dep as new Deposit
dim value as Double
dep.PresentValue = 1000
dep.Periods = 18
dep.Rate = .06/12
value = dep.CalcFutureValue
And what APY is that?
dim apy as Double
dep.Periods = 12
apy = dep.Yield
GrowingAnnuity Object back to contents
This object is used for calculations on annuities that are paying no distributions, but are receiving regular contributions.
You can combine the calculations of a GrowingAnnuity Object with the calculations of a Deposit Object to calculate values for an annuity that already has principle. Use the Deposit Object for the current principle and the Growing Annuity Object for the contributions. See the example below.
Properties
Contribution  The amount
of each contribution, one per period. If there are 12 contributions per
year, and the total annual contribution is $1000, then: Contribution = $1000 / 12 = $83.33. 
EndingValue  The principle in the annuity after all contributions have been made. 
Periods  The number
of periods over which contributions will be made. If there are 15 years
before retirement, with monthly contributions, then:
Periods = 12 * 15 = 180. 
Rate  The interest
rate of the annuity per period. If the rate is 10%, and distributions are
made monthly, then:
Rate = .10 / 12 = .0083333. 
Methods
Except for CalcCashFlows Function, you can either set the Properties in advance or pass them in as parameters to the function call.
CalcCashFlows  Create
a CashFlows Collection for the annuity. The calculation uses the current
values of Contribution, Rate and EndingValue. 
CalcContribution  Calculate the Contribution required for the current the number of Periods, Rate and EndingValue. 
CalcEndingValue  Calculate the final principle in the annuity after Periods, using the current Rate and Contribution for each period. 
CalcPeriods  Calculate the Periods required to reach EndingValue using the current values of Contribution and Rate. 
CalcRate  Calculate the Rate of return required for the annuity reach EndingValue using the current values of Contribution and Periods. 
Example back to contents
Problem:
My annuity currently has $10000 in it. What will its value be in 10 years with a quarterly contribution of $2500 at a 9% rate of return.
dim growAn as New GrowingAnnuity
dim dep as New Deposit
dim value as Double
growAn.Periods = 10 * 4
growAn.Rate = .09 / 4
growAn.Contribution = 2500
dep.Periods = 10 * 4
dep.Rate = .09 / 4
dep.PresentValue = 10000
value = dep.CalcFutureValue() + growAn.CalcEndingValue()
Loan Object back to contents
This object is used for calculations on loans (amortization schedules) with fixed interest rates over a fixed period of time. For example a fixedrate mortgage, an adjustable rate mortgage during its initial fixedrate period, a balloon mortgage before the balloon payment is due, or an installment loan.
If you calculate a Payment amount, the amount of the final payment will probably be different from every other Payment, this is reflected in the CashFlows Collection generated. If you calculate another parameter using a Payment amount, such as Amount or Rate, the calculation assumes that all payments (including the final payment) will be equal. The resulting sideeffect is that an Amount calculated from a Payment can be slightly different from an identical Payment calculated from another Amount.
For example, the calculated Payment for a $1000.00 loan at 10% over 12 periods, is $87.92 per period. The same Payment is also calculated for a $1000.10 loan and a $1000.05 loan. The Amount calculated from a $87.92 payment is always $1000.05.
Properties
Amount  The original principle amount of the loan. For example, if you buy a $100,000 home, with 20% down, then the Amount of the loan is $80,000. 
Payment  The payment to be made each period. If the payments are monthly, then each payment is 1/12 of the annual payment. 
Periods  The number
of periods before the loan is fully paid off. For a 15 year mortgage with
monthly payments, this value would be 180 payments (15 * 12 = 180 ). 
Rate  The interest
rate of the loan (per period). If the rate is 10%, and payments are made
monthly, then: Rate = .10 / 12 = .0083333. 
Methods back to contents
Except for CalcCashFlows Function, you can either set the Properties in advance or pass them as function call parameters.
CalcAmount  Calculate the loan amount using Payment, Rate and Periods. This method assumes that all payments including the final one are equal. 
CalcCashFlows  Create a CashFlows Collection for the amortization schedule. The schedule is based on the current values of Payment, Rate and Amount. 
CalcPayment  Calculate the payment required for a loan of Amount, Rate and Periods. 
CalcPeriods  Calculate the Periods until the loan is paid off, using Amount, Rate and Payment. 
CalcRate  Calculate the interest Rate of the loan if Amount is paid off over Periods with Payment. 
Example
Problem:What payment is required for a $100,000 mortgage over 15 years at 7.25%.
Dim mort as New Loan
dim payment as Double
dim orig as Double
orig = 100000
mort.Amount = orig
mort.Periods = 15 * 12
mort.Rate = .0725 / 12
payment = mort.CalcPayment
If the payments are all equal, what would the original Amount be?
dim amt as Double
' Now work backwardsamt = mort.CalcAmount
' amt ≠ orig
Paying Annuity Object back to contents
This object is used for calculations on Annuities that are paying distributions. The PayingAnnuity Object can be used to calculate the principle required for an annuity to last a given period, the rate of return required to guarantee an payments, the periods an annuity will last or the payment available from an annuity.
You can combine the calculations of PayingAnnuity Object with the calculations of a GrowingAnnuity Object to determine the contributions required to create an annuity that will last for a given period. See the example below.
Properties
Distribution  The amount
of each distribution, one per period. If there are 12 distributions per
year, and the total annual distribution is $1000, then:

Periods  The number
of periods before the annuity has zero principle. If the annuity must last
20 years, with monthly distributions, then:

Rate  The interest
rate of the annuity per period. If the rate is 10%, and distributions are
made monthly, then:

Start ingValue  The principle in the annuity before any distributions are made. The ending value of the annuity is $0. 
Methods back to contents
Except for the CalcCashFlows Function, you can either set the properties in advance or pass them as parameters. to the function calls.
CalcCashFlows  Create
a CashFlows collection for the annuity. This calculation uses the current
values of Distribution, Rate and Staring value. Note: There will be one item for each Period, so if periods is very large, the collection will also be very large. 
CalcDistribution  Calculate the maximum Distribution available from the annuity it it must last the number of Periods using the current Rate and Start ingValue. 
CalcPeriods  Calculate the number of Periods until the annuity has zero value using Start ingValue, Distribution and Rate. 
CalcRate  Calculate the Rate of return required for the annuity to last Periods using Start ingValue and Distribution. 
CalcStart ingValue  Calculate the initial principle required for the annuity to last Periods using Rate and Distribution. 
Example back to contents
Problem:
What initial principle will be required for a 20 year annuity at 10% that has monthly payments of $1000?
Dim payAn as New PayingAnnuity
dim principleRequired as Double
payAn.Rate = 0.10 / 12
payAn.Distribution = 1000
payAn.Periods = 20 * 12
principleRequired = payAn.CalcStart ingValue
How much will I need to contribute each month if I have 15 years before retirement?
Dim growAn as New GrowingAnnuity
dim monthlyDeposit as Double
growAn.EndingValue = principleRequired
growAn.Periods = 15 * 12
growAn.Rate = 0.10 / 12
monthlyDeposit = growAn.CalcContribution
AtFinCalc Financial Calculation Library Secure Payment Options
Order Type: 

Special ! Free Choice of Complete Excel Training Course OR OzGrid Addins Collection on all purchases totaling over $70.00. ALL purchases totaling over $149.00 gets you BOTH! Purchases MUST be made via this site. Send payment proof to [email protected] 31 days after purchase date.
Download Demo of AtFinCalc Financial Calculation Library!
See Also: Financial Software Index Financial Calculators Index & Excel Addins Index & Excel Templates Index or, All Software
Instant Download and Money Back Guarantee on Most Software
Excel Trader Package Technical Analysis in Excel With $139.00 of FREE software!
Microsoft � and Microsoft Excel � are registered trademarks of Microsoft Corporation. OzGrid is in no way associated with Microsoft
Some of our more popular products are below...
Convert Excel Spreadsheets To Webpages  Trading In Excel  Construction Estimators  Finance Templates & Addins Bundle  CodeVBA  SmartVBA  PrintVBA  Excel Data Manipulation & Analysis  Convert MS Office Applications To......  Analyzer Excel  Downloader Excel
 MSSQL Migration
Toolkit 
Monte Carlo Addin 
Excel
Costing Templates