CHAPTER 48: Check totals and recover a committed report

Boards: 48a and 48b.
Read the surrounding chapter before this lab. All examples are original and synthetic.

PREDICT
Predict EUR 20.67 from 620/30 and the ties-to-even display of 660/32. Predict database row count and file existence after interruption, recovery and repeat. The script runs the actual Chapter 48 implementation inside a disposable temporary folder.

RUN
From the companion root, run:
python visual_labs/ch48/walkthrough.py
Use python3 if that is your configured command.

COMPARE
Compare the printed values and explanations with both boards. Read expected_output.txt after making your prediction. An assert checks a known expected result and stops if it differs. Temporary output folders are removed after the demonstrations; original course files are not edited.

CHANGE ONE THING
Change the source bytes in a copy, or deliberately change the report version in a copy of the project. The identity should change. Explain why a second accepted record is then legitimate; it is different work under this identity rule. The supplied source and ordinary output remain untouched.

EXPLAIN
State which input changed, which instruction handled that change, and why the resulting output is appropriate. If your prediction differs, identify the first step at which it diverges. Return to the surrounding lesson before adding more complexity.
