mapping the flows: understanding alberta’s carbon economy as a system

visualizing how money, incentives, and decisions connect in carbon pricing systems

10-Jul-25

mapping the flows: understanding alberta’s carbon economy as a system

visualizing how money, incentives, and decisions connect in carbon pricing systems


How does money actually flow through a carbon pricing system?

Most discussions of carbon policy focus on the headline price per tonne. But that misses something important: carbon pricing creates an entire economy of interconnected flows. Levy payments, government funds, trading markets, corporate investments, and incentive programs all move money and signals through a complex network.

I’ve been thinking through how Alberta’s carbon economy actually works as a system. Not to argue for any particular policy position, but to understand the machinery that most people never see.

Here’s how I see that machinery working.

Layer 1: The Structural Web

The first layer shows how carbon levies, markets, government programs, and corporate investments connect to each other. Each arrow represents a flow of money, credits, or obligations:

flowchart TD
    %% Core Carbon Economy nodes
    CL["Carbon Levies<br/>$2.2B"]:::carbon
    CM["Carbon Markets<br/>Tradeable Credits"]:::carbon
    ERA["ERA+<br/>Programs/Green"]:::carbon
    CEF["Clean Energy<br/>Finance"]:::carbon
    DC["Decarbonization<br/>CAPEX $2.2B"]:::carbon
    OCE["Other Carbon<br/>Emitters"]:::carbon

    %% Government/Fiscal nodes
    TF["TIER Fund<br/>+$2.2B Revenue"]:::fiscal
    GI["Government<br/>Incentives"]:::fiscal
    GRO["General Revenue<br/>& Other"]:::fiscal

    %% Industry nodes
    P["Producers<br/>(OBPS Regime)"]:::industry
    AB["Alberta<br/>Industry"]:::industry
    OIL["Oil & Gas<br/>Firms"]:::industry
    FC["Fuel<br/>Consumers"]:::industry
    OGS["O&G<br/>Suppliers"]:::industry
    TSC["TIER Sustainability<br/>Compliance"]:::industry

    %% Flow definitions
    CL -->|"Levy Proceeds"| TF
    CM -->|"Allowance Auctions"| TF
    TF -->|"Incentives"| GI
    P -->|"Compliance Payments"| CL
    AB -->|"Allowances"| CM
    OIL -->|"Offset Credits"| CM
    OCE -->|"Trade Interaction"| CM
    GI -->|"Incentives Distributed"| OIL
    GRO -->|"Budget Allocation"| ERA
    ERA -->|"Project Funding"| DC
    DC -->|"Emissions Reduction"| P
    TF -->|"Program Funding"| CEF
    CEF -->|"Financing"| DC
    OIL -->|"Invest Capital"| DC

    %% Arrow crossing to show circular funding
    P -.->|"Emissions Create Obligation"| CL
    AB -.->|"Trading Revenue ($)"| FC
    CM -.->|"Ledger Balancing"| TF

    %% Class definitions for styling
    classDef carbon fill:#4E79A7,stroke:#19406B,stroke-width:2px,color:#fff
    classDef fiscal fill:#F28E2B,stroke:#B85E14,stroke-width:2px,color:#fff
    classDef industry fill:#76B7B2,stroke:#3F7F7A,stroke-width:2px,color:#fff

What I notice are the circular pathways: money enters as compliance payments, flows through government funds, and returns as incentives and program funding. Meanwhile, parallel flows move through carbon credit markets where companies trade allowances and offsets.

The same players appear in multiple roles: companies that pay levies can also receive incentives, sell credits, and access financing programs. The flows form loops rather than straight lines.

Layer 2: The Cash Flow Network

The second layer tracks how money moves through corporate and government accounts annually. This reveals the scale relationships between different cash flows:

flowchart LR
    %% Asset Level
    AA["AssetAgent<br/>production BOE/day<br/>emission_intensity<br/>carbon_allowances<br/>decarb_investment"]
    EMIT["Emissions<br/>tCO2e/yr"]

    %% Division Level
    DA["DivisionAgent<br/>carbon_budget<br/>cash_balance"]
    CARBON_POS["carbon position"]

    %% Market Level
    CMK["CarbonMarketAgent<br/>price $50/tCO2e<br/>tier_fund<br/>price_history"]
    PAY["Compliance Payment"]

    %% Country Level
    CAN["CanadaCountryAgent<br/>divisions list<br/>carbon_market ref<br/>run_timestep"]
    COMPLIANCE["process_compliance"]
    INCENTIVES["distribute_incentives"]

    %% Other nodes
    BEHAVIOR["behavioral_model"]
    SYNTH["synthetic_data"]
    PROV["provincial_params"]
    VALID["validate_economy"]

    %% Connections
    AA -->|"production x intensity"| EMIT
    EMIT --> DA
    AA -->|"roll up"| DA
    DA -->|"aggregate"| CARBON_POS
    CARBON_POS -->|"shortfall x price"| PAY
    DA -->|"reduce cash"| PAY
    PAY --> CMK
    CAN -->|"timestep mod 12"| COMPLIANCE
    COMPLIANCE --> CMK
    CMK -->|"if fund > 100M"| INCENTIVES
    INCENTIVES --> DA
    CAN -->|"each timestep"| BEHAVIOR
    BEHAVIOR --> AA
    SYNTH -->|"init"| AA
    PROV -->|"modify"| AA
    PROV -.->|"adjust price"| CMK
    CAN -.->|"check"| VALID

    classDef impl fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
    classDef future fill:#fff3e0,stroke:#f57c00,stroke-width:1px,stroke-dasharray:5 5
    classDef data fill:#e1f5fe,stroke:#0277bd,stroke-width:1px

    class AA,DA,CMK,CAN,EMIT,CARBON_POS,PAY,COMPLIANCE impl
    class INCENTIVES future
    class SYNTH,PROV,VALID data

