One way to number, title, caption and tabulate evidence, so every report, field note, deck and runbook carries it the same way.
ApprovedOwner: Wes FischerUpdated 13 Oct 2026
01What the system adds
Numbered figures and tables. One sequence of each per document, set by CSS so a reordered page renumbers itself. Text points to a figure as Fig. 01.
The finding is the title, with its number, 21px Manrope 600. Never a topic label. The count and denominator sit in the figure and its caption.
One caption order. What it shows, n, period, source and read date, then status. Mono 13px, under the figure.
A data-table style. Tabular lining figures, numbers right-aligned to one decimal, an ink rule above the total. The focal row, when there is one, gets the tint and one Forest marker.
Key numbers carry their denominator. Three at most, in a stat row under the lede.
Forest marks one value per figure. The focal bar or the focal row. Never a heading, a label or a caption.
02Anatomy
Worked exampleExample data
Insight report · Example Co. · page 4 of 11
Your stores answer most complaints. Inland answers fewer than half.
In the 12 months to 30 September 2026, Example Co.’s 40 stores received 216 complaints (one and two star reviews). Two in three got a reply. Fig. 01 shows the regions.
142 of 216complaints got a reply
2.6 daysmedian time to reply
5 regionscompared on the same period
Inland answers 41.2% of its complaints, the lowest of five regions.
North52 of 64 · 81.3%
East37 of 50 · 74.0%
Coast24 of 36 · 66.7%
West15 of 32 · 46.9%
Inland14 of 34 · 41.2%
· Complaints with a reply, by region. n=216 complaints across 40 stores, 12 months to 30 Sep 2026. Source: public Google reviews, read 2 Oct 2026. Example data: Example Co. is fictional.Every value in this figure
Complaints and replies, by region
Region
Stores
Complaints
Replied
Share
Median days
North
12
64
52
81.3%
1.4
East
9
50
37
74.0%
2.1
Coast
7
36
24
66.7%
2.8
West
6
32
15
46.9%
4.0
Inland
6
34
14
41.2%
5.6
Total
40
216
142
65.7%
2.6
· Complaints, replies and median days from review to first reply, by region. n=216 complaints across 40 stores, 12 months to 30 Sep 2026. Source: public Google reviews, read 2 Oct 2026, the same data as Fig. 01. Example data: Example Co. is fictional.
Forest in this example: the focal bar and the focal row. With the brand book header slash, three in one viewport, the limit.
03Caption order
Every caption runs in the same five parts, in this order. Leave none out; a part that does not apply says so.
Part, in order
Example
Rule
1 · What it shows
Complaints with a reply, by region.
A plain description. The finding stays in the title.
2 · n
n=216 complaints across 40 stores
Count first, then the unit, then what it spans.
3 · Period
12 months to 30 Sep 2026
Anchored: "in the 12 months to", never "last year".
4 · Source and read date
Source: public Google reviews, read 2 Oct 2026
Every data figure carries its capture date.
5 · Status
Example data: Example Co. is fictional.
Example data, illustrative, or a method note. Never left out.
04Data tables
Header in mono 12px capitals, mute, with an ink-2 rule under it.
Numbers right-aligned, tabular lining figures, one decimal for shares, thousands with a comma.
Total row: 600 weight, ink, with a 1.5px ink rule above. No rule below.
A focal row only when one row is the decision value. Otherwise no Forest at all.
Tables over five columns scroll inside .fg-table-wrap on phones; never shrink the type.
SpecimenNo focal row
Replies by week, East region
Week to
Complaints
Replied
Share
Sun 13 Sep
3
2
66.7%
Sun 20 Sep
4
3
75.0%
Sun 27 Sep
3
2
66.7%
Three weeks
10
7
70.0%
· Complaints with a reply, by week, East region. n=10 complaints, three weeks to Sun 27 Sep 2026. Source: public Google reviews, read 2 Oct 2026. Example data, specimen: no focal row, so no Forest.
05Numbering and references
Wrap each document, report page or field note in .fg-doc. Figures and tables count separately. The caption prefix uses the same counter, so the number and the caption always agree.
<article class="fg-doc"> <!-- numbering restarts per document -->
<figure class="fg" data-kind="figure" aria-labelledby="c1">
<p class="fg-num"></p> <!-- "Figure 01", added by CSS -->
<h4 class="fg-title">The finding, with its number.</h4>
<div class="fg-body">…chart or table…</div>
<figcaption class="fg-cap" id="c1"><b></b> · What, n, period, source and read date, status.</figcaption>
</figure>
</article>
06New tokens
Token (new)
Value
Use
--fs-figure-title
21px / 600
Figure and table titles
--fs-caption-fig
13px mono
Captions under figures and tables
--fs-stat
40px / 700
Key numbers in the stat row
--table-rule-total
1.5px ink
The rule above a total row
--numeric
tabular-nums lining-nums
Every table, stat and chart value
Defined in figures.css for now. At merge, add them to tokens.json and regenerate, so the site, deck and documents share one source.
07Do and don’t
Don't
Review response rates by region
A topic label. The reader has to find the point.
Do
Inland answers 41.2% of its complaints, the lowest of five regions.
The finding, with its number. The chart proves it.
Don't
142
A bare number can't be checked.
Do
142 of 216 complaints got a reply
Count with its denominator, first time and every time it's a key number.