Skip to main content
Available on request — The Autumn Lakehouse is provisioned per customer. Contact us at hey@useautumn.com to get access.
Every object is delivered as a table named v2_3_<object>. Tables are grouped below by lane.

Type legend

Types below are engine-neutral. How each engine surfaces them:
Logical typeClickHouse
stringNullable(String)
numberNullable(Decimal(38, …))
number (epoch ms)Nullable(Decimal(38, …))
booleanNullable(Bool)
json (string)Nullable(String)
json[] (string)Array(Nullable(String))
string[]Array(Nullable(String))
timestampNullable(DateTime64)
  • Timestamps are epoch-milliseconds (number (epoch ms)), not native datetimes — convert before use. See Querying → Timestamps. The one exception is v2_3_events.timestamp, which is a real timestamp.
  • JSON columns are stored as strings — parse them with JSONExtract* (ClickHouse).

Keys

  • ⭐ marks the stable, immutable key for a table — join and filter on this.
  • 🔗 marks a stable foreign key (internal_customer_id, internal_feature_id, internal_product_id, internal_entity_id, internal_reward_id) — join to the matching internal_id.
  • External ids (customer_id, plan_id, feature_id, entity_id, id, …) are mutable — convenient for display, but don’t rely on them as stable keys. See Querying → Use internal ids.
  • org_id is your tenant id (constant across your tables); env is sandbox or production.

Catalog

Your pricing model: features, plans, plan items, rewards, and referral programs.
ColumnTypeNotes
internal_idstring⭐ stable key
feature_idstringexternal id (e.g. AI_CREDITS), mutable
org_idstringyour tenant id
envstringsandbox / production
namestring
typestringfeature type
displayjson (string)display config
configjson (string)metered / credit-system config
ColumnTypeNotes
internal_idstring⭐ stable key — one row per plan version
plan_idstringexternal id, mutable, shared across versions
org_idstringyour tenant id
envstringsandbox / production
namestring
descriptionstring
groupstring
versionnumberplan version number
add_onboolean
auto_enableboolean
archivedboolean
base_variant_idstring
created_atnumber (epoch ms)
configjson (string)
price_amountnumberbase recurring price
price_intervalstringbilling interval
price_interval_countnumber
trial_duration_lengthnumber
trial_duration_typestring
trial_card_requiredboolean
trial_on_endstring
ColumnTypeNotes
internal_idstring⭐ stable key
plan_idstringexternal plan id
internal_product_idstring🔗 → v2_3_plans.internal_id
org_idstringyour tenant id
envstringsandbox / production
feature_idstringexternal feature id
internal_feature_idstring🔗 → v2_3_features.internal_id
includednumberallowance (0 if unlimited)
unlimitedboolean
reset_intervalstringnull for boolean / continuous-use
reset_interval_countnumbernull if count is 1
has_priceboolean
price_amountnumbersingle-tier only
price_tiersjson (string)multi-tier array (null if single/fixed)
price_tier_behaviorstringgraduated / stairstep
price_intervalstring
price_interval_countnumber
price_billing_unitsnumber
price_billing_methodstringprepaid / usage_based
price_max_purchasenumberusage_limit − included
rollover_maxnumber
rollover_max_percentagenumber
rollover_expiry_duration_typestring
rollover_expiry_duration_lengthnumber
ColumnTypeNotes
internal_idstring⭐ stable key
idstringexternal id, mutable
org_idstringyour tenant id
envstringsandbox / production
namestring
typestringpercentage_discount / fixed_discount / free_product
created_atnumber (epoch ms)
discount_valuenumber
discount_duration_typestring
discount_duration_valuenumber
discount_apply_to_allboolean
discount_price_idsjson (string)string array (null for free-product)
free_product_idstringplan id (null for discount)
free_product_duration_typestring
free_product_duration_valuenumber
promo_codesjson (string)array of {code, global_max_redemption}
ColumnTypeNotes
internal_idstring⭐ stable key
idstringexternal id, mutable
org_idstringyour tenant id
envstringsandbox / production
created_atnumber (epoch ms)
reward_idstringexternal reward id
internal_reward_idstring🔗 → v2_3_rewards.internal_id
trigger_eventstringcustomer_creation / checkout
received_bystringreferrer / all
product_idsstring[]external plan ids
exclude_trialboolean
unlimited_redemptionsboolean
max_redemptionsnumber

