---
id: TST-ACC-BAT-129
title: Batch rules memo split by schedule
kind: unit
product_area: accounting
module: batches
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
repository: services-accounting
files:
  - modules/batches/tests/unit/rules/memo-split-by-schedule.spec.js
implements:
  - ATS-ACC-BAT-015-04
  - ATS-ACC-BAT-019-08
environment: mock
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: Each case owns its supplied rule inputs and test doubles.
assertion_sources:
  - scenario: ATS-ACC-BAT-015-04
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/unit/rules/memo-split-by-schedule.spec.js#with
      3 of 12 months recognised debits deferred revenue 45.00 and revenue 15.00,
      crediting receivable 60.00
  - scenario: ATS-ACC-BAT-019-08
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/unit/rules/memo-split-by-schedule.spec.js#is
      written a schedule of its own under the memo’s id, summing to 30.00, which
      the invoice’s schedule does not cover
  - scenario: ATS-ACC-BAT-019-08
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/unit/rules/memo-split-by-schedule.spec.js#is
      written none for a line whose product does not defer
evidence:
  - provenance: observed
    source: >-
      services-accounting:modules/batches/tests/unit/rules/memo-split-by-schedule.spec.js
    note: >-
      The executable file is inspected at the pinned revision; duration is an
      unmeasured planning estimate.
unbound_scope: null
---

# Batch rules memo split by schedule

## Verification Boundary

This suite exercises the named rule functions with controlled inputs. Its boundary ends before persistent accounting and deployed execution.

## What This Suite Proves

Memo entries divide recognised revenue and remaining deferral according to the source schedule. The assertion anchors identify the supported portions of the bound scenarios.

## What It Does Not Prove

These checks do not prove transport authorization, transactional storage, scheduling delivery or the whole feature workflow.

## Real Dependencies and Test Doubles

The rule inputs and dependency callbacks are controlled by the case. Database, API dispatch and workflow delivery are outside this boundary.

## Must Not Be Doubled

Qualifying transactional integrity requires real storage and accounting execution beyond this rule-only suite.
