Skip to main content

Python calculator for New Markets Tax Credit (NMTC) leveraged transactions

Project description

nmtc-calc 🏗️

Python calculator for New Markets Tax Credit (NMTC) leveraged transactions.

Built for CDFI practitioners, CDEs, tax credit investors, and project sponsors who need reproducible, auditable NMTC deal math — without starting from scratch in Excel.


Why nmtc-calc?

New Markets Tax Credit transactions involve complex layered capital structures — QEIs, QLICIs, leverage loans, 7-year credit schedules, investor IRR, and net subsidy calculations. Every practitioner builds these models from scratch in Excel. nmtc-calc standardizes and automates the math.


Installation

pip install nmtc-calc

Quickstart

from nmtccalc import NMTCDeal, transaction, credits, investor, subsidy

deal = NMTCDeal(
    project_name="Southside Community Health Center",
    total_project_cost=10_000_000,
    nmtc_allocation=10_000_000,
    credit_price=0.83,
    leverage_loan_rate=0.045,
    qlici_a_loan_rate=0.045,
    qlici_b_loan_rate=0.010,
    cde_fee_rate=0.02,
    compliance_years=7,
    discount_rate=0.08,
)

transaction.structure(deal).summary()
credits.schedule(deal).summary()
investor.analyze(deal).summary()
subsidy.analyze(deal).summary()

Modules

  • transaction — QEI, NMTCs, investor equity, leverage loan, QLICI A/B split
  • credits — 7-year credit schedule (5/5/5/6/6/6/6%), PV of credits
  • investor — Investor IRR, MOIC, gross/net benefit
  • subsidy — Net subsidy to QALICB, effective cost of capital, interest savings

Key NMTC Concepts

  • QEI: Qualified Equity Investment into the CDE
  • QLICI: Qualified Low-Income Community Investment (loans to QALICB)
  • QALICB: Qualified Active Low-Income Community Business (project borrower)
  • CDE: Community Development Entity (allocatee of NMTC authority)
  • A Loan: Senior QLICI mirroring the leverage loan
  • B Loan: Subordinate QLICI, typically forgiven at year 7
  • Credit Price: dollars per dollar of NMTC benefit (typically 0.70-0.85)

Running Tests

PYTHONPATH=. pytest tests/ -v

32 tests across all modules.


Who This Is For

  • CDEs structuring NMTC allocations for projects
  • Tax credit investors evaluating deal economics
  • Project sponsors understanding subsidy and cost of capital
  • CDFI analysts modeling NMTC transactions in IC memos

License

MIT 2026 Jaypatel1511

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nmtc_calc-0.2.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nmtc_calc-0.2.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file nmtc_calc-0.2.0.tar.gz.

File metadata

  • Download URL: nmtc_calc-0.2.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.12

File hashes

Hashes for nmtc_calc-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cdfee0bf9f11a7bcb1482dd77af19b49541c098fc4095df9fa8b7de4e3adc2de
MD5 af28ce3aa59920c84c9824e9ccb68ec1
BLAKE2b-256 478470dd3d203155a698ab01ca9aa8e97e3224c0807df1a7d07311271d7791a7

See more details on using hashes here.

File details

Details for the file nmtc_calc-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: nmtc_calc-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.12

File hashes

Hashes for nmtc_calc-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2956f2a826cfa6050de8c4f0a41fb8235b209091949dafe1e19b56f26a36a1a2
MD5 fb27ac1c19579bdf8f163575b8ae0d1d
BLAKE2b-256 73e91c76f4bcb4be0ffa62fc0d12047ffca3232319b81e1938b1054a68359a9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page