  Stock and flow diagrams are widely used in epidemiology to model the dynamics
of populations. Although tools already exist for building these diagrams and
simulating the systems they describe, we have created a new package called
StockFlow, part of the AlgebraicJulia ecosystem, which uses ideas from category
theory to overcome notable limitations of existing software. Compositionality
is provided by the theory of decorated cospans: stock and flow diagrams can be
composed to form larger ones in an intuitive way formalized by the operad of
undirected wiring diagrams. Our approach also cleanly separates the syntax of
stock and flow diagrams from the semantics they can be assigned. We consider
semantics in ordinary differential equations, although others are possible. As
an example, we explain code in StockFlow that implements a simplified version
of a COVID-19 model used in Canada.
