2.7k stars · MIT · v0.24.0 (2026-08-24)
Display tables in Python with titles, spanners, footnotes and real number formatting — from a pandas or Polars frame.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A Python library for composing display tables — title, stub, column spanners, formatted numbers, footnotes, conditional colour — from a pandas or Polars DataFrame. It outputs HTML, or an image.
Why it matters
quantstats (Ed. 4 #11) gives you the monthly-returns tearsheet; everything else in ScalpingMate ends its life as print(df). When you eventually show a strategy's numbers to somebody who might pay for them — in the app, in a blog post, in a Typst guide (Ed. 8 #7), or on a YouTube frame — a raw DataFrame says "unfinished side project" in exactly the way mismatched icons do on a landing page. This is thirty lines that make the same numbers look audited: percentages formatted as percentages, currencies as currencies, a source note under the table saying which period it covers. It is the same argument as everything above this line, applied to the one artefact in ScalpingMate a customer actually reads.
- Real table structure — titles, spanners, footnotes, source notes — rather than a grid of strings.
- HTML output drops straight into a FastAPI response or an emailed report.
- MIT, so it can render tables inside a paid feature without a licence conversation.
- Display only: no sorting, filtering or interactivity — that is Perspective's job (#11).
- The API is its own vocabulary, borrowed from R's
gt, so it takes an afternoon to feel natural. - Exporting to an image needs a headless browser, which is another thing to install on the VPS.
pip install great_tables

