CREDIT PROGRAMS (c) Brian Stewart, 1983-2002 Release: March 2002 --- I M P O R T A N T --- This remains an 'interim' release of the programs covering the period of transition between the pre- and post-14 April 2000 versions of the Total Charge for Credit Regulations. This does not mean that it is in any sense a temporary version, only that it contains extra code to deal with both versions of the Regulations. Please read section 5.6 towards the end of this file for details. ------------------------- 1. INTRODUCTION 1.1. The DOS programs on this disc are designed to assist enforcement officers and consumer advisers with the calculations required by the Consumer Credit Act 1974. Details of the terms and conditions under which the programs are provided are given towards the end of this document. 1.2. The programs are generally accessed from a menu system referred to as the Credit Programs Link (`the Link') and, in addition to carrying out the statutory calculations, provide a program which schedules through agreements to find the interest due and amounts paid and outstanding at any point in a loan (Schedule) - it's sometimes necessary to do this before calculating an APR or rebate. 1.3. These Notes 1.3.1. When read from the Link's menu, these instructions will usually appear in a mode called `paged scrolling'. A screenfull of text at a time will be displayed and the next screenfull can be scrolled up by pressing either SHIFT key. Holding down CTRL and SHIFT together will pause the scrolling at the end of any line. Unfortunately, using this method you can't go back to text which has scrolled off the top of the screen (see section 1.4. for details of an alternative method). Keying ESCAPE while viewing the text will return you to the menu. 1.3.2. With the March 1994 release of the programs an effort was made to cut down the amount of text in the files issued with the programs. The information files have been reorganised so that most of the generally applicable information is kept in one place (this file, CREDIT.DOC) with the instruction files for individual programs only providing additional information appropriate to the particular program. 1.3.3. Most of the programs provide an option for you to read both this file and their specific instructions on-screen. For users who are already familiar with earlier versions of the programs, the instruction files try to indicate where corrections have been made or new facilities introduced - so you should also read them if you are upgrading. 1.3.4. Generally the instructions for a program are held in a file with the same name and a .DOC (for documentation) extension, for example: the documentation for the Schedule program SCHEDULE.BBC is in the file SCHEDULE.DOC. One or two programs may have very short instructions contained within their own code: these can be printed by calling them up on screen and then keying PrtScr (Print Screen). 1.4. Listing Text Files 1.4.1. Keying F2 from the Link's menu calls the Lister program which lists the .DOC, .LOG, .SV?, .EXC and other ASCII files the programs recognise in the relevant directory (see section 8 of TECHNIC.DOC) and invites the user to enter the name of one which will then be listed on screen. This facility also provides an option to print the whole of the document being listed to your default printer by keying F3 or to redirect it to another printer port by keying F4 and selecting the required port. 1.4.3. This facility allows the user to step backwards and forwards through the text being read. To avoid using any additional memory this is done by reading the text from disc, so the program first has to find where each page starts. This procedure and the display of the text may be rather slow when a floppy disc is being used. If this is a problem, the `Read Instructions' options in the Link and the individual programs (which continue to use `paged scrolling') should be used instead. 1.5. Hard Disc Installation 1.5.1. From the July 1994 release, the programs can be transferred to your hard disc by keying F1 from the Link's menu. The programs on the floppy disc you receive should be set up so that this runs a small program called INSTALL.BBC which will prompt you for the name of a destination drive and directory and then carry out the installation for you. Please see the separate file INSTALL.DOC for full details of using this facility and getting the installed programs running. 1.5.2. REMEMBER TO KEEP A BACKUP COPY OF THE ORIGINAL DISC! Using DISKCOPY is probably the easiest way of doing this - see your DOS manual for details. If you want to copy the programs to someone else, either use the Distribution Menu (please see DISTRIB.DOC - but don't worry if you haven't got this file) or copy the disc you were sent, or your backup of it, rather than the files on your hard disc. 1.6. Technical Information 1.6.1. More technical information about using the Link and programs is provided towards the end of this file and, in more detail, in the separate file TECHNIC.DOC. The following sections provide general information (largely applicable to all the calculator programs) about inputting data into the programs, the types of data the programs require and how the programs output results and other information. 2. DATA INPUT 2.1. There are in general three ways of telling the programs what you want done: `Menus', `Selectors' and `Input lines'. Please read the individual entries on each of these and note that the operation of these vary slightly from program to program. You may also need to read the information on the specific program for exact details. 2.2. The programs will only give you the right results if you give them the right information. It is important that you understand what information is required to carry out the calculations and how it should be entered. Please make sure you read and understand the instructions about entering data and the information on data types under the headings `Levels', `Series' and `Extras', as well as that provided for each of the programs, before using them. 2.3. In general the programs will reject any obviously erroneous entries such as negative, fractional or zero values where these wouldn't make sense, or answers which are too big. When it encounters one of these, the program will beep (assuming your PC can beep) and clear the input line for you to re-enter a more sensible answer. 2.4. Menus 2.4.1. I'm sure you already know what a program menu is. A vertical list of alternatives appears on the screen and a highlight bar can be moved with the up and down cursor keys. SPACE will also move the bar downwards and the menus are `circular' (ie if you move beyond the first or last item you are taken back to the last or first). When the bar is over the option you want keying RETURN or ENTER will select it. If you've got an old-style keyboard where the numeric keypad doubles as the cursor keys, the programs generally also recognise `8' and `2' to mean up and down - so you can leave NUM LOCK on. Also, in most programs there is a bold letter in each option on the menu and you can select an option just by keying the bold letter. 2.4.2. Selecting a menu option will generally take you to a new screen which prompts you for further information. Occasionally, an option will prompt you for information in the bottom section of the same screen, below the menu. 2.5. Selectors 2.5.1. A selector is really just a small horizontal or `sideways' menu. The simplest just offers you a choice of `Yes/No'. Use the left and right cursor keys (or `4' and `6') to highlight which option you want and key RETURN or ENTER to select it. A selector will also recognise the first letter of an option (in most programs these are in bold type) so, for example, if you want to answer "Yes" to a Yes/No question, keying `Y' will be slightly quicker than moving the highlight and then keying RETURN or ENTER. 2.5.2. Some selectors also offer an option `[FF]' which stands for `Form Feed'. To avoid accidental form feeds, this can't be selected by moving the highlight - only by keying `F' - and tells the printer to start a new page. For the technically minded, all this does is send ASCII code 12 to the printer. In the unlikely event that this is the wrong code for your printer (or if you don't have a printer connected), don't use this facility. Using this option will generally also tell the program to reset any "header". Normally program headers (giving the program name, copyright message etc) are only printed the first time you ask for a printout, but starting a new page will make it appear again. 2.5.3. A few of the programs adopt a different style of selector offering options (usually across the bottom of the screen or at the program's prompt) in the format ... Y=Yes N=No F7=Quit, etc. ... but the idea is the same and you need only press the indicated key (upper or lower case for letters) to access the required action. 2.6. Input Lines 2.6.1. An input line looks something like this ... Question? <...................................> ... and is where you give the program detailed information about amounts, times, rates and so on. At its simplest all you have to do is type the answer and then key RETURN or ENTER. It will usually only accept numbers and certain other symbols (see later). However, input lines offer some important additional facilities. 2.6.2. First, they can generally be used as a calculator. This is useful if, for example, you have to give a program details of up-front fees made up of several amounts, say administration fees of £12.50, legal fees of £135 and a survey which cost £108.65. Instead of having to add this up in your head or on a calculator, you can simply enter 12.50+135+108.65 into the input line. 2.6.3. For more complex sums you will have to get used to the way calculations are described in a computer language like BASIC, but this isn't too different from how you would write a calculation on paper - it's really just a question of learning some different symbols ... * for multiply (ie 3*2 = 3 times 2) / for divide (ie 3/2 = 3 divided by 2) ^ for `to the power' (ie 3^2 = 3 `squared') E for `10 to the power' (ie 3E2 = 3 times 100) ... `+' and `-' act as you would expect and `=' will carry out the calculation and replace it with the answer in the input line (just like the `=' key on a calculator). Keying RETURN or ENTER will leave your calculation on the screen but pass the answer back to the program. Zero can usually be entered by keying RETURN or ENTER when the input line is blank. The word `Zero' will appear in the input line. 2.6.4. Another thing to remember is that the programs use correct algebraic logic to calculate the value of what you enter - unlike most calculators - so they do multiplication and division before addition and subtraction. For example, 240-36/2 is read as 240-(36/2) = 222 and NOT (240-36)/2 = 102. If you are not sure which way an entry will be read, use brackets to make it clear. 2.6.5. In addition to being available from the input lines used to enter values, the calculator can generally be called directly either from a program's Main Menu or from a Facilities Menu or by choosing a `Calc' option from a selector which appears immediately after the program has completed a calculation. 2.6.6. In programs that provide it, the Calc option is particularly useful if you want to transfer any of the results of a calculation into the calculator's memories (see `Memories' below) while they are still available on screen. To make this easier, in this mode the MR (F3) function recognises certain letters in addition to the keys 0 to 9. These can be used to transfer the results of a calculation onto the input line. The corresponding result is indicated by a bold letter. For example, after a Period Rate calculation in Trurate Two the `E' in `Effective Annual Rate =' is bold, and keying F3 followed by E will transfer that rate into the input line. You can then store it in one of the memories. 2.6.7. Input lines allow you to edit what you are entering. The cursor keys will move you along the line, HOME and END will take you to the beginning or end of the line, DELETE will delete the character under the cursor and DELETE LEFT (or <-, BACKSPACE, or however it's marked on your keyboard) will delete the character to the left of the cursor. `F5' will clear the whole line and `F6' will delete everything from the cursor onwards. INSERT will toggle insert and overtype modes as usual, the brackets at the end of the input line indicate which mode you are in: `<....>' for insert and `[....]' for overtype. 2.6.8. If you have an old-style keyboard, remember that, in an input line (unlike in menus and selectors), the program needs to distinguish between `4' and `6' and the left and right cursor keys. So you'll have to switch NUM LOCK off or hold a SHIFT key down to move the cursor. 2.6.9. Alternatively, the more advanced programs understand that the 6 keys immediately below the `7 8 9' on the top row of the main keyboard should be read as a numeric keypad, like this ... +---+---+---+---+ +---+---+---+---+ | 7 | 8 | 9 | 0 | | 7 | 8 | 9 | 0 | -+---+---+---+--- -+---+---+---+--- | U | I | O | ... read | 4 | 5 | 6 | -+---+---+---+ as ... -+---+---+---+ | J | K | L | | 1 | 2 | 3 | ---------+---+ ---------+---+ | . | | . | ----- ----- ... the `J' key is one of the typists' `home-keys' and often has a `pip' or bump on it which will help you to locate the bottom- left corner of this notional keypad. Incidentally, the keypad causes a minor conflict with a couple of Schedule's facilities which are called by `U' and `I'. Please note you have to use an upper-case letter to call the facility and lower-case to enter a number. 2.6.10. Input lines have also been adapted within individual programs to provide the user with other input facilities (for example, see the information on entering dates in 2.8 below). These are generally indicated by highlighted capital letters appearing at the end of the input line. Further details are available in the individual programs' instruction files. 2.7. Memories 2.7.1. The input line calculator also provides a memory facility in the more advanced programs. The F1 to F4 keys provide four functions. In each case the function key is followed by a number (0 to 9) indicating which of the ten available memories you want to use. A prompt such as `M+?' appears at the at the end of the input line to remind you that a number is required. The functions are as follows: F1 M+ Add the line's value to the memory F2 M- Subtract the line's value from the memory F3 MR Recall the memory into the input line F4 MC Clear the content of a memory (to zero) ... alternatively, you can key `V' instead of a number which will allow you to view the contents of the memories. In this mode, the cursor keys will allow you to scroll up and down through the memories or keying 0 to 9 will take you straight to the required memory. Keying RETURN/ENTER will select the currently viewed memory or ESCAPE will abort the memory function. 2.7.2. The values in the memories are available anywhere in a program. For example, the calculator option in the Facilities Menu of Rebates Two can be used to find and store a value which can later be recalled as a repayment amount when you are making a Rule of 78 calculation. The memories are also retained on disc (in a small file called MEMORY.DAT) and are loaded and saved by each of the credit programs providing memories as they start and end. This means the contents of the memories are retained for next time you run a program and are also available across all the programs which use them so you can also transfer values from one program to another. 2.7.3. Please note that the Multi-Calculator program can also access the 10 calculator memories. However, as the F1 to F4 keys are used for other functions in that program, SHIFT-F1 to SHIFT- F4 are used instead. 2.8. Dates 2.8.1. In some cases an input line will give you a facility to enter the times of events as dates. When this facility is available, a highlighted `D' appear at the end of the input line. Keying `D' will replace the input line with a smaller version asking you to enter a date. The first time you enter a date in a particular program option you will be asked ... Relevant Date: [...........] ... followed by ... Payment Date: [...........] ... and the program will then return you to the input line containing the length of the period between those two dates in whatever `time periods' (weeks, months etc.) you have decided to work in. As an agreement can only have one `relevant date' that question only appears once in each calculation. Any subsequent dates you enter are calculated from the same relevant date. 2.8.2. In some situations, where the idea of a relevant date isn't, ... er ... relevant, you will be asked for a start and end date instead. 2.8.3. With the May 1994 release date entry in general was tidied up a little. The date entry facility limits you (rather arbitrarily) to entering dates between 1/1/1600 and 31/12/2500 and won't accept daft dates like, say, 30 February (but it knows all about leap years). You should enter dates in the format dd/mm/yyyy. Leading zeros in days, months or years will be ignored. All four digits for the year are required, but the programs will supply the first two for you, taken from the system clock. If you want to enter a date outside the current century simply delete the supplied digits and enter your own. NB: in some circumstances (ie when you use Schedule to run automatic calculations - see later) you will find this facility has been switched off, but it will reappear after you go back to the Link's menu and then restart the program. 2.8.4. The date entry line checks the validity of the date as you enter it. Because of this, it only operates in insert mode and can only be left-deleted. Both delete keys and the cursor left key will be read as delete and most punctuation keys can be used to produce the `/' date separator. 2.8.5. NOTE: for APR and rebate calculations you should remember that Regulation 11 of the Total Charge for Credit Regulations, as amended from 14 April 2000, sets out the rules about what periods should be used for the timing of payments (see 3.7.2). If you find your dates are producing fractional periods for anything other than years (eg 2.225 months) you are probably using the wrong time periods. Technically weeks and months should all be whole numbers. Please also see paragraphs 3.5.6 and 3.5.7 on entering periods. 2.9. Retained Values 2.9.1. Virtually all the calculation options in the programs end with a selection asking if you want to make another calculation. If you answer `No' you will generally be returned to the menu you selected the option from. If you answer `Yes' the calculation is restarted but with the values you previously entered retained. This allows you to carry out a number of similar calculations without retyping all the information. 2.9.2. The previous entries will reappear in each input line with the cursor under the first character. Pressing any valid character key will delete the current entry and start a new one. Any other valid key (eg cursor or delete keys) will switch the input line to a mode where the retained value can be amended. Just keying RETURN/ENTER will re-enter the held value unchanged. Where you do this with a date entry the programs will check that you still want the value treated as a date. NB: if you are not working in years when you should be, this may introduce minor discrepancies in the date used or displayed. 2.9.3. The retained values are cleared every time you choose a calculation option from the main menu - this is generally what's going on when you are asked to wait a moment. So you can always clear out the retained values by going back the menu and then restarting the option. 2.10. Escape 2.10.1. In general ESCAPE acts as your `abort' key. If you've entered something wrong it will take you back to the start of an option so you can make corrections. 2.10.2. In the case of a Present Value Calculation in Trurate Two, once you have entered all the information required, if you key ESCAPE you are given the choice of either re-entering the information or going ahead with the calculation on the basis of the currently held values. This option is there to save you having to re-enter the whole (potentially quite lengthy) calculation again if you only want to change one minor item at the beginning. However, use it with caution and remember that you must enter the last item you want to change (ie key RETURN/ENTER) before keying ESCAPE or it won't be updated. If you're using this facility to carry out a number of calculations, try to describe the agreement so that the item you want to alter appears early on in the list of questions - otherwise you'll still have to go through all the others to get to the one you want to change. 2.10.3. From version 4.6 of Schedule, a similar system is used which enables you to choose whether to answer all Schedule's questions again or just those about repayments, later versions provide further options - see SCHEDULE.DOC for details. 3. DATA TYPES 3.1. General 3.1.1. Essentially the APR and rebate calculators use five types of data to describe the amounts and times at which money changes hands under a credit agreements. These are generally referred to as: a Loan (or an Advance or Cash Price) an Initial Payment (or Deposit) Levels (of Repayments or Advances) Series (of Repayments) Extras (Repayments or Advances) 3.1.2. Using combinations of these types of data you should be able to describe virtually any type of loan to the programs (see `Adding It Up'). Please note however that the programs do not all provide for all of these type of data. 3.2. Time Periods 3.2.1. The times of events (eg a repayment) and the lengths of periods are generally all described in terms of `time periods', eg the number of time periods between two events or from the relevant date. The length of time which one `time period' represents is stored by the programs as the number of time periods in a year, but you won't usually have to bother with this, because the following selector ... Days/Weeks/Months/Years/Others ... is used. This is usually set initially to `Months', as this is the most common period. Not surprisingly, selecting `Days' sets the number of time periods in a year to 365, `Weeks' sets it to 52, `Months' to 12 and `Years' to 1. If you select `Others' the selector changes to an input line so you can enter some other value (2 for half-yearly periods, 4 for quarters, 13 for four- weekly periods, and so on) - but it's worth mentioning again the Rules in Regulation 11 of the Total Charge Regulations which specify how you should measure periods (see 3.7.2). New 2000 Regulations: 3.2.2. The new Regulations which come into operation on 14 April 2000 introduced some changes in the way days are converted to part-years. The old Regulations specified that every day was a 365th of a year. The new Regulations give two alternative methods of conversion: i. a day is counted as a 365th of a normal year and a 366th of a leap-year; or ii. a day is counted as a 365.25th of a year. 3.2.3. From the February 2000 release, the programs will use the first of these methods when the time periods are set to 'Years'. The second method can be selected by choosing 'Others' in the time periods selector and entering a value of 1 - there is a simple mnemonic for this: if you want to use the 'real' years method (365 or 366 days) choose `Years'; if you want to use the OTHER ONE (`notional' 365.25 day years), choose `Others' and `1'. 3.3. Loan/Cash Price 3.3.1. Probably the most common situation you'll come across where there is a only one advance of money to the borrower. An input line is used to enter its amount and the program assumes it is made at `time zero' - ie. on the relevant date of the agreement. You can't use the single loan option in combination with the other advance options. 3.3.2. Sometimes a little thought is needed here: if someone buys goods with a cash price of, say, £1,000 on credit and makes a £200 down-payment it is natural (and technically correct) to assume that the £200 can be left out of the calculation - so the amount of credit is £800 and there is no initial repayment. If you do this however, the programs cannot include the down-payment in any figure they calculate for the total amount payable or paid (TAP) and this result will not conform the figure required to be shown in advertisements - although the other results given will still be valid. On the other hand, if you use the cash price as the amount of credit (which isn't strictly correct according to the Act) and enter the deposit as an initial repayment, this will give the correct total amount payable or paid figure. 3.3.3. From the September 1999 release, an alternative option `Cash Price and Deposit' has been added to the main calculator program menus to cope with this. This modifies the prompts given to the user: for example, `Amount of Loan?' becomes `Cash Price?' and `Amount of Initial Repayment' becomes `Amount of Deposit?'; and it also alters the calculation of the TAP so that it is correct in these cases. It will however only deal with cases where there is a single advance. 3.4. Initial Repayment 3.4.1. Another common situation is that the borrower will have to make some payment at the time the credit is advanced - eg. a down-payment or deposit, the provision of other goods in part- exchange, an insurance premium, a survey fee, etc. An input line is used to enter the amount of such an initial repayment (or their total if there is more than one) and the program assumes that it is made at `time zero'. 3.4.2. Please see also the comments in 3.3.2 to 3.3.3 above. 3.5. Levels Repayment Levels: 3.5.1. A `level' is a sequence of payments of the same amount made at regular intervals, one each time period. The program assumes that levels are `chained together' so that the first payment in a new level is paid exactly one time period after the last one in the preceding level (the first payment in the first level is assumed to be paid exactly one time period after the relevant date). The majority of loans you will come across can be described quickly and efficiently using levels, so its worth taking some time to make sure you know how to use them. Thinking of a diagram like this may help:- Amount (£) 40+ | xxxxxxxxxxxx 30+ xxxxxx | 20+ xxxxxx | 10+ | +----+----+----+----+----+----+-- time 5 10 15 20 25 30 (periods) 3.5.2. This represents the rather complex case of loan repaid by 6 payments of £20, followed by 12 payments of £35 and a final six payments of £30. The first of these repayments is to be made 6 periods after the loan is advanced (you can see why they are called `levels'). Remember that the program assumes the first repayments in the first level is at `time one' - so you would have to tell it that the first level is of amount "Zero" with 5 repayments. Note: agreements like this are often, quite legitimately, described in advertising material as, say, "Nothing to pay for six months!", but you only enter 5 zero repayments, not 6. After all, a straightforward loan could be described as `nothing to pay for one month'. Advance Levels: 3.5.3. These are only available in Trurate Two. They are similar to repayment levels and deal with those rare cases where credit is advanced as a sequence of payments which can be described as a level - the procedure and rules are the same as for repayment levels. In fact this facility, like some others in Trurate Two (and Schedule) is really only useful for carrying out certain types of `experimental' calculations which are unlikely to represent real credit agreements. 3.5.4. Although advance levels are linked together in the same way as repayment levels, advance and repayment levels are quite independent from one another. So the first payment in the first repayment level is assumed to be made at `time one' regardless of whether or not there are any advance levels. 3.5.5. It's also worth stressing the link between levels and time periods. If, for example, you choose to work in days, any levels you enter will be treated as though the payments are made 1 day apart. Choose your time periods carefully. Describing Levels: 3.5.6. The programs need just two pieces of information to describe a level, the amount of the repayments (or advances) in the level and the number of repayments. The second item can generally be entered either as a number or as a `period' - this being indicates by a highlighted `P'. 3.5.7. If you choose to enter a period the procedure is very similar to entering a date. You will be asked for a `Start Date' and `End Date' and the period between those two dates (in time periods) will appear in the input line. As with dates, you may have to edit the result of a period calculation to a whole number before the program will accept it. 3.5.8. To avoid any possible confusion, please remember that the first time you choose to enter a date for a particular calculation you will be asked to provide a `Relevant Date' and then a `Payment Date'. Any other dates entered for that calculation will only ask for a `Payment Date' and ALL dates in the calculation will be measured from the same relevant date. With periods however, you will always be asked for two dates (even though the start date might be the same as the relevant date - eg for the first level in a calculation) and the result will be calculated as the number of periods between those two dates. 3.6. Extras Extra Repayments: 3.6.1. These can be used to describe any repayments which don't fall neatly into a pattern of levels, such as the final repayment of credit in an agreement which only requires the borrower to make interest payments during its lifetime, or an option to purchase fee at the end of a Hire Purchase agreement. Input lines are used to enter the amount of each extra repayment and the time it is made, either as the number of time periods after the relevant date of the agreement or as the date on which it is made. Extra Advances: 3.6.2. These are very similar to extra repayments. Input lines are used to enter the amount of each extra advance and the time it is made, either as the number of time periods after the relevant date of the agreement or as the date on which it is made. It may be worth noting that it is possible to tell the program that there is NOT a single advance and to then contradict this by telling it that there is just one extra advance. This will allow you to enter the time of the advance as a date rather than just allow the program to assume `time zero'. This may be useful as a shortcut in approximate or experimental calculations. For example, if you want a `quick and dirty' solution to a calculation where the repayments almost form levels but the period to the first repayment is longer than the interval between repayments, you could use this method to enter the time of the loan as being before the relevant date for the levels. Remember however that, unless the interval from the loan to the first repayment is a whole number of periods, technically this won't give you a result which complies with the Regulations. 3.6.3. If you found the above diagram helpful, you might like to think of an extra repayment or advance as simply telling the programs where to put a single `x' on the diagram. 3.7. Series 3.7.1. Sometimes repayments will be made in a way which, although in some respects regular, doesn't fit the very rigid requirements for a level. For example, in addition to regular monthly repayments which you can describe as levels, you may have a service charge or insurance premium paid at, say, quarterly intervals. Trurate and Rebates Two provide a series entry facility which allows you to describe this sort of pattern without having to describe each one as an extra repayment. You do this by giving the program the following information:- (i) the time of the first repayment in the series (either in time periods from the relevant date or as a date); (ii) the interval between repayments, in time periods; (iii) the number of repayments; (iv) the amounts of the repayments: it asks first if all the repayments in the series are the same amount and, if they are, asks for that one amount or, if they aren't, asks for each repayment amount individually. Regulation 11: 3.7.2. Using a series gives you one further facility to deal with a specific problem created by the rules in Regulation 11 about calculating periods. These say that a period which isn't a whole number of calendar months should be counted in years and days. Since the periods referred to in the regulations are those between the relevant date and the date of each payment (rather than the periods between payments), if you have an agreement where the repayments are made monthly, but the period between making the loan and the first repayment is not a whole number of calendar months, then none of the repayments are a whole number of months from the relevant date and their times should all be counted in years and days. This means that the irregular number of days in calendar months, 30, 31 and 28, also have to be taken into account. 3.7.3. If you enter the time of the first repayment in a series as a date the program will asks if the repayments in the series are made at monthly (or multiples of monthly) intervals - ie every month, every 3 months, etc. If you say "Yes", the program will then ask for the number of months between repayments and calculate the times of the repayments in the series taking account of the changing number of days in calendar months. Remember that, under the rules in Regulation 11, a calculation using this facility will technically only be valid if you set the time periods to `Years' or `Others' and '`1' (which will probably also mean that the levels facility won't be much use and you should describe all the payments by series and extra repayments). 3.7.4. Again using a diagram, the x's below show a simple series which starts at time 5, has an interval of 5 periods between payments and 6 payments in all, all of the same amount (£10). Amount (£) 40+ o | o o 30+ o o o | o o 20+ o | 10+ x x x x x x | +----+----+----+----+----+----+-- time 5 10 15 20 25 30 (periods) 3.7.5. The o's show a more complex series which starts at time 4, has an interval of 3 periods between repayments and 9 payments in all. In this case the payments go up and down between £20 and £40, so their amounts would have to be entered separately. 3.7.6. With the May 1994 release another facility was added which allows you to deal more easily with those cases where you have a series which contains `level-like' repayments, eg three payments of £150, then five of £175, then four of £100, and so on. After the first payment in a series with unequal payment amounts has been entered, you can just key `S' (for "same") and the same values as the previous entry will be entered again. So, in our example you could enter 150,S,S,175,S,S,S,S,100,S,S,S etc. This facility is indicated by a highlighted `S'. NB: This is similar to the "same" facility provided by Schedule but there is a distinction. When you key `S' in Schedule the same value just appears in the input line: you also have to key RETURN/ENTER to enter it. This is consistent with the other facilities offered by Schedule and gives you a chance to amend the value. With Trurate and Rebates Two however, the main object is to speed up entry so keying `S' actually enters the value - you don't have to key RETURN/ENTER, the program goes straight on to the next prompt. 3.7.7. Finally on this point, I should add that I know that several users have found the series facility rather confusing - this is why access to it is now usually limited to the advanced versions of the programs. It isn't that complex (at least not when you know what the program is doing), perhaps I'm just not explaining it very well. You may not have to use it very often (which doesn't help), but if you do it may be a good idea to re-read this part of the notes, look at the diagram above, try a few examples and read the printouts etc. to make sure you've got it clear in your mind. 3.8. Adding It Up 3.8.1. You've probably realised from the descriptions of data types that there's usually more than one way to describe an agreement to the programs. For example, a down-payment could be described as an initial repayment or as an extra repayment at `time zero' and 12 regular repayments could be described as a level, a series or as 12 separate extra repayments. When faced with this sort of choice the rule is generally to go first for levels (they're easy to enter and the program can deal with them very quickly), next for series (they're still fairly easy for you to enter, but more difficult for the program to deal with) and only use extra repayments as a last resort or for one-off payments like an option-to-purchase fee or lump-sum repayment of capital at the end of the loan (because you have to enter the amount and time of each one separately). 3.8.2. It's also worth remembering that an APR or rebate is calculated by adding up values obtained from the amounts and times of all the advances and repayments. With the various ways of describing payments what you are doing is rather like superimposing the diagrams above on top of one another (along with similar diagrams for advances, deposits and extra payments). 3.8.3. NOTE: I'm not sure why, but a common mistake seems to be to describe the same repayments using both levels and series. If you keep this superimposing idea in mind, you will realise that this is giving the program twice as many payments as there really are - and you'll get correspondingly inaccurate results. 3.8.4. The different data types allow you some further flexibility which may not be immediately obvious. Take this (rather contrived) example of an APR calculation:- A loan of £10,000 is repaid over 25 years starting on 1st January by monthly repayments of £150. However, as part of the marketing strategy, the lender allows its borrowers a `repayment holiday' every July, so there are only 11 repayments a year, January to June and August to December. 3.8.5. At first sight, it looks as though we would have to calculate the APR for this agreement by entering 50 or so levels over the 25 years, ie with a level of `£0' and length 1 every July. However, there is a much quicker approach using just one level and one series. First you tell Trurate Two that there is a level of £150 which is 300 payments long. This covers the regular repayments, ignoring for the moment the `holiday' every July. Next you tell it that there is a series of 25 repayments, the first at time 6 (ie the first July) with an interval of 12 (ie one each year) and that the amounts are -£150 (enter the amount as `-150'). This cancels out the effect of the £150 July repayments in the level giving net payments of £0 every July. If you are faced with unusual agreements, this type of approach could save you some time and effort. 4. DATA OUTPUT 4.1. Once the programs have found and displayed an APR, rebate etc. they generally display a screen of results and ask if you want to print or `log' the results or `save' the calculation - but not all of the programs will provide all these options or at the same point in the calculation. Trurate and Rebates Plus, for example, do not save calculations and Schedule produces its output as it runs through the calculations, so it asks about saving, printing or logging before you enter any repayment details. 4.2. Printing 4.2.1. Printing is fairly obvious. Remember to switch the printer on and put it on-line before telling a program to print, otherwise it will produce an error message (or sit and wait for you to put the printer on-line). 4.3. Logging 4.3.1. Logging is perhaps more unusual. This adds a record of the calculation to a file with a .LOG extension in the relevant drive and directory (either the current one or your `user' directory - see section 8 of TECHNIC.DOC). If a log file is already there, the programs will check whether you want to add the text to it, or delete it and start a new log. You can view this log later from the program and use the file in your text editor and (probably) your wordprocessor, by loading it as a plain ASCII text file. 4.3.2. When you load a log into your wordprocessor, you might find it looks a complete mess on screen at first. This is often because the text is being displayed in a `proportional' font (one where some characters appear wider than others) and this will ruin the vertical alignment of the text in the log - particularly if it contains columns of figures as with Schedule. The solution is to switch to a `monospaced' font where all the letters are the same width. `System' and `Courier' fonts are commonly monospaced. 4.3.3. Even in a monospaced font, the appearance can be messed up because the programs create a left-hand margin of eight spaces in the log text, so that it looks okay if sent straight to a printer. Your wordprocessor probably already provides its own margins and the extra spaces can make the lines too long to fit across a page, so some of the text at the end gets wrapped around onto the next line. Three possible solutions are: (i) adjust the margins in your wordprocessor, perhaps to zero width, (ii) delete the spaces at the start of each line, perhaps by blocking and deleting an 8-character wide rectangle down the left of the text, or (iii) change to a smaller font size which will let the text fit across one line. 4.4. Saving 4.4.1. Saving a calculation is different from either of the above options in that it gives you a facility to keep the details you have entered into the program, rather than the results produced by those details. You may sometimes want to run a calculation again at a later time or find that, for example, having entered a long and complex calculation, a vital piece of information is missing or the phone rings. Rather than having to leave the computer tied up while you deal with the problem or else enter all the details again, you can complete the data entry with dummy values (zeroes if the program will accept them) and then save it. Later, when the information is available or the phone call finished the calculation can be reloaded (as an automatic calculation - see below) and amended with the correct details. 4.4.2. The programs which provide a save facility allow you ten saved calculations which are held in disc files with an .SV0 to .SV9 extension. When you choose to save a calculation a one-character input line asks you to enter 0 to 9 and press return to indicate which one you want to use. If the file you choose already exists the program will check that you want to replace it, and then the data you would have to type to reproduce the calculation is saved in the file. See later for details of how to reload your calculation by running the file as an automatic calculation. 4.5. Dealing with Files 4.5.1. The programs menus generally offer a number of facilities for dealing with the files the programs create. The most common ones are: View the Calculation Log Delete a Save or Log File Rename a Save or Log File List the Program Files 4.5.2. The first of these options displays the content of the calculation log. The second deletes the .LOG file containing the log (so you can start a fresh one) or one of the .SV? files. It checks first to make sure you really want to do this. If you want to retain any of the information in a .SV? or the .LOG file, use the third option to transfer it to a file with another name. Remember NOT to use any important names (like TRURATE2.BBC, RUN.EXE - or for that matter COMMAND.COM!). The program will warn you if the name you've picked already exists, but I recommend you stick to a convention like always using TEMP.SV1 or TEMPLOG.001, TEMPLOG.002 etc. 4.5.3. As when you save a calculation, the delete and rename options ask you to indicate which file you want to delete/rename using a one-character input line. You should enter 0 to 9 for a save file or L for the log. 4.5.4. The list option simply provides you with a list of all the program's files. This is a quick way of checking whether you have already started a log or created a particular save file. 4.6. Automated Calculations 4.6.1. Trurate Two, Rebates Two, Schedule and some other programs provide this facility which can be used to run previously saved calculations or calculation files you have constructed yourself. Constructing your own files is not something I'd recommend until you are familiar with the programs. What this option does is restart a program and treat the text in a given file as though it is being typed in at the keyboard. In other words, it's a very simple `macro' facility. If you produce a text file containing everything you would type in to carry out, say, 100 calculations (or perhaps just one very complex calculation) and then choose this option and give the program the name of that file, you can go away and leave it to carry out the calculations and print or log the results. 4.6.2. Of course simply typing all that text into a file is probably more difficult than entering it directly into a program, because you don't have the program asking you all the right questions in the appropriate order. This is why the method is really only useful if you have some other way of calculating the data you would enter into the programs and creating a file containing the appropriate keystrokes, eg a program written in BASIC or some other language (the Schedule program for example). There are a couple of technical and procedural points worth mentioning if you want to make your own files:- (i) your text file can use either carriage-return or carriage-return followed by line-feed (ie DOS compatible text files) to simulate the user keying RETURN/ENTER. The auto option strips out the line-feed characters after carriage returns; (ii) some keyboard entries (such as an input line) end with a carriage return, others such as the selectors don't. Make sure you get this right or the keystrokes in your file will get `out of synch' with the questions the program will ask and everything will go haywire; (iii) the programs modify the questions they ask depending on the answers to earlier questions. Make sure your answers tie up with the questions a program will ask; (iv) although numbers can be used to move the highlight bar in a menu or selector, it is easier to use the single letter method of indicating your choice, so just put the appropriate letter into your text file - and remember that no carriage-return is required; (v) the auto option doesn't allow you to edit input lines so you should make sure that your text file tells the program to go back to the menu after each calculation and restarts the option to clear the retained values. However this may not be necessary now that input lines automatically overwrite existing entries when new numerical data is entered. 4.7 Calculator Facility 4.7.1. Most of the programs give you access to a slightly `roomier' input line which you can use to carry out one-off calculations. When you choose this option from the Facilities Menu of Trurate Two, Rebates Two or Schedule, it also provides a quick reference guide to the input line. 4.8. Further Information 4.8.1. As mentioned in the introduction, further information about using the individual programs is given in their own .DOC files. You should also read these before using the programs. The remainder of this file and TECHNIC.DOC covers some of the more technical aspects of using the programs. 5. TECHNICAL INFORMATION 5.1. Year 2000 Compliance 5.1.1. Some of the programs in the package were first developed back in the early eighties but even then, because some loan agreements can run for 25 years or more, it was necessary for them to be able to deal with dates in the next century. Consequently the programs have always provided four-digit date entry, been aware of the Gregorian calendar rules on leap years, and so have been Year 2000 compliant. 5.1.2. Those programs which accept full date input use routines which store and manipulate dates in four-byte integers as the number of days since an arbitrary date (31 December 1599 by the current calendar), in fact allowing for a range of dates in excess of 5.8 million years from that date. The Builder program only requires month and year input and so uses simpler versions of the routines. 5.1.3. Please also see TECHNIC.DOC for details of changing date input configuration with MAXIMUM.INI. 5.2. The Credit Programs Link 5.2.1. The !Link program provides access to most of the other BBC BASIC programs on the credit disc. There are four versions of the LINK.INI definition file in circulation for those with various combinations of programs. !Link provides quicker and more efficient access to the other .BBC programs by running them with the BBC BASIC `CHAIN' command - so the runtime module doesn't have to be loaded each time. Menu structure: 5.2.2. The links between the various programs are slightly complicated by the fact that there are sometimes two versions of the APR and rebate calculators available, standard versions called TRUPLUS.BBC and REBPLUS.BBC and more complex versions with extra facilities called TRURATE2.BBC and REBATES2.BBC. When you choose either of these options, the Link first checks to see if the standard version is available on disc and, if it is, runs that. If not, it will try to run the more complex version. 5.2.3. In turn, the standard versions of these programs check to see if the more complex versions are also on disc and, if they are, offer them as an `Advanced' option on their menus. This enables you to access both versions if they are both available. Screen saver: 5.2.4. Some computer monitors can suffer from damage to the phosphor coating on the back of the screen if the same display is left on screen over long periods of time. If you habitually left the Link running, this could leave you with the ghost of its menu box burnt into the middle of your screen. To avoid this the program will start to move the menu box around randomly every 20 seconds if you don't touch the keyboard for five minutes. 5.2.5. A couple of points to note: (1) this facility only works where the menu box is being displayed by the Link, the calculator programs themselves do not provide screen saving, nor does the Link when a `Key SHIFT to scroll the text' prompt is displayed. Get into the habit of going back to the menu box if you are going to leave the machine idle. (2) regardless of your chosen screen-saver animation (see later) a particular animation appears if you leave the Link waiting for the user to provide key input, eg in an input line or a `Key SPACE to continue:' prompt. Function keys: 5.2.6. The Link offers access to some facilities via the function keys and a couple of other key combinations. The F3 funtion is generally only provided with the version of Link which gives access to full versions of both the APR and rebate calculators: F1 Calls a program !Distrib (the distribution menu, usually only available to some OFT users and TSDs, see DISTRIB.DOC if you have it). Also starts the hard disc installation facility INSTALL.BBC - see section 1.5 and INSTALL.DOC. F2 Calls the file lister and printer facility, F3 Calls a program selector facility (the OTHERS program selector, usually only available to OFT users and some TSDs - see SELECT.DOC, if you have it), Alt-F1 Cycle through date display options, Alt-F2 Cycle through screen-saver effects, F7 WordPerfect equivalent exit command, Alt-F10 Trigger screen-saver mode, Ctrl-C Runs a program CALCUL.BBC, which provides access to an input line calculator (this accesses the same MEMORY.DAT file as the credit programs), Ctrl-D Runs a program CALEND.BBC, which provides a simple on-screen calendar which might be helpful when dealing with loans, Ctrl-N Runs a program NOTES.BBC, which provides a simple on-screen notepad facility with ten notes, which might be useful for taking down the deatils of a loan over the phone. 5.3. Overseas Use 5.3.1. If copies of the programs make their way to countries outside the United Kingdom, please remember that, in some respects, their results are tailored to the UK credit legislation and industry practices. The results may not be appropriate for your country. In particular those following the American `Regulation Zee' method of APR calculation will probably find that the result the APR calculators label as a `nominal rate' corresponds to their APR. The APR calculations do however conform to the formula set down in the EC Directive on APR, the Present Value method in particular uses essentially the same formula. 5.4. Data Space 5.4.1. The APR and rebate calculators (and Schedule to some extent) use broadly the same methods of describing agreements by things called `Levels', `Series' and `Extra Repayments' - please see `Data Types' for details of what these terms mean. The programs need to set aside space to store all these values and, until the November 1996 release, the maximum number of each of these you could enter into the programs was fixed within their code and could not be altered. In addition, the programs which offer repayment series placed an over-riding maximum on the number of series amounts they could store (if all the payments in a series are the same amount only one amount is stored however many payments there are, but if the payments in a series are of different amounts each amount is stored separately). 5.4.2. In practice these limits are unlikely to cause you any problems. Remember there's usually more than one way to describe a loan so it's worth checking you're using the most efficient approach (see the section `Adding It Up'). 5.4.3. However, in some circumstances, such as running the programs in limited memory or dealing with unusual agreements, you might want to change the allocation of space. Please also see TECHNIC.DOC for details of changing data space with MAXIMUM.INI 5.5. Future Developments 5.5.1. With the advent of Windows and other `graphic user interfaces' (GUIs) the presentation of the package is unquestionably dated. Unfortunately, producing programs for a GUI would require a complete re-write from scratch in something like Visual Basic for Windows. There are currently no plans to do this. As the programs have been developed piecemeal over something like 15 years, the amount of work involved would be considerable. Also, my current computer is based on the ARM (Acorn RISC Machine) processor rather than an Intel (or compatible) processor. I was only able to produce a package for DOS because there are DOS emulators or Intel second processors available for ARM computers and a version of Acorn's BBC BASIC which runs under DOS. 5.5.2. This will probably be the last major release of the package, and it was appropriate to consider whether any future changes needed to be anticipated. There are some changes in the pipeline which require the programs in the package to act differently: --- The amendments to the Regulations which came in on 14 April 2000: these, among other things, require APR to be quoted rounded rather than truncated to one decimal place. They also introduced greater flexibility in the time periods used in APR calculation (see paras 3.2.2 and 3.2.3 above). They also retain only the present value method of calculation (expressed in a more 'mathematical' format), the others being removed. --- The Single European Currency (the Euro): we might all end up working in Euros rather than Pounds Sterling at some time in the future, if the UK joins the European Monetary System. The FORMATS.INI file: 5.5.3. From the December 1998 release the programs look for a file called FORMATS.INI. If they find it, they read its contents and make some modifications which include rounding rather than truncating the APR and altering the character used for currency display. You can also use this to improve the display of numbers, eg by including `separators' (so, one thousand pounds is displayed as £1,000.00 rather than £1000.00). Please see TECHNIC.DOC for further details on this file. 5.5.4. On the other changes to the Regulations: from the February 2000 release, when set to round APRs the programs will cope with calculating parts of a year in either of the two methods permitted under the new Regulations, ie either calculating days in `normal' years as 1/365ths of a year and days in leap-years as 1/366ths of a year (when the time periods are set to `Years'), or counting days as 1/365.25ths of a year (when time periods are set to 'Others' and the periods entered as `1') - see paras 3.2.2 and 3.2.3 above. 5.5.5. The facilities to deal with statutory APR formulae other than the present value method may still be useful (and will give the correct APR) even if no longer statutory. --- I M P O R T A N T --- 5.6. Interim Release 5.6.1. This version of the package includes an additional program called !Boot. !Link looks for this in the `network' directory (the main directory where the programs are usually kept - see INSTALL.DOC and TECHNIC.DOC for details) and runs it if it's there. This was designed to allow me to install updates and add new facilities to existing setups rather than for general release, but has been used here to display information about whether the programs are set to deal with the pre- or post-14 April 2000 version of the Total Charge Regulations. 5.6.2. !Boot will display a short message (about five seconds), before Link's menu appears, showing whether the programs are truncating or rounding APR and the way they are treating the number of days in a year. Information on the settings which control automatic entry of century digits is also given. 5.6.3. A couple of facilities are also provided by !Boot: --- if you key `H' (for "help") while !Boot's message is on screen, you will get a brief help screen reminding you what !Boot is doing, and --- more importantly, if you key `E' (for "edit") while the message is on screen, you will be able to edit the main settings in the package. Again this an adaptation of a facility (called !Edit) which isn't really designed for general release but is supplied here in case you need to switch between the new and old way of doing things in the transitional period. 5.6.4. If you don't get time to read all of !Boot's message, Link's menu has been set up so that you can run !Boot again by keying `F8'. Also, !Boot (ie !Edit) lets you change the settings for things like currency formats, the allocation of memory between the various type of data the programs use (levels, series etc.) and the setting for automatic century entry and valid dates, so you might find it useful even when the transitional period is over. 5.6.5. When you get fed up seeing !Boot every time you start the package you can simply delete it from your set of programs or, more usefully, rename it as !EDIT.BBC. F8 from Link's menu will recognise this name too, so you can still run it if you need it. 5.6.6. PLEASE NOTE: copies of the package issued before 14 April 2000 will not contain a FORMATS.INI file and those issued after will contain one set to rounding the APR etc. So they will conform to the current position at the time they were issued. If you get your programs before 14 April you will need to use !Boot/!Edit to alter their operation. Revised version (March 2000): 5.6.7. This is a revision of the original February 2000 release of the programs. The earlier version contained date routines which calculated a period in years and days by first counting the whole calendar years in the period and then converting to fractions of a year the days in any part-years before or after the whole calendar years. This approch has been reconsidered. Although it was intended to reflect the fact that the Regulations take account of whether or not the days making up a part-year are in a leap-year when converting it, on balance it seems more logical to count forward in whole years from the start of a period and then convert any days left over at the end to part-years. The revision adopts this slightly more complex approach. This requires one minor `fudge' for which there is no basis in the Regulations: if a loan starts on 29th February the programs count forward to the end of February (28th or 29th) in each successive year - again, this seems the most logical approach. 5.6.8. In practice the differences in the period and rate results from these two methods are very small (the APR is unlikely to be any different after rounding) and only a few copies of the earlier release were issued. This is simply an attempt to reflect the Regulations as accurately as possible. The two versions can be distinguished only by the heading at the start of this document. 5.6.9. The revision was also taken as an opportunity to switch to a later version of the BBC BASIC(86) interpreter which has recently become available and to use the `large memory' version which should give the programs room to store more data. Third version (May 2000): 5.6.10. This third version of the release contains some revisions to the printing routines to improve useability with network printers. Fourth version (October 2001) 5.6.11. This contained only minor and inconsequential amendments and was not released. March 2002 Release 5.6.12. Further m&i amendments, correction of small bugs in !Link, !Boot and Trurate2 (if included in your package) and a review of some of the documentation. ------------------------- 6. COPYRIGHT, TERMS AND CONDITIONS ETC. 6.1. Copyright in the original programs and other material on this disc remains with me, copyright in BBC BASIC(86) is Richard Russell's and is included with is kind permission and in accordance with the terms of his licence. The material is distributed as `freeware' - ie no charge is made for its use - but those other than enforcement authorities and voluntary or public sector consumer advisers who make regular use of the programs are asked to consider sending what they feel to be an appropriate donation to a charity of their choice. 6.2. Use of any of the programs forming part of this material other than solely for the purposes of a period of evaluation and/or familiarisation not exceeding 30 days indicates your acceptance of the following terms and conditions:- 6.3. Users are permitted to copy this material, or to pass or transmit such copies to others provided that no charge is made for doing so, other than to recoup reasonable carriage or transmission costs, and all files are included and remain unaltered. Any additional files must be accompanied by documentation indicating clearly that they are not part of my material. You are not permitted to distirbute altered copies of these files or to sell or provide this material or anything derived from it as part of a commercial contract. 6.4. The programs and other material are provided `as is' and without any guarantee as to their quality or suitability. While every effort has been made to ensure that the programs give accurate results, they cannot be regarded as a complete and authoritative interpretation of the law. Neither I nor any person or organisation who distributed the material to you can accept any liability for the consequences of its use or undertake to provide further support or updated or bespoke versions. 6.5. For the avoidance of doubt, the programs and other material on this disc were written in my capacity as a private individual and computer hobbyist - they are not official publications of my employer. There is an email address you can use for enquiries about problems with, or updates to, the package:- credit-programs@beeb.net 6.6. There is also a website where you can download the latest versions of the programs and other resources: http://brian-stewart.members.beeb.net/credit/ Brian Stewart March 2002