This reveals something important about scale. Corporate revenue flows dwarf carbon compliance costs, which in turn are smaller than sustaining capital expenditures. Government accounts show money entering from levies and exiting through programs, while trading markets create bidirectional flows between firms and other emitters.

What becomes visible is how carbon costs fit within a much larger ecosystem of corporate cash flows. The same companies managing compliance payments are simultaneously handling revenues, capital investments, trading positions, and incentive receipts. All of these flow through their financial systems concurrently.

Layer 3: How Decisions Cascade Through Organizations

How do carbon price signals actually influence corporate behavior? I think it happens through multiple organizational levels, each with different information, constraints, and objectives:

flowchart LR
    Asset[Asset Level<br/>900 units<br/>Daily operations<br/>Track emissions]

    Division[Division Level<br/>Oil Sands<br/>Conventional<br/>Manage portfolio]

    Company[Company Level<br/>Total position<br/>Trading<br/>Capital]

    Market[Carbon Market<br/>50 to 170 CAD<br/>Quarterly<br/>Banking]

    Govt[Government<br/>2.2B CAD fund<br/>Compliance<br/>Incentives]

    Incentive[Incentives<br/>Over 100M<br/>Quarterly<br/>Performance]

    Behavior[Decisions<br/>Price over 60<br/>Cash over 120 pct<br/>5 pct reduction]

    Asset -->|data| Division
    Division -->|rollup| Company
    Company -->|trade| Market
    Company -->|pay| Govt
    Govt -->|fund| Incentive
    Incentive -->|flow| Division
    Market -->|signal| Behavior
    Behavior -->|change| Asset

This reveals the multi-layered nature of how carbon pricing signals propagate through organizations. Asset-level operations track production, emissions, and allowances. Division-level management handles portfolios and budgets. Company-level executives handle compliance and trading. Country-level systems distribute incentives and maintain market operations.

Each level operates with different time horizons, information sets, and constraints. An individual asset’s emission intensity affects division-level carbon budgets, which influence company-level trading decisions, which feed into country-level market dynamics, which generate incentives that flow back down to individual assets.

The Variables Worth Tracking

If we wanted to model this system, these are the key variables that change over time and interact with each other:

Variable Meaning Typical Range
carbon_price(t) Effective levy per tonne 65 to 170 CAD
firm_balance(t) Cash on corporate balance sheet 100M to 200B
decarb_investment Annual CAPEX for intensity reduction 0 to 5B
incentive_rate(t) Share of TIER fund returned to firms 0 to 0.5

Notice the range spans across these variables. Carbon prices vary by more than 2x, firm balances span three orders of magnitude, and incentive rates can swing from zero to half of all collected funds. Understanding how changes in one variable ripple through the network to affect others would be the key modeling challenge.

What This Reveals

Looking at the system this way reveals that “carbon pricing” refers to a complex adaptive system rather than a simple price signal. The flows create multiple pathways for the same initial carbon levy to influence different decisions at different times.

A company might pay a carbon levy, receive it back as an incentive for a decarbonization project, trade the resulting carbon credits to another company, which uses the savings to fund their own emission reductions, generating more credits that get sold to a third company. The original levy payment ripples through multiple transactions and decisions.

The system exhibits properties that aren’t visible when looking at any single component: circular money flows, multi-level decision cascades, cross-jurisdictional arbitrage, and dynamic feedback loops between prices, costs, and investments.

Building the Model

This systems view suggests how we could build an agent-based model to understand these dynamics. Rather than assuming simple price responses, we could model:

  • Individual assets making investment decisions based on cash flow, carbon costs, and technology options
  • Division-level portfolio management and carbon budget allocation
  • Company-level compliance strategy and trading behavior
  • System-level incentive distribution and market clearing

The model would generate synthetic data to explore questions like: How do different incentive designs affect investment patterns? What happens when carbon prices rise faster than technology costs fall? How do cross-provincial differences create portfolio optimization opportunities?

Beyond Simple Price Signals

What I find interesting is that this systems perspective suggests carbon pricing works through mechanisms that are largely invisible in typical policy discussions. The effectiveness might depend less on the headline price per tonne than on how money circulates through incentive programs, how trading markets develop to reduce compliance costs, and how organizational decision-making processes translate price signals into investment choices.

The machinery is more intricate than most people realize. Understanding how these systems work (or don’t work) requires mapping these flows and observing their interactions over time.

modeling

flowchart LR
    Init[Setup<br/>900 agents<br/>Parameters<br/>Random seed]

    Agent[AssetAgent<br/>Production<br/>Intensity<br/>Allowances]

    Div[DivisionAgent<br/>Portfolio<br/>Budget<br/>Strategy]

    Mkt[Market<br/>Price 50<br/>Fund<br/>History]

    Control[Controller<br/>Timesteps<br/>Compliance<br/>Rules]

    Rules[Behavior<br/>Thresholds<br/>Triggers<br/>Updates]

    Valid[Validate<br/>Balance<br/>Conservation<br/>Bounds]

    Init -->|create| Agent
    Agent -->|belong| Div
    Div -->|trade| Mkt
    Mkt -->|managed| Control
    Control -->|apply| Rules
    Rules -->|modify| Agent
    Mkt -->|distribute| Div
    Control -->|check| Valid