fleet/profile/ goes from stub to the machine-readable business-rules surface the fleet reads (PRD agent-catalog document surface + compliance ADC framework): - fiscal.yaml — entity, VAT position, 8 rules (regime reel simplifie until 2026-12-31 -> quarterly CA3 from 2027-01-01 per LF 2025 art. 38; KM export autoliquidation 259-1 CGI box E2; FR 20% deductible; intra-EU reverse charge; FX 766/666; SaaS expensed; CCA 455 lane). Every rule carries effective_from/effective_until AND decision: adc-NNN; every date cites its PRD anchor as an inline comment (verified against factory origin/main). - calendar.yaml — 15 entries: acomptes TVA (2026-07 month-window, 2026-12-15), last CA12 FY-2026 (2027-05-04), CA3 quarterly windows, CFE (December), AG comptes annuels (2027-06-30), e-invoicing milestones (2026-09-01 reception, 2027-09-01 emission/e-reporting), URSSAF echeancier with the in-file NOTE that a real direct debit exists since May 2026 (erp#57 revisit of the payroll-dormant assumption), KM deferred due dates + renewal stub. - JSON Schemas for both + scripts/validate.py (stdlib-only: strict YAML-subset parser, JSON-Schema-subset checker, rule->ADC resolution, calendar checks). - decisions/ — ADC register: template + adc-001..005 Accepted formalizations (autoliquidation KM, FX->766/666, SaaS expensed, reel simplifie until abolition, CCA personal-card lane) + adc-006/007 Proposed stubs (retainer currency -> erp#53; capital path -> erp#51). Agents draft, the operator Accepts — never the reverse; immutable once merged, supersede never edit. - Mutation policy in-file: PRs only (T12 proposes, human merges). - Same-change: profile README stub -> real doc; fleet/README.md layout line and AGENTS.md fleet row updated (profile no longer a stub). Validation: PASS — 8 rules, 15 entries, 7 ADCs, 0 errors, 7 warnings (the warnings list exactly what awaits operator verification). Human gate left open on purpose: operator sanity-read of the calendar + Acceptance of adc-001..005. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01VRShc4QhLLU73FLHx9vskh
71 lines
2.9 KiB
Markdown
71 lines
2.9 KiB
Markdown
---
|
||
id: adc-002
|
||
title: "FX deltas on customer wires booked to 766 / 666, invoices never adjusted"
|
||
status: Accepted
|
||
decided: 2026-07-18
|
||
effective_from: 2026-01-01
|
||
effective_until: null
|
||
supersedes: null
|
||
superseded_by: null
|
||
---
|
||
|
||
# adc-002 — FX deltas on customer wires → 766 / 666
|
||
|
||
> **Accepted as formalization** — the method was applied in the 2026-07-11
|
||
> books regularization (PRD [compliance › ADC seed table](https://gitea.arcodange.lab/arcodange-org/factory/src/branch/main/vibe/PRD/ai-back-office/compliance.md#accounting-decision-records-adc)).
|
||
> Effective from the exercice start (ADC rule 1: effective dates sit on
|
||
> exercice boundaries where possible). Operator sanity read = erp#54 human gate.
|
||
|
||
## Context
|
||
|
||
KissMetrics pays in USD via Wise; the EUR amounts settled differ from the EUR
|
||
invoice totals. Observed deltas: +1.08 EUR on FAC004 and +50.05 EUR on FAC006
|
||
(erp#57). The 2026-07-11 regularization forced the choice of where the delta
|
||
lives.
|
||
|
||
## Decision
|
||
|
||
The customer payment is recorded at the invoice's **remaining EUR amount**
|
||
(full-remaining), so the invoice closes exactly. The difference against the
|
||
EUR actually received is booked **separately**: gain → account 766 (gains de
|
||
change), loss → account 666 (pertes de change). A validated invoice is never
|
||
adjusted for FX.
|
||
|
||
## Base légale & doctrine
|
||
|
||
- PCG chart — account 666 *pertes de change* / account 766 *gains de change*
|
||
(charges et produits financiers).
|
||
- Inaltérabilité of validated entries (Code de commerce L.123-22; PRD
|
||
compliance.md § The ledger grammar): corrections are new documents, never
|
||
edits — the separate 766/666 entry is the append-shaped correction.
|
||
|
||
## Alternatives rejected
|
||
|
||
- **Adjusting the invoice amount to the settled EUR** — violates the ledger
|
||
grammar (a validated document is immutable) and inaltérabilité.
|
||
- **USD multicurrency invoicing** — open question, not rejected: it is the
|
||
subject of adc-006 (erp#53). If Accepted, adc-006 would supersede or narrow
|
||
this record's scope for future invoices.
|
||
|
||
## Consequences
|
||
|
||
- Accounts touched: 766, 766-side produits / 666-side charges financiers.
|
||
- Downstream rule: `fiscal.yaml` `fx-deltas-766-666`.
|
||
- Annexe: FX-treatment method disclosed from this record at close.
|
||
- Interaction: pending adc-006 (retainer currency) may change where FX lives
|
||
for future invoices; until then this method applies unchanged.
|
||
|
||
## QA & validation
|
||
|
||
- Applied in the 2026-07-11 regularization; rehearsed on the sandbox (replay
|
||
pack preserved under
|
||
`.claude/skills/dolibarr-sandbox-write/replay-packs/2026-07-11-books-regularization/`).
|
||
- The two écart entries themselves are [HUMAN] UI work tracked in erp#57.
|
||
- Expert-comptable review: pending (rides the compliance.md § Questions list).
|
||
|
||
## References
|
||
|
||
- PRD compliance.md § ADC seed table (adc-002) + § The ledger grammar.
|
||
- erp#57 (écarts +1.08 FAC004 / +50.05 FAC006), erp#53 / adc-006.
|
||
- `fiscal.yaml` rule `fx-deltas-766-666`.
|