Annotation of pta/pta.1, Revision 1.8
1.8 ! schwarze 1: .\" $Id: pta.1,v 1.7 2021/12/06 15:21:02 schwarze Exp $
1.1 schwarze 2: .\"
1.8 ! schwarze 3: .\" Copyright (c) 2020, 2025 Ingo Schwarze <schwarze@openbsd.org>
1.1 schwarze 4: .\"
5: .\" Permission to use, copy, modify, and distribute this software for any
6: .\" purpose with or without fee is hereby granted, provided that the above
7: .\" copyright notice and this permission notice appear in all copies.
8: .\"
9: .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11: .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13: .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14: .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15: .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16: .\"
1.8 ! schwarze 17: .Dd $Mdocdate: December 6 2021 $
1.1 schwarze 18: .Dt PTA 1
19: .Os
20: .Sh NAME
21: .Nm pta
22: .Nd plain text accounting
23: .Sh SYNOPSIS
24: .Nm pta
25: .Op Fl abcnps
1.6 schwarze 26: .Op Fl D Oo Ar start : Oc Ns Op Ar end
1.1 schwarze 27: .Op Fl L Cm de
1.8 ! schwarze 28: .Op Ar journal
1.1 schwarze 29: .Sh DESCRIPTION
1.8 ! schwarze 30: The Plain Text Accounting program reads the bookkeeping
! 31: .Ar journal ,
! 32: or the file
! 33: .Pa journal.txt
! 34: in the current directory by default.
! 35: The user is expected to create and maintain the journal file
! 36: with an arbitrary text editor.
! 37: The program writes account lists, balances, and cost center assessments
1.1 schwarze 38: to standard output.
1.8 ! schwarze 39: .Pp
1.1 schwarze 40: All input files are
41: .Xr ascii 7
42: text files, using strings of one or more space characters
43: as field separators.
1.2 schwarze 44: Blank lines and lines starting with hash characters
1.1 schwarze 45: .Pq Sq #
46: are ignored and can be used for comments.
47: .Pp
48: To familiarize themselves with the terminology used by
49: .Nm ,
50: new users are invited to read
51: .Xr pta-glossary 7
52: first.
53: In the following, terms defined in the glossary are
54: .Em emphasized
55: when first used.
56: .Pp
57: If none of the options
58: .Fl abcnps
59: is specified to
60: .Nm ,
61: .Fl abcps
62: is assumed.
63: .Pp
64: The options are as follows:
65: .Bl -tag -width Ds
66: .It Fl a
67: Print
68: .Em account
69: lists.
70: For each account, the account number, the account title, and the
71: account type are printed, followed by a table of account entries
72: in chronological order, one per line.
73: From left to right, the table columns contain the date, the booking
74: identifier, the contra account, the debit amount, the credit amount,
75: the running total, and the text string.
76: The account balance can be found in the running total column
77: of the last line of the table.
78: .Pp
79: If an account contains at least one
80: .Em subaccount ,
81: all entries associated with any subaccount are omitted
82: from the table.
83: Instead, the list of all entries that are not associated with any
84: subaccount is followed by one line for each subaccount, containing
85: only the balance of the subaccount, the running total of the
86: account, and the title of the subaccount, but omitting dates, booking
87: ids, contra accounts, and amounts of individual entries in the
88: subaccount.
89: This is intended to make the account list more readable
90: and more informative.
91: .It Fl b
92: Print the
93: .Em balance
94: sheet.
95: Each line in the table represents one
96: .Em account .
97: From left to right, the columns are account number, account balance
98: (debit), account balance (credit), and account title.
99: The balance sheet is followed by a listing of statistical accounts
100: as defined in
101: .Xr pta-accounts 5 .
102: .It Fl c
103: Print the accounts and balances for each
104: .Em cost center .
105: For each cost center, all related account entries are printed,
106: grouped by accounts, followed by a balance sheet for the cost center.
1.6 schwarze 107: .It Fl D Oo Ar start : Oc Ns Op Ar end
108: Restrict analysis to the time range from
109: .Ar start
110: to
111: .Ar end ,
112: inclusive, both to be specified in the form YYYYMMDD.
113: .Pp
114: If
115: .Ar end
116: is given, later journal entries are still checked for errors,
117: but omitted from account lists, balance sheets, and profit and loss
118: calculations.
1.1 schwarze 119: .It Fl L Cm de
120: In standard output, use German instead of English terms.
121: There are no plans to fully internationalize
122: .Nm .
123: This options is only intended to make the output look more consistent with
124: .Xr pta-accounts 5
125: and
126: .Xr pta-journal 5
127: files using the German language for text strings.
128: .It Fl n
129: Does not produce any output.
130: This option can be used to only check for parsing errors.
131: .It Fl p
132: Print
133: .Em profits
134: and losses generated by financial investments.
135: This includes both realized and unrealized profits
136: without distinguishing the two kinds; to see realized
137: profits and losses only, look at
138: .Em account
139: lists instead.
140: From left to right, the columns of the tables are the date, the
141: booking identifier, the individual amount of a profit or revenue
142: (without a sign) or of a loss or expense (with a minus sign), the
143: relative size of the amount in percent of the current value of the
144: asset, the current value of the asset before the respective event,
145: the relative profit or loss from the event per year, the name of the
146: .Em cost center ,
147: and a text string.
148: .Pp
149: If some units of the investment were already owned at the beginning
150: of the accounting period, the first line of the table contains the
151: book value of the asset at the beginning of the accounting period
152: instead of the current value before the event, such that the first
153: line of the table informs about the unrealized profit accumulated
154: during earlier accounting periods.
155: .Pp
156: Whenever the journal contains lines quoting the current price of
157: the asset, a line appears in the profit table giving the unrealized
158: profit or loss resulting from the price change since the previous
159: change in the number of units owned, or since the beginning of the
160: accounting period, whichever is later.
161: Such unrealized profits or losses do not change
162: the book value of the asset.
163: .Pp
164: The profit table does not contain lines for purchases and sells
165: because these are considered to be executed at the current price;
166: by definition, they do not generate profits or losses
167: but only realize them.
168: There are often lines listing surcharges and fees related to purchases
169: and sells, though.
170: .Pp
171: In lines listing revenues like interest or dividends and costs like
1.4 schwarze 172: surcharges and fees, the text string is the original text string
1.1 schwarze 173: from the respective
174: .Em journal entry .
175: .Pp
1.2 schwarze 176: The profit table ends with a line summing up
1.1 schwarze 177: the total profit or loss during the current accounting period.
178: Lines that do not contribute to this sum because they are related
179: to previous accounting period rather than to the current one
180: or because they are included in later lines
181: are marked with double trailing dashes
182: .Pq Sq \-\- .
183: On this final line, the column for the current value of the asset
184: contains the average market value of the investment held
185: during the accounting period, and the two columns for the relative
186: profit or loss are calculated in relation to this average.
187: .It Fl s
188: Print
189: .Em subaccount
190: lists.
1.7 schwarze 191: For each subaccount, the account number, account name, account
1.1 schwarze 192: type, and subaccount name are printed, followed by a table table
193: of account entries as documented for the
194: .Fl a
195: option.
196: .El
197: .Sh FILES
198: .Bl -tag -width accounts.example.en
199: .It Pa ./accounts.txt
200: account definition list, see
201: .Xr pta-accounts 5
202: .It Pa accounts.example.en
203: example account list with English account titles
204: .It Pa accounts.example.de
205: example account list with German account titles
206: .It Pa ./journal.txt
207: main input file, see
208: .Xr pta-journal 5
209: .It Pa journal.example.en
210: example input file
211: .El
212: .Sh EXIT STATUS
213: .Ex -std
214: .Sh SEE ALSO
215: .Xr pta-accounts 5 ,
216: .Xr pta-journal 5 ,
217: .Xr pta-glossary 7
1.5 schwarze 218: .Pp
219: The
220: .Nm
221: homepage:
222: .Lk https://mandoc.bsd.lv/pta/
1.1 schwarze 223: .Sh AUTHORS
224: .An Ingo Schwarze Aq Mt schwarze@openbsd.org
225: .Sh BUGS
226: Currently,
227: .Nm
228: has the following limitations:
229: .Bl -dash
230: .It
231: All amounts are expected to be expressed in the same currency.
232: Currency conversion is not yet supported.
233: Any one currency can be used, but it cannot be specified which
234: currency that is.
235: .It
236: In the balance sheet, all accounts are listed individually.
237: Grouping of accounts is not yet supported.
238: .It
239: Currently, the annual financial statement can only be generated
240: in the form of a balance sheet.
241: Generating an annual financial statement in the form of a statement
242: on the excess of receipts over expenses is not yet supported.
243: .It
244: Custom business assessments are not yet supported.
245: .It
246: Cost centers can only be regarded individually.
247: Grouping of cost centers is not yet supported.
248: .It
249: Only a single level of subaccounts is supported.
250: Subaccounts can not yet be nested.
251: .It
252: Automatically splitting journal entries that include tax into three
253: account entries (gross amount, net amount, and tax) is not yet
254: supported.
255: .It
256: Bookkeeping can only be done for one single accounting period at a time,
257: typically for one year.
258: Comparing and aggregating data of multiple accounting periods
259: is not yet supported.
260: .El
CVSweb