Skip to content

docs(c7): the card stopped resolving through a different anchor, so say what does differ - #110

Merged
lessevv merged 1 commit into
mainfrom
spec/the-net-worth-card-stopped-using-a-different-anchor
Sep 13, 2026
Merged

lessevv merged 1 commit into
mainfrom
spec/the-net-worth-card-stopped-using-a-different-anchor

Conversation

@lessevv

@lessevv lessevv commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

The sentence

C7 has explained the net-worth series/card divergence like this:

Its most recent point is not guaranteed to be byte-identical to the dashboard's net-worth card, which resolves through a different anchor path — a documented limitation rather than a bug to be surprised by.

That clause stopped being true when the dashboard card moved off Forecasting's BalanceAnchorResolver onto the ledger's AccountBalanceQuery. Both surfaces have read the same anchor for some time, so the sentence has been wrong independently of any code change — it would still be wrong if nothing were touched.

What actually differs

The day each one asks about. The card asks about today; a series point asks about its bucket's last day, which for the bucket the current period is still inside is a date in the future. A this_month report read on 13 September samples 30 September.

After

Its most recent point is not guaranteed to be byte-identical to the dashboard's net-worth card, because the two ask about different days: the card asks about today, a series point about its bucket's last day, which for the bucket the current period is still inside is a date in the future. Both read the same balance as of that day and count the same rows, so asked about one day they agree — a documented limitation rather than a bug to be surprised by.

Why "count the same rows" is now true

beatrax moves the series off clearedBalanceAsOf() onto currentBalanceAsOf() — the seam every other surface that states a balance already reads (dashboard card, forecast anchor, calendar past-day line, pot ledger). Before that change the series was the only non-reconciliation caller of the cleared variant, and the chart could contradict the number printed directly above it.

No acceptance criterion changes

No C7 criterion named cleared. C7-R7 governs on-demand sampling, C7-R8 requires the divergence to be documented — there is still a divergence (the date), so C7-R8 still binds and is still met. The behaviour table row "The most recent net-worth point versus the dashboard card | May differ; documented." is unchanged and still correct.

Spec: C7-R8

…ay what does differ

C7's prose explained the net-worth series/card divergence as the card
"resolv[ing] through a different anchor path". That stopped being true when the
card moved off Forecasting's BalanceAnchorResolver onto the ledger's
AccountBalanceQuery -- the sentence has been wrong since, independently of any
code change made now.

The anchor is not the difference and has not been for some time. The difference
is the DAY each surface asks about: the card asks about today, a series point
about its bucket's last day, which for the bucket the current period is still
inside is a date in the future.

Both surfaces now also count the same rows -- beatrax moved the series off
clearedBalanceAsOf() onto currentBalanceAsOf(), which is what every other
surface that states a balance already read. No acceptance criterion named
cleared, so nothing here changes: C7-R8 still requires the divergence to be
documented, and there is still a divergence to document.

Spec: C7-R8
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Wessel Verheij <info@nightworks.io>
@lessevv
lessevv enabled auto-merge (squash) September 13, 2026 14:17
@sonarqubecloud

Copy link
Copy Markdown

@github-actions github-actions Bot added awaiting-maintainer Green PR with no review — a maintainer needs to act documentation Docs only functional labels Sep 13, 2026
@lessevv
lessevv merged commit 73025cc into main Sep 13, 2026
13 checks passed
@github-actions github-actions Bot added awaiting-maintainer Green PR with no review — a maintainer needs to act and removed awaiting-maintainer Green PR with no review — a maintainer needs to act labels Sep 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-maintainer Green PR with no review — a maintainer needs to act documentation Docs only functional

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant