home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-386-Vol-2of3.iso / c / cgzdc31a.zip / CG17.DOC < prev    next >
Text File  |  1992-10-19  |  19KB  |  407 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                        Chapter 17 - Data Consistency Check
  7.  
  8.  
  9.      ===>>>  The Check Data Consistency  option on the  Main Menu processes
  10.      the  Capital Gainz  data  you've entered,  looking  for anomalies  and
  11.      inconsistencies. This powerful  tool lets you  discover the source  of
  12.      potential problems, instead of reacting to odd symptoms.
  13.      [[Screen not in online version of documentation.]]
  14.  
  15.          The Consistency Check  Form lets you tweak  the default parameters
  16.      to  your  preferences.  Each  value  is  described below,  along  with
  17.      examples:
  18.  
  19.      o  Maximum Days Between Prices: The number of days between  consecutive
  20.         price records in the Price History  File before reporting a message.
  21.         The main use  for this setting is to  catch price entry errors  with
  22.         incorrect year values, such as a price with  a date of 1/1/1.  Stray
  23.         dates  such   as  this   will  significantly   lower  total   return
  24.         calculations.  You usually  won't have  consecutive prices  recorded
  25.         more that a year apart. (Default = 365)
  26.  
  27.      o  Maximum Security  Yield:  The maximum  yield  of  a global  security
  28.         allowed before  reporting a  message. One  of the  most common  data
  29.         entry errors is incorrectly using the  security's price for the  per
  30.         share   value  when   recording   distributions.  This   will  cause
  31.         overinflated  yield  calculations.  Dividend  yields  should  rarely
  32.         exceed 20% or so. (Default = 50.00%)
  33.  
  34.      o  Maximum  Commission  Pct  of  Amount:  The  maximum  percentage   of
  35.         purchase/sale   commissions   relative  to   purchase/sale   amount.
  36.         Accidental entry of $3500, instead of  $35.00, for a commission on a
  37.         $2000  purchase should  trigger a  message,  since 3500/2000  is  an
  38.         excessive 175% commission. You  can also use this to make sure  your
  39.         broker isn't taking unfair advantage of  you. Even with full service
  40.         brokers,  commissions  shouldn't  exceed  10%  or  so,  unless   the
  41.         security is a penny stock. (Default = 25.00%)
  42.  
  43.      o  Maximum Open/Close Gain/Loss  Pct: The maximum gain/loss  percentage
  44.         for one, or all,  of a security's open/close records. If you enter a
  45.         purchase at  a  price of  $1, instead  of $11,  and correctly  enter
  46.         subsequent  purchases,  then  the  $1  purchase  should  trigger   a
  47.         message. If the  current price is  $11, a  1000% gain is  excessive.
  48.         But,  if a  speculative, low-priced  stock  takes  off, or  you hold
  49.         shares  for several  decades, or  you use  a warrant  price for  the
  50.         purchase  price,  then  the gain  percentage  can  get  fairly high.
  51.         (Default = 999.99%)
  52.  
  53.      o  Maximum  Calculated   Amount   Difference:   The   maximum   allowed
  54.         difference   between  the   purchase/sale  amount  and   the  amount
  55.         calculated  by  multiplying shares  by  the  buy/sell  price  before
  56.         triggering a message. If  you enter a 100  share purchase at a price
  57.  
  58.                            Capital Gainz Users Manual                  17-1
  59.  
  60.  
  61.  
  62.  
  63.         of $10 for $100, then something  is incorrect. Some variance  should
  64.         be  allowed   for  rounding.  This   calculation  even  applies   to
  65.         securities that  use the averaging  method, since the actual amounts
  66.         are  kept proportional to  the number  of shares.  Total open values
  67.         stored in the local security record are  also compared to the  total
  68.         open values calculated by summing the  activity logs. A mismatch  in
  69.         the two is a serious problem. (Default = 1.50)
  70.  
  71.      o  Maximum   Adjacent  Price  Diff:  The   maximum  allowed  percentage
  72.         difference  between consecutive  prices in  the Price  History  File
  73.         before  triggering a message. If you executed a  price update from a
  74.         file,  but entered  4 instead  of 40  for  one  of the  prices, then
  75.         there's  a significant discrepancy  in prices  for this security. If
  76.         you  own a  security that  gets bought  out, goes bankrupt,  or just
  77.         fluctuates  in price  a lot,  then this  message does  not signify a
  78.         problem.  Adjacent  dividends per  share are  also checked,  and the
  79.         first time  the difference exceeds this  limit a  warning is issued.
  80.         The reason  only the first  instance is reported  is that most  non-
  81.         income mutual funds pay erratic dividends. (Default = 50.00%)
  82.  
  83.      o  Maximum Selling Price  Diff: The maximum allowed difference  between
  84.         the open  price used for  the selling date  and the  calculated open
  85.         price for  the  selling date.  This  actually  checks three  things.
  86.         First,  if  you  use the  average  selling  method,  the  calculated
  87.         average open price  on the selling  date should match the  one used.
  88.         If  you  changed   open  information  for  previous  sales,  then  a
  89.         difference here indicates an error. However,  if you switched from a
  90.         non-average method to the average method, then  differences in sales
  91.         executed before you switched can be  ignored. The second thing  this
  92.         checks is  if you  switched from  an average method  to a  different
  93.         method.  Here, the sales  using an  average price  will be reported.
  94.         You should  not switch  from the  average  selling method.  Finally,
  95.         this checks if you incorrectly modified  the open information for  a
  96.         sale. (Default = 1.50)
  97.  
  98.      o  Check For Unreferenced  Keys: If you have a portfolio with no global
  99.         securities, or  a global  security with  no local  securities, or  a
  100.         broker not  referenced by  any local  or global  securities, then  a
  101.         message  is triggered.  This is  not the  same as  having  an orphan
  102.         record,  such as a  local security  linked to  a non-existent global
  103.         security. Unreferenced keys  are perfectly valid,  and you  may want
  104.         to disable this check. (Default = YES)
  105.  
  106.      o  Check  For Too Many Div/Fees: If you have  more dividend or interest
  107.         payments in a  year than specified in  the global security, or  make
  108.         pay  more  than  one  fee, then  a  message  is  triggered.  If  you
  109.         specified annual  dividend payments  for the  security, but  receive
  110.         quarterly  dividends, then your yield  will be about  1/4 of what it
  111.         should be.  Too many dividend, interest,  or fee  payments is nearly
  112.         always  an  error. An  exception  is  a  security  that quit  paying
  113.         dividends. (Default = YES)
  114.  
  115.  
  116.      17-2                  Capital Gainz Users Manual
  117.  
  118.  
  119.  
  120.  
  121.      o  Check For Duplicate Activity: If you have  duplicate purchase, sale,
  122.         or  distribution entries,  then  a  message is  triggered.  This  is
  123.         almost always an  error, as you  normally don't buy the  same number
  124.         of shares for the same amount on a given day. (Default = YES)
  125.  
  126.      o  Check For Activity/Price Diff: If an activity entry's price  differs
  127.         from the  price history price, or  a distribution  per share differs
  128.         from  the  price  history  per  share   entry,  then  a  message  is
  129.         triggered. If you make multiple purchases  at different prices on  a
  130.         given date, then this message is not a problem. (Default = YES)
  131.  
  132.      The following inconsistencies are usually  errors, so they are  always
  133.      checked for:
  134.  
  135.      o  Negative/Zero:  negative or  zero amounts  for number  of shares  or
  136.         amount  triggers  a message.  These  errors  are usually  caused  by
  137.         corrupted data  files or  internal program  bugs. They  can also  be
  138.         caused  by  incorrect importing  of  data.  Return of  principal and
  139.         uncovered short sales are skipped.
  140.  
  141.      o  Invalid Dates: the date  fields in a record could be set to 0 due to
  142.         data corruption or internal program bugs. Also, incorrect  importing
  143.         of data can cause this.
  144.  
  145.      o  Open/Close Dates:  it's  usually  an error  if the  open  date in  a
  146.         closed  shares record is later  than the sell  date. Short sales are
  147.         an exception. Other than short sales,  this situation can be  caused
  148.         by incorrect program use, incorrect importing of  data, or incorrect
  149.         closed shares record modification.
  150.  
  151.      o  Settings: suspicious values are  checked for, such as a very high or
  152.         low holding  period. Sometimes,  you may  want  these odd  settings.
  153.         Otherwise,  they  may  be caused  by  data  corruption  or  internal
  154.         program bugs.
  155.  
  156.      o  Orphans:  these are  references  to non-existent  records,  such  as
  157.         broker  names  in  securities  that  have  no  corresponding  broker
  158.         defined,  global  security   links  in  local  securities  with   no
  159.         corresponding global security defined, or activity logs records  for
  160.         non-existent  local securities.  Orphans are  usually errors, caused
  161.         by   data  corruption,   internal  program   bugs,  incorrect   data
  162.         importing, or abnormal program termination.
  163.  
  164.          You can check the consistency of one or all portfolios:
  165.  
  166.      o  F2:Toggle All/Current Portfolio  - toggles the selection of  current
  167.         or all portfolios, as shown at the top of the form.
  168.  
  169.          Function keys at the bottom of the screen are:
  170.  
  171.      o  Form Accept - accept all entries, the same  as hitting Enter on each
  172.         field.
  173.  
  174.                            Capital Gainz Users Manual                  17-3
  175.  
  176.  
  177.  
  178.  
  179.      o  Form Reject - exit  immediately, the same as hitting Esc to back out
  180.         of the form.
  181.  
  182.          After  completing the  form,  the consistency  check procedure  is
  183.      executed. All  data records for specified portfolios are checked. This
  184.      process  may take awhile, depending  on how much  data you've entered.
  185.      Upon completion, a log  of all suspicious records found  is displayed.
  186.      Like reports, this log can be sent to the printer or a DOS file.
  187.  
  188.          Each suspicious  record is  identified in  the log, numbered,  and
  189.      associated  with a short message. The short message, in turn, includes
  190.      a  reference  number  that points  to  a  longer  message. The  longer
  191.      messages for all errors found are displayed in order at the end of the
  192.      log, and include suggestions for correcting the problem. Of course, it
  193.      would be nice if Capital Gainz could automatically correct the errors,
  194.      but it's not  always clear if there is  a problem, and even  then it's
  195.      not clear which records should be changed.
  196.  
  197.      17.1  Output Log
  198.  
  199.          The first part of the output log identifies a record, and provides
  200.      a brief message  along with an index into the list of long messages at
  201.      the  end of  the report.  In  the log  output, files  and records  are
  202.      identified using a logical hierarchy. The general format is:
  203.  
  204.          Data File:Record Id:Data File:Record Id:...:[Index]Message
  205.  
  206.          where
  207.            Data File identifies the Capital Gainz data file
  208.            Record Id is some  way to identify a  record, such as a date  or
  209.      symbol
  210.            Index points to a longer message
  211.            Message is a brief message
  212.  
  213.      The formats for specific Capital Gainz data files are:
  214.  
  215.         User Settings File:
  216.           SET::[SETnn]message
  217.  
  218.         Portfolio File:
  219.           POR:portfolio ID:[PORnn]message
  220.  
  221.         Broker/Investment Company File:
  222.           BRK:broker/inv co name:[BRKnn]message
  223.  
  224.         Global Security File:
  225.           GSC:global symbol:[GSCnn]message
  226.  
  227.         Price History File:
  228.           GSC:global symbol:PRC:date:[PRCnn]message
  229.  
  230.         Local Security File:
  231.  
  232.      17-4                  Capital Gainz Users Manual
  233.  
  234.  
  235.  
  236.  
  237.           POR:portfolio ID:LSC:local symbol:[LSCnn]message
  238.  
  239.         Open Shares File:
  240.           POR:portfolio ID:LSC:local symbol:OPN:buy date:[OPNnn]message
  241.  
  242.         Closed Shares File:
  243.           POR:portfolio      ID:LSC:local      symbol:CLS:sell     date:buy
  244.      date:[CLSnn]message
  245.  
  246.         Distributions File:
  247.           POR:portfolio         ID:LSC:local        symbol:DIS:distribution
  248.      date:[DISnn]message
  249.  
  250.      For instance, 
  251.  
  252.         GSC:CPL:PRC: 2/02/87:[PRC02]Adjacent dates differ a lot.
  253.  
  254.      refers to  the Price History  (PRC) entry  on 2/02/87, for  the global
  255.      security  (GSC) symbol  CPL.  PRC02 is  the  index into  the  expanded
  256.      messages. Similarly,
  257.  
  258.         POR:001:LSC:CPL:OPN:10/01/91:[OPN11]Duplicate purchase.
  259.  
  260.      refers to the open  shares (OPN) record dated 10/01/91, for  the local
  261.      security (LSC) symbol CPL, in the portfolio (POR) number 001. OPN11 is
  262.      the index into the expanded messages.
  263.  
  264.          Closed shares  have two Record Ids.  The first is the  date of the
  265.      sale, and the second is the date of the associated purchase:
  266.  
  267.         POR:001:LSC:VISTA:CLS:  9/03/87:   1/16/87:[CLS06]Closed  price   <>
  268.      price history.
  269.  
  270.      refers to  the closed shares (CLS)  record with 9/03/87 sell  date and
  271.      1/16/87 purchase date, for  the local security (LSC) symbol  VISTA, in
  272.      the  portfolio (POR) number 001. OPN06  is the index into the expanded
  273.      messages.
  274.                                                                 
  275.      17.2  Example - Consistency Check
  276.  
  277.          Here's an example of the consistency check output.
  278.      [[Report not in online version of documentation.]]
  279.  
  280.          Let's look at each of the messages:
  281.  
  282.      1-3)  Several brokers are defined,  but no global  or local securities
  283.      reference them. I can keep them around or save space by deleting them.
  284.  
  285.      4)  Looking at the Price History Table,  I have an entry dated 1/03/09
  286.      for CPL. I made an error entering 1/03/90, and need to remove it.
  287.  
  288.      5)  There's an entry  in the Price  History File  for the non-existent
  289.  
  290.                            Capital Gainz Users Manual                  17-5
  291.  
  292.  
  293.  
  294.  
  295.      global  security symbol  F. This  entry doesn't  have a  date, either.
  296.      Normally, you wouldn't get such an error,  but some strange things can
  297.      happen  during early testing of new  features. There's no way to bring
  298.      up the Price History Table for a non-existent global security. So,  to
  299.      clean up this record, I have to first define the global security, then
  300.      delete it.
  301.  
  302.      6)  FPEUR is a  foreign stock mutual fund,  and dividends are erratic.
  303.      The per share  amounts differ  considerably, but it's  not a  problem.
  304.      Only the first instance is shown for a given security.
  305.  
  306.      7)  Checking the  Price History  Table, it  looks like  I entered  the
  307.      reinvestment price instead of the dividend per share when I recorded a
  308.      dividend for  GRACE. I need  to change the  entry in  the Distribution
  309.      Log, which will also  fix the price history entry for  that date. If I
  310.      consistently made this mistake, I'd also see a message indicating that
  311.      the yield is too high.
  312.  
  313.      8)  HTG is  a growth fund,  and dividends  are erratic.  The per share
  314.      amounts differ considerably, but it's not a problem.
  315.  
  316.      9) NUVNC is a unit trust I bought at the end of the first distribution
  317.      period. I only  received partial  dividends, so the  per share  amount
  318.      calculated was lower than it should be. I need to adjust this.
  319.  
  320.      10) The same  thing happened to TCTXI as described  in 9). The initial
  321.      dividend is the culprit, and should be adjusted.
  322.  
  323.      11-12) These  are serious problems -  the open shares and  open amount
  324.      totals in  the  local security  file for  CPL don't  match the  totals
  325.      calculated  for   the  Open  Shares  File.  More   that  likely,  this
  326.      inconsistency  was  caused  by   abnormal  program  termination  while
  327.      recording  a  purchase.  This caused  the  open  shares  record to  be
  328.      written,  but  the  local  security  totals weren't  updated.  As  the
  329.      expanded  message suggests,  this can  be fixed  by running  the Fixup
  330.      Security  option from the Local  Security Table, and  using the Totals
  331.      function  on the  Fixup Form.  This resynchronizes  the values  in the
  332.      local security and the open shares records.
  333.  
  334.      13) Checking the Open Shares Log, I see that the 10/01/91 purchase for
  335.      CPL  was incorrectly  entered twice.  Deleting one  of them  fixes the
  336.      problem. Actually, this problem is related to 11) and 12).
  337.  
  338.      14) There is a duplicate purchase  recorded for GRACE on 8/12/91,  but
  339.      checking the Open Shares Log I see that this is OK. This is a dividend
  340.      reinvestment plan, and I sent in two $50 checks that were both used to
  341.      buy shares on the designated purchase date.
  342.  
  343.      15)  PSNC  is  a  dividend  reinvestment  plan  where  dividends   are
  344.      reinvested at a 5%  price discount. I used the Calc Load/Comm function
  345.      to  determine the  price  before discount.  I  also had  regular  cash
  346.      purchases  on  these  dates, and,  because  of  rounding,  one of  the
  347.  
  348.      17-6                  Capital Gainz Users Manual
  349.  
  350.  
  351.  
  352.  
  353.      calculated prices  was slightly  different from the  actual investment
  354.      price. I can fix this, but it's not a big problem.
  355.  
  356.      16) Checking  the Open Shares Log  and Price History Table,  I can see
  357.      that I  inadvertently changed the price in the Price History Table for
  358.      VISTA on 11/07/91. This change made it different than the price in the
  359.      corresponding Open  Shares Log entry. I  need to fix the  entry in the
  360.      Price History Table.
  361.  
  362.          As you can see, messages don't always point out errors. Here, less
  363.      than half of the messages need  to be addressed. Also, some errors may
  364.      trigger  multiple messages. Depending  on your data  and settings, you
  365.      may  have many  or few  messages generated  by the  consistency check.
  366.      There's no point in trying to eliminate them all if some aren't really
  367.      problems. If you frequently get a large number of messages that aren't
  368.      errors,  you may want to adjust the execution parameters. For example,
  369.      if you  track the prices  of a number  of global securities,  but only
  370.      have a handful of actual holdings,  you can set Check for Unreferenced
  371.      Keys to NO, avoiding  messages pointing out global securities  with no
  372.      local security links.  In any case,  it's a good idea  to periodically
  373.      run  the consistency checker in  order to catch  potential problems as
  374.      early as possible.
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.                            Capital Gainz Users Manual                  17-7
  407.