Skip to content

PDL-literal agent counts (n=1) and wholesaler passthrough #37

Description

@Hackatro

Context

Already discussed: the simulation should follow the PDL completely instead of inventing population sizes and wholesaler behaviour the PDL does not contain.

Do not implement on #33. #33 is a byte-for-byte identity refactor. This issue changes volumes and wholesaler economics. Start after #33 is merged (or after Minu explicitly unfreezes behaviour).

Vault write-up (for other agents): Projects/Work/OFFIS-PROVIDER/Tasks/pdl-literal-counts-passthrough-wholesaler.md

This reverses #33 spec §4.3 ("wholesalers are real actors") for this follow-up only. #33 itself still lands the current wholesaler until that gate is done.

Decision 1 — count = PDL entities, default 1

Today one PDL entity (brazil_farms) is instantiated as 10 Farmer agents (n_brazil_farms=10; ARG=5, US=8). That count is not in the PDL.

  • One PDL entity → one agent, unless the PDL lists more of the same agent.
  • No count field → 1.
  • Total volume will drop (Brazil ~10×). Accepted.
  • size_sigma becomes inert at n=1. Do not add a sidecar count: as a permanent substitute.

Decision 2 — wholesaler is a passthrough (Brazil split stays)

  • Wholesaler = middleman that passes volume through to its sea lane(s).
  • Argentina / US: one wholesaler → one outbound lane.
  • Brazil exception: one wholesaler, two ports (Santos + Paranaguá). Keep a share split (share_{port} / equal-split fallback).

Likely files

  • scenario.py + both CSVs — stop using invented n_{eid} population columns
  • topology.py count_attr / build_roster
  • agents/trader.py — passthrough; Brazil split only
  • agents/farmer.py — size_sigma unused at n=1
  • Re-baseline cascades; report volume/price deltas (not byte-for-byte)

Out of scope

Metadata

Metadata

Assignees

No one assigned

    Labels

    improvementFor everything that improves an already existing feature.simulation logicFor everything related to the internal simulation logic

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions