LensReading which lens this session carries.
All contracts

CTR-FPA · version 2

Planning and Consolidation — Plan version lines

The baseline surface reads from this contract, which is why baseline immutability depends on the source keeping versions immutable.

RatifiedIn contract

What the contract says

These are the terms the connector is generated against. A source that stops matching them is a drift finding, not a silent data change.

Entity
Plan version line · bidirectional
Primary key
versionId + accountId + periodId
Declared volume
24,000 records a day
Freshness commitment
1 d
Owner
D. Halvorsen · FP&A Systems
Vendor
Anaplan · high criticality · modeled
Cardinality
One plan version to many lines. A line is unique on account and period within a version. Versions are immutable once published.
Write-back rule
Driver note and variance commentary are in scope. Plan submission is excluded and stays with the FP&A analyst.

Review state

Neither review is performed by the team that wrote the contract.

Security reviewApproved
M. Lindqvist · Jun 18, 2026
Privacy reviewApproved
Dr. Katrin Wehner · Jul 22, 2026

Validation and drift

Drift is only detectable on a contract that has been read against a sample.

Last validatedJul 29, 2026 · 20 d ago
18,000 records read in the sample.
Validated against 18,000 published plan lines.

The field list

5 fields · 3 key · 0 personal. The validation rule on each row is what admits or rejects a record at the staging boundary.

FieldSourceTargetTypeFlagsDriftValidation
Version idversion.idplanLine.versionRefstring(24)
keyinternal
In contractPublished versions only. The contract relies on source-side immutability and names that reliance.
Account idaccount.idplanLine.glAccountstring(10)
keyinternal
In contractMust resolve to a GL account.
Period idperiod.idplanLine.periodstring(7)
keyinternal
In contractYear and month. A quarter value quarantines because it changes the grain.
Planned amountvalueplanLine.amountdecimal(15,2)
internal
In contractSigned.
Driverdriver.nameplanLine.driverstring(60)
nullableinternal
In contractNull on directly entered lines.

What has passed the staging boundary against this contract

1 batch · 2,210 arrived · 2,114 admitted · 96 quarantined · 0 rejected

BatchArrivedInAdmittedQuarantinedRejectedResultGate
STG-0032Aug 17, 10:002,2102,114960Partly admitted2,114 admitted · 96 quarantined · 0 rejected outright.

Rejects raised against these batches

1 reason covering 96 records. Each one names a field, what was observed and what the contract expected.

Document date outside the declared extract window96 records · 23 h oldCleared
Observed: A period end one day past the window
Expected: Inside the declared extract window
STG-0032 · field periodEnd · queue quarantine · D. Halvorsen

Replay windows

1 window recorded against this contract.

RPL-014Approved, queued
Scheduled backfill · Aug 9, 2026 to Aug 16, 2026
A full week is being re-read so the planning feed and the ledger cover the same period end to end.
0 replayed · 0 held at the idempotence key · 0 duplicates created

Write-back routes into this system

1 route designed against Planning and Consolidation.

publish-agent-forecast · Forecast lineDesigned, never live
WB-FPA-01 · agent · authority FI2-AUTH-A1 · policy FI2-POL-200
2 attempted · 0 written to a production system
What this contract is, and what it is not

A contract, a validation rule, a freshness commitment and a replay path are real mechanisms and they are what this wave builds. What they are not is a connection. No connector on this estate is attached to a customer instance, so every batch, every replay and every write-back attempt recorded here ran against a modeled extract or a sandbox, and the registry keeps saying modeled.

The last validation read 18,000 records 20 days ago, which is 75% of a single day at the declared volume. A sample proves the shape of what it read and nothing beyond it.