Subjects

Who your plans apply to: customers and entities (sub-customers).
ColumnTypeNotes
internal_idstring⭐ stable key
customer_idstringexternal id, mutable (may be null)
org_idstringyour tenant id
envstringsandbox / production
namestring
emailstring
created_atnumber (epoch ms)
fingerprintstring
stripe_idstringStripe customer id
metadatajson (string)
send_email_receiptsboolean
billing_controlsjson (string)auto_topups, spend_limits, usage_alerts, overage_allowed
configjson (string)
processorsjson (string)stripe / vercel / revenuecat links
ColumnTypeNotes
internal_idstring⭐ stable key
idstringexternal id, mutable
org_idstringyour tenant id
envstringsandbox / production
customer_idstringparent customer external id
internal_customer_idstring🔗 → v2_3_customers.internal_id
feature_idstringentity feature scope (external)
namestring
created_atnumber (epoch ms)
deletedboolean
billing_controlsjson (string)spend_limits, usage_alerts, overage_allowed

States

Active customer–product relationships: recurring subscriptions and one-off purchases.
ColumnTypeNotes
internal_idstring⭐ stable key
idstringexternal id, mutable
customer_idstringexternal customer id
internal_customer_idstring🔗 → v2_3_customers.internal_id
org_idstringyour tenant id
envstringsandbox / production
plan_idstringexternal plan id
internal_product_idstring🔗 → v2_3_plans.internal_id
add_onboolean
auto_enableboolean
statusstringactive / scheduled
past_dueboolean
canceled_atnumber (epoch ms)null if not canceled
expires_atnumber (epoch ms)null if no expiry
trial_ends_atnumber (epoch ms)null if no trial
started_atnumber (epoch ms)
quantitynumber
current_period_startnumber (epoch ms)null if none
current_period_endnumber (epoch ms)null if none
entity_idstringexternal entity id (null = customer-scoped)
internal_entity_idstring🔗 → v2_3_entities.internal_id (null = customer-scoped)
ColumnTypeNotes
internal_idstring⭐ stable key
idstringexternal id, mutable
customer_idstringexternal customer id
internal_customer_idstring🔗 → v2_3_customers.internal_id
org_idstringyour tenant id
envstringsandbox / production
plan_idstringexternal plan id
internal_product_idstring🔗 → v2_3_plans.internal_id
expires_atnumber (epoch ms)null if no expiry
started_atnumber (epoch ms)
quantitynumber
entity_idstringexternal entity id (null = customer-scoped)
internal_entity_idstring🔗 → v2_3_entities.internal_id (null = customer-scoped)

Balances

