Skip to main content

fcall

PyPI version PyPI downloads CI

Python package for parsing Farm Credit Administration ("FCA") Call Report data into tidy Polars DataFrames.

There is also a related R package {fcall} at https://github.com/ketchbrookanalytics/fcall.

Installation

fcall can be installed from PyPI:

# using pip
pip install fcall

# using uv
uv add fcall

Alternatively, install the development version directly from GitHub:

# using pip
pip install git+https://github.com/ketchbrookanalytics/fcall-py.git

# using uv
uv add git+https://github.com/ketchbrookanalytics/fcall-py.git

Background

FCA publishes Call Report data on a quarterly basis at https://www.fca.gov/bank-oversight/call-report-data-for-download. Ketchbrook Analytics replicates these files in a public AWS S3 bucket, which fcall interacts with via its download_data() function.

As of March 2026, this data represents a set of 72 .TXT files. These files represent 36 datasets. The files prefixed with "D_" contain metadata (the column names, data types, etc.) of the associated file containing the raw, header-less comma-separated data. For example, the file that starts with "D_INST" contains the metadata for the file that starts with "INST_".

Further, some of these datasets are structured in a way that makes data analysis difficult. In these cases, we chose to pivot the data to make it more analysis-friendly.

This package provides 3 utility functions:

  1. download_data() allows users to programmatically download (and unzip) data from a specific quarter
  2. process_data() parses the data from these unzipped .TXT files into a dict of Polars DataFrames containing the Call Report data and file metadata
  3. compare_metadata() compares two sets of Call Report data from different quarters

Usage

import fcall

# Download & unzip a quarter into a directory
fcall.download_data(
    year=2025,
    month="September",
    dest="./fcadata",
)

# Parse the .TXT files into tidy Polars DataFrames + metadata
result = fcall.process_data("./fcadata")
result["data"]["RCB"]      # a polars.DataFrame
result["metadata"]["RCB"]  # parsed schema for RCB

# Compare metadata between two quarters
fcall.download_data(
    year=2022,
    month="September",
    dest="./fcadata2",
)
fcall.compare_metadata(
    dir1="./fcadata",
    dir2="./fcadata2",
)

Database

Ketchbrook Analytics has also created a PostgreSQL database to store historical FCA Call Report data in a traditional, relational schema that aligns with the output DataFrame structure resulting from running process_data(). This database allows users to execute SQL queries to easily analyze Call Report data across multiple quarters.

Please reach out to info@ketchbrookanalytics.com if you would like access to this database.

Metadata

Release files for fcall 0.1.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 fcall 0.1.0
File Size Uploaded Provenance Actions
fcall-0.1.0.tar.gz 136.7 kB Without provenance Details for fcall-0.1.0.tar.gz

Built distribution (wheel)

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

Total release size: 153.9 kB

Release files / fcall-0.1.0.tar.gz

Download URL fcall-0.1.0.tar.gz
Size 136.7 kB
Tags Source
SHA-256 checksum
How to use checksums
dede713cf94fb213e56776227f0fdca29028f261b5e5c662d53c29d40b40319f
BLAKE2b-256 checksum
How to use checksums
b9053c9c4d733a4ed797b8a964c8d9b906bc7e597d7a2cbd7cda1d547b7786ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fcall-0.1.0-py3-none-any.whl

Download URL fcall-0.1.0-py3-none-any.whl
Size 17.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92d9ae64c60268ededba2c414d47a12e58c16f47addbff899e919e00bae8e42c
BLAKE2b-256 checksum
How to use checksums
1433585435502c7812726b4a41200850fc9454798e89ac738f95e5b8bba561ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for fcall 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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