- core: asset tags (generated PREFIX-0001 or the human's own; unique ignoring case; never reused by another asset) and serial numbers (rules.md B-24); a journaled link from an asset to the entry that acquired it (posted, unreversed, debiting the cost account); fixed_asset_register(as_of), reconciled to the GL (unposted depreciation, unregistered cost) - store: asset.tagged, asset.serial_set, asset.acquisition_linked journaled, replayed, projected (schema v9); differs_from now also compares control roles and tag history - config: [books] asset_tag_prefix, default the company's initials without legal-form words - import: Avery 5160/8160 label sheets with QR codes (geometry vendored from Avery, docs/spec/sources/avery-5160.md); the register as XLSX and PDF - mcp: register_asset tags (and links) automatically; books.label_asset, books.asset_labels; asset tools take a tag; books.show asset / assets page / register report; export fixed_asset_register (json, csv, xlsx, pdf) and in the CPA package - viewer: Assets page (register, reconciliation), asset page (identity, schedule posted vs not, entries, documents), Fixed asset register report, global search by tag/serial/description, journal text, needs-attention items - fix: verify compared snapshot amounts as strings; a zero total summed in hash-map order could print "0" or "0.00", so agreeing books failed verify at random. Now by value (regression test) - tests: spec-blind suites for tags, register, prefix, store, MCP; label and register PDF/XLSX tests; viewer tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GWVo7x3UHw5kwCUaWxiejX
2.9 KiB
Avery 5160 label sheet geometry
Governs ledger_import::labels (LabelSheet::Avery5160, printable asset-tag sheets). Avery's pages and templates are © Avery Products Corporation, not public domain, so per the vendoring rules (docs/spec/README.md) they are cited, with short quotes only; everything not inside a > blockquote is our description, not Avery's words. Avery's pages are dynamic (Next.js), so the hashes are of the files as fetched at retrieval and a later fetch will differ.
Avery Template 5160 (product template page)
Source: https://www.avery.com/templates/5160
Retrieved: 2026-10-15
SHA-256 of the retrieved file (templates_5160.html, 90,873 bytes): a274842ad34b3cb83e3129306df8b4f4ff51eb520c96cc263d96eff7b15c0a95
1" x 2-5/8"
30 per sheet
The page links Avery's blank downloadable template for 5160 as U-0087-01 (PDF, Word, Illustrator, InDesign).
Blank labels, 1" x 2-5/8" (Presta 94200; lists 5160 as compatible)
Source: https://www.avery.com/blank/labels/94200
Retrieved: 2026-10-15
SHA-256 of the retrieved file (blank_labels_94200.html, 274,099 bytes): c4e7c7eb3428654b1244ed04da5f52ef7668c14d6703f971ea7d0be7daa95b17
Avery's specification table on this page (key and value, transcribed as given):
| Key | Value |
|---|---|
| Labels per Sheet | 30 labels per sheet |
| Size | 1" x 2-5/8" |
| Print to the edge | No |
| Sheet Size | 8-1/2" x 11" |
| Margin (Top and Bottom) | 0.5" |
| Margin (Left and Right) | 0.1875" |
| Corner Shape | Rounded |
The page's compatibleSkus field lists 5160 first.
Avery 5160 blank PDF template (U-0087-01.pdf)
Source: the "PDF" download on https://www.avery.com/templates/5160 (a signed S3 link: https://s3.amazonaws.com/avery.dpp.projects.s3uspdownloadables/US_en/Downloadables/pdf/U-0087-01.pdf, served as Avery5160AddressLabels.pdf)
Retrieved: 2026-10-15
SHA-256 of the retrieved file (U-0087-01.pdf, 675,971 bytes): 486b464c0380d41225f752dc834c5d7e6362364c1454d7ed92a77fc4164d0466
One US Letter page (612 x 792 pt). We read the cell outlines from its content stream (PDF points, origin bottom-left): 30 rounded rectangles, left edges at x = 13.5, 211.5, 409.5 pt; bottom edges at y = 36, 108, ..., 684 pt (step 72); each 72 pt tall with 7.2 pt (0.1") corner radii. The outline is drawn 189.36 pt wide (2.63"); the stated label width is 2-5/8" (189 pt), and we use the stated size.
What wanderbooks uses
Derived from the figures above (1 in = 72 pt):
- Page: 8.5" x 11" (US Letter), portrait.
- Label: 2.625" wide x 1" tall; 3 columns x 10 rows = 30 per sheet.
- Top margin 0.5" (the template's top row spans y = 756..684 pt, i.e. 36 pt below the top edge); bottom margin 0.5" (11 - 0.5 - 10 x 1 = 0.5).
- Side margin 0.1875" (13.5 pt).
- Column pitch 2.75" (211.5 - 13.5 = 198 pt), so the horizontal gap is 0.125" (8.5 - 2 x 0.1875 - 3 x 2.625 = 0.25, over two gaps).
- Row pitch 1" (72 pt): no vertical gap.