This package models Stripe data from Fivetran's connector. It uses data in the format described by this ERD.
This package enables you to better understand your Stripe transactions. Its main focus is to enhance the balance transaction entries with useful fields from related tables. Additionally, the metrics tables allow you to better understand your account activity over time or at a customer level. These time-based metrics are available on a daily, weekly, monthly, and quarterly level.
This package contains transformation models, designed to work simultaneously with our Stripe source package. A dependency on the source package is declared in this package's packages.yml
file, so it will automatically download when you run dbt deps
. The primary outputs of this package are described below. Intermediate models are used to create these output models.
model | description |
---|---|
stripe__balance_transactions | Each record represents a change to your account balance, enriched with data about the transaction. |
stripe__invoice_line_items | Each record represents an invoice line item, enriched with details about the associated charge, customer, subscription, and plan. |
stripe__subscription_details | Each record represents a subscription, enriched with customer details and payment aggregations. |
stripe__subscription_line_items | Each record represents a subscription invoice line item, enriched with details about the associated charge, customer, subscription, and plan. Use this table as the starting point for your company-specific churn and MRR calculations. |
stripe__customer_overview | Each record represents a customer, enriched with metrics about their associated transactions. |
stripe__daily_overview | Each record represents a single day, enriched with metrics about balances, payments, refunds, payouts, and other transactions. |
stripe__weekly_overview | Each record represents a single week, enriched with metrics about balances, payments, refunds, payouts, and other transactions. |
stripe__monthly_overview | Each record represents a single month, enriched with metrics about balances, payments, refunds, payouts, and other transactions. |
stripe__quarterly_overview | Each record represents a single quarter, enriched with metrics about balances, payments, refunds, payouts, and other transactions. |
Check dbt Hub for the latest installation instructions, or read the docs for more information on installing packages.
By default, this package will look for your Stripe data in the stripe
schema of your target database. If this is not where your Stripe data is, please add the following configuration to your dbt_project.yml
file:
# dbt_project.yml
...
config-version: 2
vars:
stripe_source:
stripe_database: your_database_name
stripe_schema: your_schema_name
For additional configurations for the source models, please visit the Stripe source package.
This package takes into consideration that not every Stripe account utilizes the invoice
, invoice_line_item
, payment_method
, payment_method_card
, plan
, or subscription
features, and allows you to disable the corresponding functionality. By default, all variables' values are assumed to be true
. Add variables for only the tables you want to disable:
# dbt_project.yml
...
vars:
using_invoices: False #Disable if you are not using the invoice and invoice_line_item tables
using_payment_method: False #Disable if you are not using the payment_method and payment_method_card tables
using_subscriptions: False #Disable if you are not using the subscription and plan tables.
By default this package will build the Stripe staging models within a schema titled (<target_schema> + _stg_stripe
) and the Stripe final models within a schema titled (<target_schema> + _stripe
) in your target database. If this is not where you would like your modeled Stripe data to be written to, add the following configuration to your dbt_project.yml
file:
# dbt_project.yml
...
models:
stripe:
+schema: my_new_schema_name # leave blank for just the target_schema
stripe_source:
+schema: my_new_schema_name # leave blank for just the target_schema
Read more about using custom schemas in dbt here.
This packages leaves all timestamp columns in the UTC timezone. However, there are certain instances, such in the daily overview model, that timestamps have to be converted to dates. As a result, the timezone used for the timestamp becomes relevant.
By default, this package will use the UTC timezone when converting to date, but if you want to set the timezone to the time in your Stripe reports, add the following configuration to your dbt_project.yml
:
# dbt_project.yml
...
vars:
stripe_timezone: "America/New_York" # Replace with your timezone
Additional contributions to this package are very welcome! Please create issues
or open PRs against master
. Check out
this post
on the best workflow for contributing to a package.
This package has been tested on BigQuery, Snowflake, and Redshift.
- Provide feedback on our existing dbt packages or what you'd like to see next
- Have questions, feedback, or need help? Book a time during our office hours using Calendly or email us at solutions@fivetran.com
- Find all of Fivetran's pre-built dbt packages in our dbt hub
- Learn how to orchestrate dbt transformations with Fivetran
- Learn more about Fivetran overall in our docs
- Check out Fivetran's blog
- Learn more about dbt in the dbt docs
- Check out Discourse for commonly asked questions and answers
- Join the chat on Slack for live discussions and support
- Find dbt events near you
- Check out the dbt blog for the latest news on dbt's development and best practices