# ============================================================================
# fleet/profile/fiscal.yaml — Arcodange fiscal profile (machine-readable, T11)
# ============================================================================
# What the fiscal atoms read (T10 TVA preparation, T03 VAT ventilation, T11
# calendar) instead of carrying business rules in prompts — per the PRD
# agent-catalog § "The document surface agents read".
#
# PRD root: https://gitea.arcodange.lab/arcodange-org/factory/src/branch/main/vibe/PRD/ai-back-office
# All "PRD <leaf> § <anchor>" comments below were verified against the factory
# repo at origin/main on 2026-07-18.
#
# MUTATION POLICY — changes arrive as PRs ONLY. The T12 regulatory watch
# *proposes* a diff (source links + effective dates, PRD task-inventory § T12);
# a human reviews and merges (PRD task-inventory § T11 guardrail: "the calendar
# file is reviewed like code"). No agent edits this file directly. A rule
# change moves its ADC too — supersede, never edit (PRD compliance.md § ADC,
# rule 1: permanence des méthodes made structural).
#
# CONTRACT — every rule carries:
#   effective_from / effective_until   (null = in force until superseded)
#   decision: adc-NNN                  (its justification record, decisions/)
# so the chain écriture → règle → ADC → base légale resolves in four hops
# (PRD compliance.md § ADC, rule 2).
#
# Schema: fiscal.schema.json — validate with: python3 scripts/validate.py
# (stdlib-only; this file is written in the strict YAML subset the validator
# parses: block maps/lists, single-line scalars, [flow] lists of scalars,
# comments — no anchors, no multi-line scalars; see ../profile README).
# ============================================================================

version: 1

entity:
  name: "Arcodange"
  legal_form: "SARL"               # ERP prod (rendered on every issued invoice: "Société à responsabilité
                                   # limitée (SARL)") + the signed contrat cadre signature block ("Pour
                                   # Arcodange (SARL)") + cohort review 2026-05-28. The PRD README says "SAS" —
                                   # it is wrong; three operational sources agree on SARL. Confirm on the Kbis.
  siren: "999657455"               # erp#54 + agent memory arcodange-tva-fiscal — NOT corroborated by a PRD leaf (see README § Facts not corroborated by the PRD)
  incorporated: "2026-01"          # PRD compliance.md § Questions for the expert-comptable — "mid-January 2026 incorporation"; exact day not in the PRD (month precision on purpose)
  fiscal_year_end: "12-31"         # PRD compliance.md § Questions for the expert-comptable — "close 2026-12-31"
  vat_registered: true             # holder of the régime réel simplifié (rules below)
  b2b_only: true                   # PRD compliance.md § Obligations, NF525 row — "Arcodange is B2B-only"

# Informational ERP-read position, NOT a rule (hence no decision field).
# PRD README.md § regulatory table (2026-12 row) + task-inventory § T10 trigger:
# expected ≈ 0 € to pay while in credit — "verify, don't assume".
vat_position:
  stance: "credit"                 # TVA collectée = 0 (100 % of revenue in box E2) vs déductible on FR supplier invoices
  net_credit_eur_approx_min: 223.22   # dolibarr-tva-summary skill figure (all-time at skill authoring) — ERP read, not a PRD figure
  net_credit_eur_approx_max: 267.12   # agent memory arcodange-tva-fiscal (prod `arcodange tva summary`, 2026-06-30) — ERP read, not a PRD figure
  as_of: "2026-06-30"
  note: "Approximation from ERP reads. Verify on the espace pro impots.gouv.fr before any filing - never assume (PRD task-inventory T10)."

