Files
erp/fleet/profile/decisions/adc-002-fx-deltas-766-666.md
T
arcodangeandClaude Fable 5 a482bb18c4 feat(fleet): fiscal profile + compliance calendar + ADC register (erp#54, T11 data)
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
2026-07-18 23:45:00 +02:00

71 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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`.