# D30-F02-A01 validation evidence

Date: 25 October 2026. Workflow: **video-ready private draft**. No manifest edit, remote publication, deployment, recorded narration or encoded video is claimed.

## Executable acceptance

Six Python suites passed: the 93-case independent matrix; full quiet-day calendar/no daily rounding; signed carry conservation across periods; expense/payable proposal destination and zero/amount-limit behavior; complete validation before unsupported negative policy; input immutability/output alias isolation/key-order determinism.

Strict TypeScript compilation and matching assertions passed. **93 complete JSON outputs agree** across Python/TypeScript: exact period earned/settlement/rounding/carry, every daily trace row/fraction, proposal fields/legs, typed codes and rejection nulls.

The before-code oracle establishes full 35-day sum 3222400, earned 32224/73, rounded 441 and carry 31/73; full October 400; focus 9-day 109; changed-rate focus 120; same-close path 93; half-even ties, signed carry cancellation and leap comparison. Genuine year 0001/0099/0100 fixtures avoid the JS numeric-year constructor trap. The 366-day amount-limit case retains exact calculation success with no oversized journal legs.

Raw executed commands, stdout/stderr and exit codes live in tests/evidence/acceptance-results.json. Run `python tests/run_acceptance.py` from the topic directory. It runs tests/parity, rebuilds the embedded lab kernel and invokes full-package/playground validators using the local skill, overridable through TFB_TOPIC_SKILL. Ordinary learner parity does not require the skill.

## Standalone browser and rendered assets

Playwright Chromium validates 390/768/1440 px:

- Ten scenarios in every width:30 complete runs through meaningful daily/rejection transitions.
- All 93 fixtures as complete JSON output comparisons against Node at every width:279 browser comparisons.
- Initial full 35-day preview:35 SVG bars, earned 32224/73, rounded 441, carry 31/73, nine focused audit rows.
- Focus/all-day views preserve the full computation:9 or 35 audit rows while exact period output remains unchanged.
- Begin/Step/Back/Play/Pause/speed; incoming carry changes every dependent amount immediately; scenario changes stop playback; Reset restores canonical scenario/35-day preview/defaults; keyboard arrows work outside controls.
- Reduced-motion Play advances exactly one day without timer or later automatic advance; Step/Reset remain deterministic.
- Control targets≥44×44 px, no document horizontal overflow in any tested stage/scenario, zero warnings/errors/page exceptions.

Both SVGs have accessible title/description and rendered correctly. Mermaid parsed and rendered into the visitor-supported static directory. Article includes inline Mermaid and a public full-size SVG link. Author inspection covers narrow/wide lab, calendar, carry/accounting lanes and complete workflow: readable labels, exact units and responsive light layout.

Raw browser proof is tests/evidence/visual-qa.json. Captures: lab-390.png, lab-768.png, lab-1440.png, full-calendar.png, carry-and-credit.png and interest-flow.png. Reproduce with `node tests/visual-qa.mjs` after compilation.

The lab embeds compiled daily-simple.ts and ten fixture copies, with no network dependency or sibling imports. All money/fractions use BigInt and strings. Plotting converts only a bounded 0–10000 ratio to Number; transport and civil-date offsets are separate bounded numeric metadata. Full validated calculations precede the replay display, so a replay prefix is never misrepresented as a complete period accrual.

## Independent method comparison

The average-balance owner pins the same strict calendar/proposal policy locally and independently computes rate-segment average×days×rate. Common exact earned/settlement/rounded/carry/proposal facts match the daily method; averages/segments are topic-specific and are not claimed as identical complete outputs. Root owns final cross-family integration evidence.

## Visitor boundary and material limits

Standalone package acceptance is separate from actual visitor integration. At handoff the coordinating author still owns isolated production build, article/iframe routes, inline images/Mermaid, safe examples downloads, readable full H1, responsive containment and console. A visitor receipt is pending; local screenshots do not establish it.

The product-calendar branch is synthetic and distinct from Ada's earlier ledger. Source balance/rate receipt authenticity, account ownership and schedule completeness are trusted host obligations. Identifier syntax/echo does not authenticate them. The ready proposal is uncommitted expense/payable; later customer credit is a separate payable/deposit step. No APY/EIR, universal regulatory, performance, legal entitlement or exactly-once durable posting claim is made.

