Skip to content

gds_business.vsm.elements

VSM element declarations — frozen Pydantic models.

Bases: BaseModel

A processing stage in the value stream.

Maps to: GDS Policy (decision logic g).

Source code in packages/gds-business/gds_business/vsm/elements.py
class ProcessStep(BaseModel, frozen=True):
    """A processing stage in the value stream.

    Maps to: GDS Policy (decision logic g).
    """

    name: str
    cycle_time: float = Field(description="Time to process one unit")
    changeover_time: float = 0.0
    uptime: float = Field(default=1.0, ge=0.0, le=1.0)
    batch_size: int = 1
    operators: int = 1
    description: str = ""

Bases: BaseModel

A WIP buffer between processing stages.

Maps to: GDS Mechanism (state update f) + Entity (buffer state X).

Source code in packages/gds-business/gds_business/vsm/elements.py
class InventoryBuffer(BaseModel, frozen=True):
    """A WIP buffer between processing stages.

    Maps to: GDS Mechanism (state update f) + Entity (buffer state X).
    """

    name: str
    quantity: float = 0.0
    between: tuple[str, str] = Field(
        description="(upstream_step, downstream_step) this buffer sits between"
    )
    description: str = ""

Bases: BaseModel

An external material source.

Maps to: GDS BoundaryAction (exogenous input U).

Source code in packages/gds-business/gds_business/vsm/elements.py
class Supplier(BaseModel, frozen=True):
    """An external material source.

    Maps to: GDS BoundaryAction (exogenous input U).
    """

    name: str
    description: str = ""

Bases: BaseModel

An external demand sink.

Maps to: GDS BoundaryAction (exogenous input U).

Source code in packages/gds-business/gds_business/vsm/elements.py
class Customer(BaseModel, frozen=True):
    """An external demand sink.

    Maps to: GDS BoundaryAction (exogenous input U).
    """

    name: str
    takt_time: float = Field(description="Required pace of production")
    description: str = ""

Bases: BaseModel

A material movement between elements.

Maps to: GDS Wiring.

Source code in packages/gds-business/gds_business/vsm/elements.py
class MaterialFlow(BaseModel, frozen=True):
    """A material movement between elements.

    Maps to: GDS Wiring.
    """

    source: str
    target: str
    flow_type: Literal["push", "pull"] = "push"

Bases: BaseModel

A signal or kanban flow between elements.

Maps to: GDS Wiring (signal channel).

Source code in packages/gds-business/gds_business/vsm/elements.py
class InformationFlow(BaseModel, frozen=True):
    """A signal or kanban flow between elements.

    Maps to: GDS Wiring (signal channel).
    """

    source: str
    target: str