Task walkthrough · VolosTally
Explain a month of lessons on one statement per family
A calendar records dates. A useful family statement also explains which lessons were charged, which used a package and what happened to a cancellation credit. Start with a small example whose arithmetic you can check.
A Perunlight workflow for VolosTally, our paid offline lesson-statement application. Written with AI assistance and checked against the fictional sample, an independent calendar/arithmetic audit and the accepted Chrome-on-Linux app review. Maple Street Piano is invented, not a customer case study. Published .
Inspect four students and their calendar
The fictional studio has four students in three families. March 2026 expands to 19 calendar occurrences: 17 lesson, cancellation or makeup entries and two events to exclude. The sample uses America/New_York time and USD.
- Extract the free ZIP and open manual/index.html.
- Open samples/maple-street-roster.csv as text or in a spreadsheet. Find each rate and the opening package/credit fields.
- Inspect samples/maple-street-calendar.ics and the expected-results text. Dentist and Recital rehearsal (hall) are not lessons.
- Use the illustrated review and statement screens to follow the calculations below. Generating the month package requires the paid app.
March 2026 · America/New_York · USD
Ana Rivera: 3 × $30 = $90
Ben Rivera: 4 × (45/60 × $60) = $180
Rivera family = $270
Mei Chen: monthly fee = $140
Tobi Okafor: 4 lessons, 3 in package = $55
All families: $270 + $140 + $55 = $465
Make the policy choices visible
Ana’s March 17 cancellation is not charged and earns one makeup credit under the sample policy. Her March 27 makeup uses that credit. She still has three ordinary $30 lessons, so her charge is $90 and her closing credit balance is zero.
Ben’s 45-minute lessons at $60 per hour are $45 each. Mei’s $140 monthly fee is an explicit monthly decision; her March 18 no-show does not reduce it under this example. Tobi’s first three $55 lessons consume his opening package of three. Only the fourth lesson is charged, leaving no package lessons.
These are illustrative choices. In a new workspace, choose your own cancellation, no-show, teacher-cancellation and makeup rules. Credits and packages require per-lesson students with a fixed lesson length. A monthly fee must be explicitly charged or waived for the month.
Check the statement against the entries
- Confirm the title assignments before accepting any totals. One event must not be assigned to two siblings.
- Expect Rivera $270, Chen $140 and Okafor $55, with a $465 total for March.
- Check the dated cancellation, makeup and package rows, including Ana’s zero closing credit and Tobi’s zero remaining package lessons.
- Resolve every blocking item and approve the reviewed calculation before exporting.
- Read the resulting family HTML, ledger and summary CSV together; the total alone cannot explain a policy choice.
Expected March result: three family statements, $465 of calculated lesson charges, and the closing balances needed for April.

The paid application exports statements-2026-03.html, separate family HTML files, ledger and summary CSVs, a balance JSON file and review text. Chrome Print → Save as PDF produces a PDF. These exported files are not included in the free practice pack; its statement image shows the actual sample result.
Calendar arithmetic was checked independently of the app. That does not establish attendance, payment or an amount a real family owes. Review your actual entries and agreements before sending a statement.
Carry balances, not last month’s charges
Load balances-2026-03.json for April. Tobi now has no package balance, so all five April lessons cost $55 each. Ana earns one credit for an April 14 cancellation; it remains unused at month end. Ben’s April 28 occurrence was moved to May 5 and must not appear as an April charge.
April 2026 · carried March balances
Rivera: Ana $90 + Ben $135 = $225
Chen: monthly fee = $140
Okafor: 5 × $55 = $275
Total = $640
Ana closing makeup credits: 1
Tobi closing package lessons: 0A balance file closes a named month. Use it to open the next month. Rebuilding the month it closes uses that month’s opening balances, avoiding a second deduction. Unrelated months are blocked. Save a project and keep the original inputs and month packages so you can inspect earlier work.
Prepare your own supported calendar
- Extract the paid ZIP and open app/index.html in Chrome on Linux. Keep the accompanying files together.
- Load supported ICS files or a ZIP of ICS files, then load your UTF-8 roster. Inspect unreadable entries and assign titles explicitly.
- Choose the month, IANA time zone, currency, policy choices and monthly-fee decisions. Load the previous month’s balances when appropriate.
- Review every family, resolve red items and check statement names and headers. Unsupported characters block export.
- Export after approval, read the output, then save a project before closing. Changing an input requires a fresh review.
VolosTally 1.0.1 was verified in Chrome 152 on Linux with constructed calendar fixtures. Real Google, Apple and Outlook exports and other browsers/operating systems remain untested. Supported recurrence is bounded; some valid advanced ICS structures are refused. It accepts at most 50 files, 20 MB expanded calendar data, 5,000 entries in the month and 200 students.
Statements use a bundled font; some scripts and emoji are unsupported. There is no autosave, live calendar sync, payment collection, email sending or tax-invoice function. Physical printing was not tested. Read the complete guide before buying or loading real work.
Perunlight product
Prepare reviewed family statements with VolosTally
$19 USD, one-time purchase. Review supported calendar entries, choose your lesson rules and export family statements, CSVs and next-month balances. Includes the offline app, illustrated guide and fictional practice files.
Get VolosTally · $19Read the setup guide
Verified in Chrome on Linux. Calculated lesson charges require your review; they are not evidence of attendance or payment.