rules:

  # --- VAT regime -----------------------------------------------------------

  - id: "vat-regime-reel-simplifie"
    title: "Régime réel simplifié (CA12 + acomptes) for FY-2026"
    category: "vat-regime"
    statement: "Arcodange declares VAT under the régime réel simplifié: one annual CA12 (form 3517) plus two acomptes (July and December). No monthly or quarterly CA3 under this regime. Stay on it until its legal abolition - no early opt-out to the réel normal."
    effective_from: "2026-01-01"   # conservative exercice-start bound; incorporation is "mid-January 2026" (PRD compliance.md § Questions) — exact registration day NOT in the PRD
    effective_until: "2026-12-31"  # PRD task-inventory.md § T11 step 1 — "réel simplifié until 2026-12-31"
    decision: "adc-004"
    legal_basis:
      - "CGI art. 302 septies A (régime simplifié d'imposition)"
      - "LF 2025 art. 38 - abolition effective 2027-01-01 (PRD task-inventory § T10 trigger)"
    source: "PRD task-inventory.md § T11 step 1 + § T10 trigger; PRD README.md § three dated regulatory obligations"
    notes: "The regime was confirmed by a DGFiP mail of 2026-06-25 (agent memory arcodange-tva-fiscal) - not a PRD leaf; keep the mail as evidence."

  - id: "vat-regime-ca3-quarterly"
    title: "Quarterly CA3 from the régime simplifié abolition"
    category: "vat-regime"
    statement: "From 2027-01-01 the régime réel simplifié is abolished: Arcodange files quarterly CA3 declarations (turnover under 1,000,000 EUR; the CA3 becomes monthly above that threshold). A last CA12 covering FY-2026 is still filed in 2027."
    effective_from: "2027-01-01"   # PRD roadmap.md § Milestones — "2027-01-01 | Régime simplifié abolished → quarterly CA3 | regulatory — hard"
    effective_until: null          # in force until superseded (e.g. crossing the 1 M€ threshold → monthly)
    decision: "adc-004"
    legal_basis:
      - "LF 2025 art. 38 (PRD task-inventory § T10 trigger)"
      - "CGI art. 287 (CA3 filing)"
      - "1 M€ monthly threshold noted in PRD task-inventory § T12 step 1"
    source: "PRD roadmap.md § Milestones + task-inventory.md § T10 trigger"

  # --- VAT treatment: clients ----------------------------------------------

  - id: "client-export-autoliquidation"
    title: "Client invoices to KissMetrics (extra-EU export): autoliquidation art. 259-1° CGI"
    category: "vat-treatment"
    statement: "B2B services to KissMetrics (US, extra-EU) are outside French VAT scope: the place of supply is where the customer is established. TVA collectée = 0 on every KM invoice; each invoice carries the autoliquidation mention referencing art. 259-1° CGI; the basis reports in box E2 of the CA3/CA12. Today this covers 100 % of client revenue."
    effective_from: "2026-01-01"   # practiced "since the first invoice" (PRD compliance.md § ADC seed table, adc-001); conservative exercice-start bound — the first invoice's exact date is not in the PRD
    effective_until: null
    decision: "adc-001"
    legal_basis:
      - "CGI art. 259-1° (place of supply of B2B services = the customer)"
      - "CA3 box E2 mapping per PRD task-inventory § T10 step 1"
    source: "PRD compliance.md § ADC seed table (adc-001) + task-inventory.md § T05 step 2 and § T10 step 1"
    notes: "From 2027-09-01 these export invoices enter e-reporting scope (PRD roadmap § Milestones); they stay OUT of domestic e-invoicing scope, so the PAF remains load-bearing for them (PRD compliance.md § Obligations, PAF row)."

  # --- VAT treatment: suppliers --------------------------------------------

  - id: "supplier-fr-vat-deductible"
    title: "FR supplier invoices: VAT déductible at the invoiced rate (20 % standard)"
    category: "vat-treatment"
    statement: "Domestic French supplier invoices carry deductible French VAT at the invoiced rate - 20 % standard in practice. A rate outside the whitelist {0, 2.1, 5.5, 10, 20} without an explicit reverse-charge mention is quarantined, never defaulted."
    effective_from: "2026-01-01"   # standard-law ventilation applied since the first exercice (conservative exercice-start bound; see adc-004)
    effective_until: null
    decision: "adc-004"            # standard law operated under the regime decision — recorded as a downstream rule in adc-004 § Consequences
    legal_basis:
      - "CGI art. 271 (droit à déduction)"
      - "Rate whitelist per PRD task-inventory § T02 step 5"
    source: "PRD task-inventory.md § T03 step 2 - 'correct VAT treatment per the fiscal profile: FR 20 % déductible, intra-EU reverse charge, etc.'"

  - id: "supplier-intra-eu-reverse-charge"
    title: "Intra-EU B2B supplier invoices: reverse charge (autoliquidation)"
    category: "vat-treatment"
    statement: "Intra-EU B2B supplier invoices (e.g. Wise, BE) arrive without VAT: Arcodange self-assesses French VAT - declared as collectée AND déductible, net zero for a fully deductible business. Déductible-side CA3 mapping: lines 17+24."
    effective_from: "2026-01-01"   # same conservative exercice-start bound as supplier-fr-vat-deductible
    effective_until: null
    decision: "adc-004"            # downstream rule of the regime decision, see adc-004 § Consequences
    legal_basis:
      - "CGI art. 283-2 (autoliquidation des prestations intracommunautaires)"
      - "CA3 lines 17+24 mapping per the dolibarr-tva-deductible skill - ERP-side convention, not a PRD leaf"
    source: "PRD task-inventory.md § T03 step 2 (intra-EU reverse charge) + § T10 step 1"

  # --- Bookkeeping methods --------------------------------------------------

  - id: "fx-deltas-766-666"
    title: "FX deltas on customer wires → 766 / 666"
    category: "bookkeeping"
    statement: "Customer payments are recorded at the invoice's remaining EUR amount; any difference against the EUR actually received is booked separately as gains de change (account 766) or pertes de change (account 666). A validated invoice is never adjusted for FX - corrections stay append-only per the ledger grammar."
    effective_from: "2026-01-01"   # method applies from exercice start; formalized in the 2026-07-11 books regularization (PRD compliance.md § ADC seed table, adc-002)
    effective_until: null
    decision: "adc-002"
    legal_basis:
      - "PCG chart accounts 666 (pertes de change) / 766 (gains de change)"
      - "PRD compliance.md § The ledger grammar (append-only corrections)"
    source: "PRD compliance.md § ADC seed table (adc-002); worked examples in erp#57 (+1.08 EUR FAC004, +50.05 EUR FAC006)"

  - id: "saas-subscriptions-expensed"
    title: "AI/SaaS subscriptions expensed (6xx), never immobilized"
    category: "bookkeeping"
    statement: "AI/SaaS subscription costs are expensed to class-6 accounts in the period invoiced, never immobilized at current unit costs. If a perpetual licence or a single subscription ever materially exceeds the small-equipment tolerance, a superseding ADC is drafted before changing method."
    effective_from: "2026-01-01"   # implicit practice since the first exercice (PRD compliance.md § ADC seed table, adc-003: "implicit today")
    effective_until: null
    decision: "adc-003"
    legal_basis:
      - "PCG art. 211-1 (asset definition: control + future economic benefits)"
      - "BOI-BIC-CHG-20-30-10 (500 EUR HT small-equipment tolerance) - general doctrine, not a PRD leaf; expert-comptable confirmation requested in adc-003"
    source: "PRD compliance.md § ADC seed table (adc-003)"

  - id: "personal-card-cca-lane"
    title: "Personal-card business expenses through the compte courant d'associé (455)"
    category: "bookkeeping"
    statement: "Business expenses paid with the operator's personal card are recorded as normal supplier invoices whose payment is booked against the compte courant d'associé (account 455; Dolibarr bank account G.RADUREAU CCA, fk_account=3). That account is invisible to the bank APIs - a permanent, flagged manual lane, never silently ignored. Reimbursement is a separate human decision."
    effective_from: "2026-01-01"   # practiced since the first exercice; formalized with erp#57 (PRD compliance.md § ADC seed table, adc-005)
    effective_until: null
    decision: "adc-005"
    legal_basis:
      - "PCG account 455 (associés - comptes courants)"
    source: "PRD compliance.md § ADC seed table (adc-005) + task-inventory.md § T07 guardrail (fk_account=3 manual lane)"
