AreaStat 1.0 released 8/5/90 (First Public Release)
For use with Opus CBCS version 1.10 and greater
Program and Documentation Copyright 1988-1990 Ralph Scowden
This release of AreaStat may be copied and given to individuals
(but not packaged and sold), made available on BBSs for download-
ing, or sent through the Software Distribution System (SDS) as
long as both the program file (AREASTAT.EXE) and documentation
file (AREASTAT.DOC) remain together and in their original, unmod-
ified form, and as long as no one is charged for these files.
Written and released by Ralph Scowden, Fidonet 1:203/42
This program is made available to Opus sysops at no charge, and
there is no warranty of any kind. It is the responsibility of
each user of the program to determine whether the program works
properly within his or her system, and to take routine precau-
tions such as making backups before testing new software.
Note: This version of Areastat is written for use with Opus
version 1.10 and above. It will not work with Opus 1.03 and is
not known or expected to work with any other BBS program.
Areastat is an Opus log file analyzer which provides information
about message area activity by area name and by user. It has two
o To show which messages areas are (or are not) being read
o To show which callers are active within the message areas
The statistics are based on the use of the Opus area-entry log
message, and require that "Log Mode Trace" (I think) be selected
in the BBS.CTL file. For each message area, Areastat keeps track
of the number sessions in which that area was entered. Also, for
each user a tally is kept of the number of sessions in which any
message area was entered and the total number of areas entered by
that user, counting each area at most once per session.
Statistics are maintained for both a "short" interval and a
"long" interval, for comparison purposes. The length of each
interval can be specified on the command line.
Areastat is designed to be run once a day as a part of daily BBS
housekeeping. It requires several input files including:
o An Opus log file
o The Opus user file
o An echo control file (Opus, Qmail, or ConfMail format)
o The Areastat history file (created by first run)
The output normally consists of an updated Areastat history file
and a report on message area and user activity. The report may
be redirected to a disk file for later reading.
Areastat accepts command line arguments of the form "/xx" or
"/xx option" or "/xxoption". In other words, it expects a slash
followed by an argument symbol (which may be more than one char-
acter), possibly followed by an option value (which may be sepa-
rated from the argument symbol by one or more spaces). Also a
dash (-) may be substituted for the slash (/). Case (upper or
lower) does not matter.
The simplest Areastat run line for processing new log data and
saving the report output is
Areastat /I /H >AREASTAT.RPT
which directs the program to read the log file ("/I") and the
history file ("/H") and then to produce a new history file and a
report (which is redirected to AREASTAT.RPT). Default file names
are used. If no arguments are specified on the run line, Area-
stat displays a help screen.
Following is a table of valid arguments:
Argument Description Default
-------- ----------------------------------- --------------
/A s Use alternate echo ctl. file format (s=1)
/E f Echo control file (ECHO.CTL)
/H f History file (AREASTAT.DAT)
/I f Log Input file (OPUS.LOG)
/L n Long interval length (30 days)
/MA n Maximum areas allowed (300)
/MF n Maximum string freespace (32768)
/MU n Maximum users allowed (1500)
/NR No Report -n/a-
/P n Lines per Page (55)
/S n Short interval length (7 days)
/U f Opus User file (USER.DAT)
Option fields for arguments:
f File name (may include a drive and path)
n Decimal number
s Skip indicator (0 = skip 0 lines, 1 = skip 1 line)
These arguments are explained in more detail in the following
INPUT FILE (/I)
The default input file name is OPUS.LOG. It is important to
ensure that the same log file is never read twice. One simple
way to do this is to once a day rename the log file to a differ-
ent filename and then use the renamed file for processing, delet-
ing it afterwards. The Areastat "/I" argument then specifies the
name of the renamed file. If you wish to keep a cumulative log
you can still do so by appending the renamed file to yet another
file. For example:
ren OPUS.LOG OPUS.OLG
Areastat /I OPUS.OLG /H
Here, the regular OPUS.LOG file is renamed to OPUS.OLG (old log)
prior to daily processing. It is then appended to the cumulative
log file and also processed by Areastat before being deleted.
If no "/I" argument is included, Areastat does not attempt to
process an input log file. It will still read the history file
and produce a report if "/H" is specified.
More elaborate arrangements may be required by some systems, such
as multiline systems. If more than one Opus log is generated by
the system, it is suggested that the separate daily log files be
combined into a single input file before running Areastat.
It is possible to process multiple log files by running Areastat
separately for each one, but this is usually more time consuming
due to the need to read USER.DAT during each run.
HISTORY FILE (/H)
The first time Areastat is run it creates a "history" file called
AREASTAT.DAT, an ASCII file containing running information about
callers and the echo areas they enter. Obsolete information is
automatically removed from the file by AreaStat. A different
history file name can be specified by including it after the "/H"
argument, such as:
Areastat /I /H HISTORY.DAT
Internally, Areastat makes use of the extensions ".NEW" and
".OLD" when updating the history file, so these extensions are
not permitted in the filename following the "/H" argument.
If the "/H" argument is omitted, Areastat does not attempt to
read or update the history file. This feature can be used to
produce a one-time report directly from a log file. If neither
"/H" nor "/I" is specified, Areastat displays a help screen and
ECHO CONTROL FILE (/E /A)
The default echo control file name is normally ECHO.CTL, which is
assumed to be in Opus 1.10 format. A different file name may be
specified using the "/E" argument. For example:
Areastat /I /H /E echo1.ctl
Alternate file formats can be specified with the "/A" argument.
The alternate formats currently available are:
/A QMail-style file (skip 1st non-comment line)
/A1 Same as /A
/A0 QMail-style file (don't skip any lines)
Using any of these options also changes the default echo control
filename from ECHO.CTL to AREAS.BBS.
The run line for using a QMail-style echo control file (ConfMail
as well) would be something like:
Areastat /I /H /E /A
This causes the line containing the sysop name and BBS name to be
skipped (as does "/A1").
If no "/A" argument is included then an Opus 1.10-style echo
control file is assumed. The file is expected to contain a
message area declaration on each line that is not blank (no
comment lines are permitted), and each line is expected to begin
with a decimal area number. The general format is:
where is the area number, is the path to the
message directory, is the name of the area, and list> is the list of nodes the area will be sent to.
Areastat doesn't really use all of this information. is
checked to see that it is a valid decimal number but is otherwise
skipped. is analyzed to obtain the final directory name,
which is then used as the name of the message area. (This is
because Opus places the final directory name, not the echomail
area name, in its log entries.)
and are skipped other than checking to
see if either begins with a pound sign (#) character. The pound
sign (#) causes the line to be skipped if present in either of
these fields. Opus treats an area as pass-through if the list> begins with a pound sign.
If "/A", "/A1", or "/A0" is specified then a QMail-style echo
control file is expected. The general format is:
sysop name ! BBS name
If "/A" or "/A1" is specified then the first line not starting
with "-" or ";" is assumed to be the sysop/BBS name line and is
skipped. The "/A0" option prevents this line from being skipped,
and is used when the input file isn't really going to be proc-
essed by QMail (and therefore the extra information isn't
As with the ECHO.CTL file format, Areastat does not use all of
the information in the file. Lines beginning with ";" or "-" or
"#" are skipped, as are blank lines and the sysop/BBS name line
if specified. is analyzed to obtain the final directory
name, and and are ignored.
INTERVALS (/S /L)
Areastat maintains statistics for both a "short interval" and a
"long interval". By comparing the two sets of statistics you can
get a picture of both short-term and long-term trends. The "/S
n" and "/L n" arguments are used specify the intervals. "n" is
the number of days in the interval. The long interval must be at
least as long as the short interval.
The default values are 7 days for the short interval and 30 days
for the long interval. It may be useful to specify different
values, depending on the desired sensitivity of the statistics.
For example, the short interval might be set to 14 days to better
reflect weekly patterns of usage, and the long interval might be
set to 56 days to reflect longer-term (eight weeks running)
The size of the history file is affected by the long interval
value, since information remains in the history file until it is
older than the long interval. The short and long interval values
are used to calculate cutoff dates relative to the current system
date, so it is important that the system date be set correctly.
If any "future" information finds its way into the history file
through manipulation of the system date, the information is
retained but not processed until its time is reached.
When you first install AreaStat, if you have copies of older log
files you may wish to run them through the program to 'prime' the
history file and the resulting statistics. There is no point,
however, in processing logs that are older than the long inter-
val. It probably does not matter in what order the older logs
are read, as long as the logs begin and end with Opus shut down,
but this has not been tested. It is important to read each log
Areastat uses the Opus user file to build a table of valid users.
Any caller not in the user file is assumed to have been dropped
and further no statistics are kept for that caller. The name of
the user file can be specified with the "/U" argument. For
Areastat /I /H /U d:\private\opusers.dat
The default is "USER.DAT" in the current directory.
STORAGE LIMITS (/MA /MF /MU)
Areastat needs to know how large to make certain tables before it
reads information into those tables. The storage limit arguments
allow you to expand these tables if they fill up. "/MA n" speci-
fies the maximum number of areas that may be present in your echo
control file. "/MU n" specifies the maximum number of users that
may be present in your Opus user file. "/MF" specifies the
amount of memory to reserve for storing area names and user names
REPORTS (/NR /P)
Areastat produces three reports unless the "/NR" (no report)
argument is specified. The reports are written to the standard
output file and can be redirected to a disk file using the DOS
">" or ">>" redirection feature. Certain informative messages
are always written to the console and cannot be redirected, but
all report data and error messages can be.
The "/P" argument is used to cause the report to be broken into
pages (using form feed characters). It should only be used in
conjunction with redirection, since informative messages which
are not redirected are not included in the line count. The
number of lines per page may be specified with "/P". For exam-
Areastat /I /H /P 50 >>AREASTAT.RPT
will produce a 50 line-per-page report and write it to the file
The three reports are:
o Summary Report
o Message Area Report
o User Report
If "/NR" (no report) is specified, only the summary report is
produced. The summary report consists of a short display of
information about the processing run.
The message area report lists each area that was specified in the
echo control file and shows the percentage of sessions in which
it was entered over both the short and long intervals. It is
sorted according to the long interval percentages.
The user report lists each user that entered at least one message
area during the long interval, and shows the percentage of ses-
sions out of the total sessions for the users listed and the
percentage of areas selected out of the total areas selected by
all users, for both the short and long intervals. It is sorted
by long interval percentage of sessions.
The message area statistics are straightforward and represent a
ranking of each area according to how often it is entered. If an
area is selected more than once in a session, it still counts as
a single entry.
High-ranking areas generally suggest an interest in the area's
topic, irrespective of actual message traffic. If you find a
high-ranking area with little traffic, it may be an indication
that that area would be successful given some help from the area
You can also help promote interest in echomail among your callers
by advertising the high-ranking areas in your signon bulletin or
elsewhere, and by posting the message area statistics from time
to time (you generally should not post the user statistics, since
the information is somewhat personal).
You may want to consider removing low-ranking areas, or reducing
the number of message kept on-line in them. Before removing an
area, though, look to see whether it is significantly less active
than other lower-ranked areas over the long interval. You will
probably always have more-active and less-active areas, and you
probably don't want to eliminate an area simply because it is at
the bottom of the list at a particular point in time.
Also check to see whether there is short-interval activity for
the lowest-ranked areas. If short-interval activity exceeds
long-interval activity, the area is headed toward a higher rank.
If the reverse is true, the area is on the decline. If both
rankings remain about the same, the area is stable.
The meanings of the user report statistics are somewhat less
obvious. While the area report shows ALL areas, the user report
shows only those callers who selected at least one area during
the long interval, and the statistics are based on this subset.
The rest would have to be downloaders (or game players or whatev-
er) who never enter a message area at all.
The intended purpose of the user report is to identify those
users who are active in the message areas. You may want to
consider those who stay consistently near the top of the list for
a time limit extension, since they are the most likely to run out
of time, and they represent the prime contributors to your mes-
Several features are being considered for an upcoming update of
The option to include callers in the user report even if they
have not entered any message areas, if their access exceeds a
Inclusion of the date of first signon, if known, in the user
The addition of file area activity (but probably not individ-
ual file activity).
Some other additional features are being considered for inclusion
in future versions of this program, such as the use of a control
file instead of requiring all arguments to appear on the command
line, the option to control the format of reports and sort on
different fields, and the introduction of new statistics. Your
comments and suggestions are invited.