Feature balances, their per-entitlement breakdowns, and boolean feature flags.
Balances, breakdowns, and flags carry both pooled (customer-level) rows — where entity_id is null — and per-entity rows. Filter on entity_id IS NULL for customer-level totals to avoid double counting. See Querying → Pooled vs per-entity.
ColumnTypeNotes
internal_customer_idstring⭐🔗 part of key → v2_3_customers.internal_id
internal_feature_idstring⭐🔗 part of key → v2_3_features.internal_id
entity_idstring⭐ part of key (null = pooled)
customer_idstringexternal customer id
feature_idstringexternal feature id
internal_entity_idstring🔗 → v2_3_entities.internal_id (null = pooled)
org_idstringyour tenant id
envstringsandbox / production
unlimitedboolean
grantednumbertotal granted (incl. rollover)
remainingnumbertotal remaining (incl. rollover)
usagenumbertotal usage
overage_allowedboolean
max_purchasenumbernull if unbounded
reset_intervalstringsingle interval or multiple
reset_interval_countnumbernull if multiple or count 1
reset_resets_atnumber (epoch ms)earliest reset across entitlements
next_reset_atnumber (epoch ms)earliest next reset
ColumnTypeNotes
internal_idstring⭐ part of key (customer_entitlement id)
entity_idstring⭐ part of key (null = pooled)
idstringexternal id, mutable
customer_idstringexternal customer id
internal_customer_idstring🔗 → v2_3_customers.internal_id
internal_entity_idstring🔗 → v2_3_entities.internal_id (null = pooled)
feature_idstringexternal feature id
internal_feature_idstring🔗 → v2_3_features.internal_id
plan_idstringexternal plan id
internal_product_idstring🔗 → v2_3_plans.internal_id
included_grantnumberallowance grant
prepaid_grantnumberprepaid grant
remainingnumber
usagenumber
unlimitedboolean
reset_intervalstringnull for continuous-use
reset_interval_countnumbernull if count 1
reset_resets_atnumber (epoch ms)next reset
price_amountnumbersingle-tier only
price_billing_methodstringprepaid / usage_based
price_billing_unitsnumberdefault 1
price_max_purchasenumber
price_tier_behaviorstringgraduated / stairstep (multi-tier)
price_tiersjson (string)multi-tier array
expires_atnumber (epoch ms)null if no expiry
org_idstringyour tenant id
envstringsandbox / production
ColumnTypeNotes
internal_idstring⭐ part of key
entity_idstring⭐ part of key (null = pooled)
idstringexternal id, mutable
customer_idstringexternal customer id
internal_customer_idstring🔗 → v2_3_customers.internal_id
internal_entity_idstring🔗 → v2_3_entities.internal_id (null = pooled)
feature_idstringexternal feature id
internal_feature_idstring🔗 → v2_3_features.internal_id
plan_idstringexternal plan id
internal_product_idstring🔗 → v2_3_plans.internal_id
expires_atnumber (epoch ms)null if no expiry
org_idstringyour tenant id
envstringsandbox / production

Invoices

Invoices and their line items.
ColumnTypeNotes
idstring⭐ stable key (invoice id)
org_idstringyour tenant id
envstringsandbox / production
customer_idstringexternal customer id
internal_customer_idstring🔗 → v2_3_customers.internal_id
entity_idstringexternal entity id (null = customer-scoped)
internal_entity_idstring🔗 → v2_3_entities.internal_id (null = customer-scoped)
plan_idsstring[]external plan ids
internal_product_idsstring[]🔗 → v2_3_plans.internal_id
stripe_idstringStripe invoice id
processor_typestringstripe / …
statusstringpaid / open / void / draft
totalnumberinvoice total
amount_paidnumber
refunded_amountnumber
currencystringISO 4217 code
created_atnumber (epoch ms)
hosted_invoice_urlstringraw Stripe URL
discountsjson[] (string)array of discount objects
ColumnTypeNotes
idstring⭐ stable key (line item id)
org_idstringyour tenant id
envstringsandbox / production
invoice_idstring🔗 → v2_3_invoices.id
customer_idstringexternal customer id
descriptionstring
period_startnumber (epoch ms)
period_endnumber (epoch ms)
feature_idstringexternal feature id (null for non-feature lines)
internal_feature_idstring🔗 → v2_3_features.internal_id
feature_namestringresolved feature name
plan_idstringexternal plan id
internal_product_idstring🔗 → v2_3_plans.internal_id
amountnumberpre-discount
amount_after_discountsnumber
currencystringISO 4217 code
directionstringcharge / refund
billing_timingstringin_advance / in_arrear
proratedboolean
discountsjson[] (string)array of discount objects

Events

The append-only usage event log. This is the highest-volume table and is append-only (no updates).
ColumnTypeNotes
idstring⭐ stable key (event id)
org_idstringyour tenant id
org_slugstring
internal_customer_idstring🔗 → v2_3_customers.internal_id
envstringsandbox / production
created_atnumber (epoch ms)when Autumn recorded the event
timestamptimestampevent time — a real timestamp, use directly
event_namestring
idempotency_keystring
valuenumber
entity_idstringexternal entity id (null = customer-scoped)
internal_entity_idstring🔗 → v2_3_entities.internal_id
internal_product_idstring🔗 → v2_3_plans.internal_id
customer_idstringexternal customer id
propertiesjson (string)event properties (e.g. subtype, model)
deductionsjson (string)per-feature deductions for this event
Unlike every other table, v2_3_events.timestamp is a native timestamp — no epoch-ms conversion needed. created_at is still epoch-ms.