Skip to content
This repository was archived by the owner on Mar 12, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ val scala3Version = "3.8.2"
lazy val root = project
.in(file("."))
.settings(
name := "sfc-abm-core",
organization := "com.boombustgroup",
name := "amor-fati",
version := "0.2.0",
scalaVersion := scala3Version,
scalacOptions ++= Seq(
Expand All @@ -15,9 +16,9 @@ lazy val root = project
"-Wunused:all",
"-Wconf:msg=Alphanumeric method.*is not declared infix:s",
),
Compile / mainClass := Some("sfc.sfcMonteCarlo"),
assembly / mainClass := Some("sfc.sfcMonteCarlo"),
assembly / assemblyJarName := "sfc-abm.jar",
Compile / mainClass := Some("com.boombustgroup.amorfati.sfcMonteCarlo"),
assembly / mainClass := Some("com.boombustgroup.amorfati.sfcMonteCarlo"),
assembly / assemblyJarName := "amor-fati.jar",
// Disable parallel test execution: production code uses global scala.util.Random,
// so concurrent suites would cause non-deterministic interleaving (breaks reproducibility test)
Test / parallelExecution := false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package sfc
package com.boombustgroup.amorfati

import sfc.config.SimParams
import sfc.montecarlo.{McRunConfig, McRunner}
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.montecarlo.{McRunConfig, McRunner}

// $COVERAGE-OFF$ entry point only
@main def sfcMonteCarlo(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package sfc.accounting
package com.boombustgroup.amorfati.accounting

import sfc.agents.{Firm, Household}
import sfc.engine.World
import sfc.config.SimParams
import sfc.types.*
import sfc.util.KahanSum.*
import com.boombustgroup.amorfati.agents.{Firm, Household}
import com.boombustgroup.amorfati.engine.World
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.types.*
import com.boombustgroup.amorfati.util.KahanSum.*

/** Stock-flow consistent (SFC) accounting framework for the simulation.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package sfc.agents
package com.boombustgroup.amorfati.agents

import sfc.config.SimParams
import sfc.engine.mechanisms.{Macroprudential, YieldCurve}
import sfc.types.*
import sfc.util.KahanSum.*
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.engine.mechanisms.{Macroprudential, YieldCurve}
import com.boombustgroup.amorfati.types.*
import com.boombustgroup.amorfati.util.KahanSum.*

import scala.util.Random

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package sfc.agents
package com.boombustgroup.amorfati.agents

import sfc.config.SimParams
import sfc.engine.World
import sfc.types.*
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.engine.World
import com.boombustgroup.amorfati.types.*

import scala.util.Random

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package sfc.agents

import sfc.config.*
import sfc.engine.World
import sfc.engine.mechanisms.SectoralMobility
import sfc.networks.Network
import sfc.types.*
import sfc.util.Distributions
import sfc.util.KahanSum.*
package com.boombustgroup.amorfati.agents

import com.boombustgroup.amorfati.config.*
import com.boombustgroup.amorfati.engine.World
import com.boombustgroup.amorfati.engine.mechanisms.SectoralMobility
import com.boombustgroup.amorfati.networks.Network
import com.boombustgroup.amorfati.types.*
import com.boombustgroup.amorfati.util.Distributions
import com.boombustgroup.amorfati.util.KahanSum.*

import scala.util.Random

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package sfc.agents
package com.boombustgroup.amorfati.agents

import sfc.config.SimParams
import sfc.types.*
import sfc.util.Distributions
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.types.*
import com.boombustgroup.amorfati.util.Distributions

import scala.util.Random

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package sfc.agents
package com.boombustgroup.amorfati.agents

import sfc.config.SimParams
import sfc.types.*
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.types.*

/** Insurance sector: life + non-life reserves, three-asset allocation (gov
* bonds, corp bonds, equities). KNF 2024 calibration.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package sfc.agents
package com.boombustgroup.amorfati.agents

import sfc.config.SimParams
import sfc.types.*
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.types.*

/** Local government (JST / samorządy). JST receives PIT/CIT shares, property
* tax, subventions/dotacje. JST deposits sit in commercial banks.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package sfc.agents
package com.boombustgroup.amorfati.agents

import sfc.config.SimParams
import sfc.types.*
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.types.*

/** Shadow Banking / NBFI: TFI investment funds + NBFI credit (leasing +
* fintech).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package sfc.agents
package com.boombustgroup.amorfati.agents

import sfc.config.SimParams
import sfc.types.*
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.types.*

/** National Bank of Poland: Taylor rule, bond yield, QE, FX intervention. */
object Nbp:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Each agent is an `object` with a nested `case class State`and pure functions
that transform state. No mutable fields — state transitions produce new immutable instances.

All agents that modify monetary stocks participate in the 14-identity
SFC accounting check (see `sfc.accounting.Sfc`).
SFC accounting check (see `com.boombustgroup.amorfati.accounting.Sfc`).

## Agents

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package sfc.agents
package com.boombustgroup.amorfati.agents

import sfc.config.SimParams
import sfc.types.*
import com.boombustgroup.amorfati.config.SimParams
import com.boombustgroup.amorfati.types.*

/** Social security and demographics: ZUS/FUS, PPK, demographics, BGK. */
object SocialSecurity:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Commercial banking system: balance sheets, credit risk, LCR/NSFR,
* macroprudential, and KNF/BFG supervision.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Physical capital and inventory accumulation at the firm level.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Energy costs and climate policy: EU ETS carbon pricing, green capital
* investment, and decarbonization.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Corporate bond market (Catalyst): issuance, buyer composition, and default
* recovery.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** GPW (Warsaw Stock Exchange) equity market: index, issuance, household
* equity, and dividends.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Foreign Direct Investment composition: per-sector foreign ownership, profit
* outflows, and M&A.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package sfc.config
package com.boombustgroup.amorfati.config

/** Mechanism toggles for 49 model features.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Firm-level production, automation, entry, and digitalization parameters.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Government fiscal policy: taxation, spending, transfers, bond market, and
* local government (JST).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Foreign exchange market: PLN/EUR base rate, trade propensities, and interest
* rate parity.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Global Value Chain integration: sectoral trade structure, ER pass-through,
* and demand shocks.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Household agent parameters: wages, consumption, savings, debt, and consumer
* credit.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Residential real estate market: prices, mortgages, wealth effects, and
* regional disaggregation.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Labor immigration: inflow dynamics, sectoral allocation, skill profile, and
* return migration.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Shadow economy and tax evasion: counter-cyclical informal sector dynamics.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Insurance sector: life and non-life reserves, asset allocation, and
* counter-cyclical claims.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Input-Output matrix for inter-sectoral intermediate demand.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.engine.mechanisms.SectoralMobility
import sfc.types.*
import com.boombustgroup.amorfati.engine.mechanisms.SectoralMobility
import com.boombustgroup.amorfati.types.*

/** Labor market: sectoral mobility, trade unions, and forward-looking
* expectations.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** NBP (National Bank of Poland) monetary policy: Taylor rule, standing
* facilities, QE, and FX intervention.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Non-bank financial institutions (NBFI): TFI investment funds and shadow
* banking credit.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Open economy: trade elasticities, import content, net foreign assets, EU
* transfers, and FDI base.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Firm size distribution strategy used to compute average workers per firm and
* gdpRatio.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package sfc.config
package com.boombustgroup.amorfati.config

import sfc.types.*
import com.boombustgroup.amorfati.types.*

/** Diaspora remittance inflows from Polish workers abroad.
*
Expand Down
Loading
Loading