Skip to main content

t3co_logo

homepage github documentation PyPI - Version GitHub License PyPI - Python Version

T3CO : Transportation Technology Total Cost of Ownership Tool

Description

This repo houses T3CO (Transportation Technology Total Cost of Ownership), software for modeling total cost of ownership for commercial vehicles with advanced powertrains.

New to 2.0? See What's New in T3CO 2.0 for a summary of EIA fuel price integration, expanded optimization algorithms, and other changes.

To get started, read the Quick Start Guide

For detailed installation instructions, read the Installation Guide

For information on the T3CO models, go to the Overview

Usage

T3CO is a general framework allowing a user to determine the total cost of ownership (TCO) of a vehicle (sometimes a FASTSim vehicle model paired with drivecycle(s) for determining fuel efficiency). The user can also determine performance of gradeability, acceleration, and range. In addition to straight TCO computation there is also the option to optimize a vehicle powertrain such that it meets performance optional targets while also optionally minimizing TCO.

Installation

T3CO is available on PyPI and as a public access GitHub repository. This gives the user two sources from where T3CO Python Package can be obtained and installed.

Installation 'Extras'

The user can choose one of three installation options or 'extras' of T3CO based on their desired tool capabilities.

  • T3CO as a pure cost estimation tool with exogenous inputs (default version t3co - requires Python>=3.9, <=3.13)
  • T3CO integrated with FASTSim for energy simulation (t3co[fastsim], requires Python>=3.9,<=3.10)
  • T3CO for developers and quality testers that includes all capabilities (t3co[dev] requires Python>=3.9,<=3.10) The different 'extras' refers to different sets of dependencies that get installed along with T3CO.

Installation Source #1: From PyPI

After creating a version-appropriate Python environment, the latest release of T3CO can be installed from PyPI using one of the following commands.

For the default option/extra:

pip install t3co

For the FASTSim-integrated 'extra':

pip install t3co[fastsim]

For the developer 'extra':

pip install t3co[dev]

Installation Source #2: Cloning the GitHub Repo

T3CO can also be installed from a clone of the GitHub repository.

First, clone the repository from GitHub from your desired directory (eg., /Users/Projects/):

git clone https://github.com/NatLabRockies/T3CO.git T3CO

This creates a git compliant folder 'T3CO' (i.e., a '/Users/Projects/T3CO' folder)

To access the t3co-2.0 branch,

git checkout t3co-2.0

From within the Python environment, navigate to the parent directory containing the T3CO repository (cd T3CO) and run one of these three installation options:

For the default option/extra:

pip install -e .

For the FASTSim-integrated 'extra':

pip install -e .[fastsim]

For the developer 'extra':

pip install -e .[dev]

Copying the Demo Input Files

The t3co.resources module folder contains all the necessary input files needed for running T3CO. To get an offline copy of this folder in your preferred directory, run:

install_t3co_demo_inputs

More information on the demo input files can be found in the Installation Guide

Running T3CO

T3CO needs three main input files (Vehicles, Scenarios, and Config) to run an analysis. The analysis settings, file paths to main and auxiliary input files, and other parameter overrides are saved as an entry on the Config file. The user is provided with 500+ Vehicle-Scenario pairs inputs and four Config sample analyses to choose from to modify parameters and/or run their first T3CO analysis. The main module for T3CO,t3co.cli.sweep, can be run using:

python -m t3co.cli.sweep --analysis-id=0 --config=<path/to/T3COConfig.csv>

Point the --config argument to the T3COConfig.csv file path (either the src/t3co/resource/T3COConfig.csv file in a repo clone or the demo_inputs/T3COConfig.csv file after copying the demo input files. This parameter defaults to the T3COConfig.csv file in the t3co.resources module) and --analysis-id to the desired config.analysis_id (either an existing row or a newly added "Analysis" row in the T3COConfig.csv file. Default = 0).

Additional information on the inputs, the Batch Mode feature, other CLI arguments, and description of T3CO results are mentioned in the Quick Start Guide

EIA Fuel Price Projections

T3CO can fetch fuel price projections directly from the EIA Annual Energy Outlook (AEO) API instead of relying on the static FuelPrices.csv file. When a US zipcode is provided in the region column of the Config file (or in the Scenario file), T3CO automatically:

  1. Discovers the latest AEO publication year available from the EIA API (e.g. AEO 2025)
  2. Identifies the reference case scenario for that year
  3. Resolves the zipcode to the corresponding US Census division (e.g. 90210 → Pacific)
  4. Fetches region-specific fuel price projections for diesel, gasoline, electricity, and CNG
  5. Falls back to FuelPrices.csv for hydrogen (not available in AEO)

To enable this feature:

  1. Register for a free API key at eia.gov/opendata/register.php
  2. Create a .env file in your project root (see .env.example):
    T3CO_EIA_API_KEY=your_api_key_here
    
  3. Set the region column in T3COConfig.csv to a US zipcode (e.g. 90210)
  4. Ensure the eia_fuel_prices toggle is enabled in cost_toggles.json (default: true)

To pin a specific AEO year instead of using the latest, set eia_aeo_year and eia_aeo_case in the Config CSV or via CLI:

python -m t3co.cli.sweep --analysis-id=5 --eia-aeo-year=2023 --eia-aeo-case=aeo2022ref

If no zipcode is provided or the toggle is disabled, T3CO uses the static FuelPrices.csv as before.

Fuel price override workflows that use --fuel-prices-json and --fuel-prices-zipcode resolve the source fuel-price region from the installed zipcodes dependency instead of repository-maintained ZIP range tables.

Acknowledgements

This tool was developed with funding support from the US Department of Energy's Office of Energy Efficiency and Renewable Energy (EERE)'s Vehicle Technology Office.

DOE NLR Software Record: SWR-21-54

To cite T3CO

Lustbader, Jason, Panneer Selvam, Harish, Bennion, Kevin, Payne, Grant, Hunter, Chad, Penev, Michael, Brooker, Aaron, Baker, Chad, Birky, Alicia, Zhang, Chen, and Carow, Kyle. "T3CO (Transportation Technology Total Cost of Ownership) Open Source [SWR-21-54]." Computer software. September 16, 2024. https://github.com/NatLabRockies/T3CO. https://doi.org/10.11578/dc.20240806.4.

Contact Us

To reach out to the NLR developer team with feedback, feature requests, or to explore partnership opportunities, please email at T3CO@nlr.gov

This tool is developed and maintained by the Commercial Vehicle Technologies (CVT) team in NLR's Center for Integrated Mobility Sciences.

Metadata

Release files for t3co 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for t3co 2.0.0
File Size Uploaded
t3co-2.0.0.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for t3co 2.0.0
File Interpreter ABI Platform
t3co-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / t3co-2.0.0.tar.gz

Download URL t3co-2.0.0.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
55c8a29134fccb7bb98e93892b6628213c258286134ebf57d393dc99029602ec
BLAKE2b-256 checksum
How to use checksums
b93d8cf7caca41ff175230ea6d476c87e4646f8abb2bafc05195613a41cbcc86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.7

Release files / t3co-2.0.0-py3-none-any.whl

Download URL t3co-2.0.0-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6bad7b2123116c83743a750029f4fa7b8e332c2d5cb55e67f67c68986c92763d
BLAKE2b-256 checksum
How to use checksums
21c24a64680b3209d0425ed540fa707a9a7043a37e9d538586395ba3c7048728
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.7

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page