```python
def step_value(step: str) -> int:
    """The running total after each instruction."""
    if step == "+":
        return 1
    if step == "-":
        return -1
    return 0


def scan_tally(steps: list) -> list:
    """The running total after each instruction."""
    total = 0
    running_totals: list[int] = []
    for step in steps:
        total += step_value(step)
        running_totals.append(total)
    return running_totals
```

The bug was that `scan_tally` returned only the final total as a single-element list, ignoring all intermediate running totals. The fix collects each running total after each instruction and returns the full list of running totals.