format-statistics-table

star 3

For result reporting: tabular output, aligned columns, statistics summaries, human-readable reports.

jimmc414 By jimmc414 schedule Updated 12/27/2025

name: format-statistics-table description: "For result reporting: tabular output, aligned columns, statistics summaries, human-readable reports."

format-statistics-table

When to Use

  • Reporting test results
  • Showing statistics
  • Comparing alternatives
  • Human inspection of data

When NOT to Use

  • Machine-parseable output (use JSON/CSV)
  • Simple single values
  • Too many columns

The Pattern

Format data as aligned columns with headers and separators.

def print_table(headers, rows, widths=None):
    """Print formatted table."""
    if widths is None:
        widths = [max(len(str(row[i])) for row in [headers] + rows)
                  for i in range(len(headers))]

    # Header
    print(' | '.join(h.ljust(w) for h, w in zip(headers, widths)))
    print('-+-'.join('-' * w for w in widths))

    # Rows
    for row in rows:
        print(' | '.join(str(v).ljust(w) for v, w in zip(row, widths)))

Example (from pytudes)

# SET.py - game statistics
def show(tallies, label):
    """Print out the counts."""
    print()
    print('Size |  Sets  | NoSets | Set:NoSet ratio for', label)
    print('-----+--------+--------+----------------')
    for size in sorted(tallies):
        y, n = tallies[size][True], tallies[size][False]
        ratio = ('inft' if n == 0 else int(round(float(y) / n)))
        print('{:4d} |{:7,d} |{:7,d} | {:4}:1'
              .format(size, y, n, ratio))

# Output:
# Size |  Sets  | NoSets | Set:NoSet ratio for random
# -----+--------+--------+----------------
#    3 |    100 |      0 | inft:1
#    4 |    200 |     50 |    4:1
#    5 |    400 |    100 |    4:1

# sudoku.py - solve statistics
def solve_all(grids, name=''):
    """Report solution statistics."""
    times, results = zip(*[time_solve(grid) for grid in grids])
    N = len(results)
    if N > 1:
        print("Solved %d of %d %s puzzles "
              "(avg %.2f secs (%d Hz), max %.2f secs)." % (
            sum(results), N, name,
            sum(times)/N, N/sum(times), max(times)))

# Output:
# Solved 50 of 50 easy puzzles (avg 0.01 secs (100 Hz), max 0.03 secs).

# spell.py - accuracy reporting
print('{:.0%} of {} correct ({:.0%} unknown) at {:.0f} words per second'
      .format(good/n, n, unknown/n, n/dt))

# Output:
# 74% of 270 correct (6% unknown) at 41 words per second

Key Principles

  1. Align columns: Consistent widths
  2. Format numbers: Commas, percentages, decimals
  3. Headers and separators: Visual structure
  4. Edge cases: Handle zero, infinity
  5. Named columns: Clear what each represents
Install via CLI
npx skills add https://github.com/jimmc414/claude-code-plugin-marketplace --skill format-statistics-table
Repository Details
star Stars 3
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator