Skip to content

The run rate movement object

A run rate movement is one change to what a subscription item is worth: a new customer, an expansion, a contraction, a churn or a reactivation. The metrics report’s revenue values add up from these, and a customer’s rows that share a counts_at make up one movement.

Attributes

  • objectstring

    The object’s type, always run_rate_movement.

    Always run_rate_movement

  • arrdecimal string

    What the item counts for a year after the change: mrr times twelve.

  • counts_attimestamp

    When it counts on a chart. Earlier than occurred_at when the project’s collapse window folded this change into one made shortly before it. A customer’s rows sharing a counts_at are one movement.

  • currency_codestring

    The currency the customer is billed in, by ISO 4217 code.

  • customerobject

    Whose revenue moved, as a record — expand it to get them on each row. Expandable.

    Show 20 child attributes
    • idstring (UUID)

      The customer’s Summerbase id. Anywhere a customer is addressed, one of its identities works too.

    • objectstring

      The object’s type, always customer.

      Always customer

    • arrdecimal string

      What this customer is worth a year, in the project’s reporting currency, at today’s rate: mrr, rounded to the cent, times twelve.

    • churned_attimestamp

      When the current churn began — the instant status became churned. Null while the customer is trialing or active, and cleared when they come back.

    • countryobject

      The country the customer is billed in. Expandable.

      Show 3 child attributes
      • objectstring

        The object’s type, always country.

        Always country

      • codestring

        Its ISO 3166-1 alpha-2 code: US, DK.

      • namestring

        What it is called, in English: United States, Denmark.

    • country_codestring

      The country the customer is billed in, by its ISO 3166-1 alpha-2 code — the country_code property, resolved the same way as name, from the highest-priority source whose value is a country’s code. Expand country for its name.

    • created_attimestamp

      When Summerbase first recorded the customer.

    • emailstring

      The customer’s address, resolved the same way as name.

    • erasuresarray of objects

      Every erasure of their personal data, oldest first. Expandable.

      Show 10 child attributes
      • idstring (UUID)

        The erasure’s unique identifier.

      • objectstring

        The object’s type, always customer_erasure.

        Always customer_erasure

      • completed_attimestamp

        When every copy Summerbase keeps had been removed too, or empty while that is still to happen — within a day of requested_at.

      • customerobject

        The customer whose data was erased. Expandable.

      • customer_idstring (UUID)

        The customer whose data was erased.

      • erased_identity_sourcesarray of strings

        The slug of the source each erased identity came from, one entry per identity. The identities themselves are not kept.

      • erased_propertiesarray of strings

        Each property erased, as record.properties.source.key. A property is listed once however many values it held.

      • requested_attimestamp

        When the erasure was asked for. Erased values were gone from every answer moments after.

      • requested_byobject

        Who asked for the erasure, when a person did. Empty when an API key did. Expandable.

      • requested_by_idstring (UUID)

        Who asked for the erasure, when a person did. Empty when an API key did.

    • first_paying_attimestamp

      The first instant this customer had revenue — when status first became paying, and what cohort analysis groups by. Set once and kept through churn and reactivation. Which month it falls in depends on the timezone being reported in.

    • first_seen_attimestamp

      The earliest instant anything was asserted about this customer, their subscriptions or their items — the first thing we were told. Set once.

    • first_subscribed_attimestamp

      The first instant one of this customer’s subscriptions was live, free or paying — when status first became one of the two. Set once and kept through churn.

    • identitiesarray of strings

      What each source calls this customer, as source:id. Any entry addresses it — stripe:cus_123.

    • mrrdecimal string

      What this customer is worth a month, in the project’s reporting currency, at today’s rate, rounded to the cent.

      Every kind of revenue counts, each change converted from the currency it was billed in, so this amount moves when a rate does and when the project’s reporting currency changes. The same amount a filter on customer.mrr compares and a list sorted by mrr orders by.

    • namestring

      What the customer is called — the name property, resolved to the highest-priority source that has one. Write properties.name to change it.

    • propertiesobject

      Your source’s properties on this customer, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

    • properties_by_sourceobject

      Every source’s properties on this customer, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

    • signed_up_attimestamp

      When the customer signed up for the product — the signed_up_at property, resolved the same way as name. Write properties.signed_up_at to set it; a billing provider’s source writes the moment it first saw the customer, and a project’s own source outranks it. A customer who has signed up and never subscribed is trialing.

    • statusenum

      Where the customer stands with us, derived from what is live now: paying, free, churned, trialing or lead. A subscription is live while its status is active; paying and free are told apart by mrr, so paying means on a paid plan, whether or not an invoice has been settled. A customer with nothing live who has subscribed before is churned; one on a trial, or who has signed up and never subscribed, is trialing; anyone else is a lead. A change undone inside the project’s collapse window never happened to the status either.

      One of paying, free, churned, trialing, lead

    • subscriptionsarray of objects

      Everything they are subscribed to, from every source. Expandable.

      Show 22 child attributes
      • idstring (UUID)

        The subscription’s Summerbase id. Anywhere a subscription is addressed, one of its identities works too.

      • objectstring

        The object’s type, always subscription.

        Always subscription

      • annual_amountdecimal string

        What this subscription is worth a year, in currency_code: monthly_amount times twelve.

      • billing_amountsarray of objects

        What this subscription comes to each time it bills: the items still on it, their net_amount summed per billing interval, longest interval first. One entry for nearly every subscription; one per interval for a subscription whose items bill on different ones, such as a yearly fee beside a monthly one. Its price whatever its status — a trial still has one. monthly_amount is what it is worth on one footing.

      • cancels_attimestamp

        A cancellation already booked. It is still in service until then, and the source says so with status: canceled when it stops.

      • currencyobject

        The currency it bills in. Expandable.

      • currency_codestring

        The currency it bills in, by its ISO 4217 code.

      • current_period_ends_attimestamp

        When the current billing period ends. The next charge is due then, unless a cancellation is booked for it.

      • customerobject

        The customer who is subscribed. Expandable.

      • customer_idstring (UUID)

        The customer who is subscribed.

      • ended_attimestamp

        When service stopped, beside status: canceled. Clear it, with status back to active, to resume a subscription; the same id may be brought back as often as the source does so.

      • identitiesarray of strings

        What each source calls this subscription, as source:id. Any entry addresses it — stripe:cus_123.

      • itemsarray of objects

        The items it is made of, and where the money is. Expandable.

      • monthly_amountdecimal string

        What this subscription is worth a month, in currency_code, after the items’ discounts — derived, not reported. The sum of what its items are worth; zero while it is on trial, paused or ended, and zero on a free plan. A customer’s mrr is these summed across their subscriptions, in the reporting currency.

      • owner_sourceobject

        The source this subscription lives in — the only one that may write its own fields. Any source may attach properties and identities to it. Expandable.

      • owner_source_idstring (UUID)

        The source this subscription lives in — the only one that may write its own fields. Any source may attach properties and identities to it.

      • propertiesobject

        Your source’s properties on this subscription, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

      • properties_by_sourceobject

        Every source’s properties on this subscription, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

      • recorded_attimestamp

        When Summerbase first recorded it. Never set by a caller.

      • started_attimestamp

        When the subscription began — derived, not reported.

        It is the earliest instant anything was asserted about the subscription or its items. A source cannot say it began earlier than it described it: send the earliest write with effective_at at the real start instead, which is what an import of history does anyway.

        It moves earlier when a later write describes an earlier moment.

      • statusenum

        Where it is in its life. Not whether it has been paid for.

        One of pending, trialing, active, paused, canceled

      • trial_ends_attimestamp

        When the trial ends, or ended. A subscription that trials starts trialing, so when it began is started_at and its status history.

  • customer_idstring (UUID)

    Whose revenue moved.

  • deltadecimal string

    What this change moved the item’s revenue run rate by.

  • movement_typeenum

    What the movement did to the customer’s run rate, shared by every row of it.

    One of new, reactivation, expansion, contraction, churn, no_change

  • mrrdecimal string

    What the item counts for a month after the change.

  • occurred_attimestamp

    When the change happened.

  • planobject

    The plan the item is on after the change, if any — expand it to get it. Expandable.

    Show 10 child attributes
    • idstring (UUID)

      The plan’s Summerbase id. Anywhere a plan is addressed, one of its identities works too.

    • objectstring

      The object’s type, always plan.

      Always plan

    • archivedboolean

      Whether the plan has stopped being offered — the archived property, resolved to the highest-priority source that says one; Stripe says it of a product it has archived. Write properties.archived to change it. Existing subscriptions keep the plan: what somebody paid for last year does not stop being true when you withdraw it.

    • created_attimestamp

      When the plan was first seen.

    • identitiesarray of strings

      What each source calls this plan, as source:id. Any entry addresses it — stripe:cus_123.

    • namestring

      What the plan is called in a filter, a legend or a breakdown — the name property, resolved to the highest-priority source that has one. Write properties.name to change it. Null when no source names it.

    • price_countinteger

      How many prices are on this plan.

    • pricesarray of objects

      The prices on this plan, in every source. Expandable.

      Show 17 child attributes
      • idstring (UUID)

        The price’s Summerbase id. Anywhere a price is addressed, one of its identities works too.

      • objectstring

        The object’s type, always price.

        Always price

      • archivedboolean

        Whether the price has stopped being offered. Existing subscriptions keep it — what somebody paid for last year does not stop being true when you withdraw the price.

      • created_attimestamp

        When the price was first seen.

      • currency_codestring

        The currency it is listed in, by its ISO 4217 code.

      • identitiesarray of strings

        What each source calls this price, as source:id. Any entry addresses it — stripe:cus_123.

      • intervalenum

        The unit it bills in. None for a price charged once.

        One of day, week, month, year

      • interval_countinteger

        How many intervals between charges.

      • namestring

        What the price is called in the source it lives in, when it has a name of its own there — a Stripe price’s nickname. Most have none, and are told apart by their terms.

      • owner_sourceobject

        The source the price came from. Expandable.

      • owner_source_idstring (UUID)

        The source the price came from.

      • planobject

        The plan the price is on. Expandable.

      • plan_idstring (UUID)

        The plan the price is on.

      • pricing_modelenum

        How an item’s unit amount is arrived at on this price.

        One of fixed, tiered, metered

      • propertiesobject

        Your source’s properties on this price, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

      • properties_by_sourceobject

        Every source’s properties on this price, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

      • unit_amountdecimal string

        What one unit is listed at per interval: for a metered price, one unit of usage. None for a tiered one, whose units cost what their tier says. Excludes tax.

    • propertiesobject

      Your source’s properties on this plan, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

    • properties_by_sourceobject

      Every source’s properties on this plan, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

  • plan_idstring (UUID)

    The plan its price is on, if any. Null when the item went away.

  • previous_arrdecimal string

    And what it counted for a year before: previous_mrr times twelve.

  • previous_mrrdecimal string

    And what it counted for before.

  • previous_planobject

    The plan it was on before, if any — expand it to get it. Expandable.

    Show 10 child attributes
    • idstring (UUID)

      The plan’s Summerbase id. Anywhere a plan is addressed, one of its identities works too.

    • objectstring

      The object’s type, always plan.

      Always plan

    • archivedboolean

      Whether the plan has stopped being offered — the archived property, resolved to the highest-priority source that says one; Stripe says it of a product it has archived. Write properties.archived to change it. Existing subscriptions keep the plan: what somebody paid for last year does not stop being true when you withdraw it.

    • created_attimestamp

      When the plan was first seen.

    • identitiesarray of strings

      What each source calls this plan, as source:id. Any entry addresses it — stripe:cus_123.

    • namestring

      What the plan is called in a filter, a legend or a breakdown — the name property, resolved to the highest-priority source that has one. Write properties.name to change it. Null when no source names it.

    • price_countinteger

      How many prices are on this plan.

    • pricesarray of objects

      The prices on this plan, in every source. Expandable.

      Show 17 child attributes
      • idstring (UUID)

        The price’s Summerbase id. Anywhere a price is addressed, one of its identities works too.

      • objectstring

        The object’s type, always price.

        Always price

      • archivedboolean

        Whether the price has stopped being offered. Existing subscriptions keep it — what somebody paid for last year does not stop being true when you withdraw the price.

      • created_attimestamp

        When the price was first seen.

      • currency_codestring

        The currency it is listed in, by its ISO 4217 code.

      • identitiesarray of strings

        What each source calls this price, as source:id. Any entry addresses it — stripe:cus_123.

      • intervalenum

        The unit it bills in. None for a price charged once.

        One of day, week, month, year

      • interval_countinteger

        How many intervals between charges.

      • namestring

        What the price is called in the source it lives in, when it has a name of its own there — a Stripe price’s nickname. Most have none, and are told apart by their terms.

      • owner_sourceobject

        The source the price came from. Expandable.

      • owner_source_idstring (UUID)

        The source the price came from.

      • planobject

        The plan the price is on. Expandable.

      • plan_idstring (UUID)

        The plan the price is on.

      • pricing_modelenum

        How an item’s unit amount is arrived at on this price.

        One of fixed, tiered, metered

      • propertiesobject

        Your source’s properties on this price, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

      • properties_by_sourceobject

        Every source’s properties on this price, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

      • unit_amountdecimal string

        What one unit is listed at per interval: for a metered price, one unit of usage. None for a tiered one, whose units cost what their tier says. Excludes tax.

    • propertiesobject

      Your source’s properties on this plan, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

    • properties_by_sourceobject

      Every source’s properties on this plan, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

  • previous_plan_idstring (UUID)

    The plan its previous price is on, if any. Null when the item is new.

  • previous_priceobject

    The price it was on before, if any — expand it to get it. Expandable.

    Show 17 child attributes
    • idstring (UUID)

      The price’s Summerbase id. Anywhere a price is addressed, one of its identities works too.

    • objectstring

      The object’s type, always price.

      Always price

    • archivedboolean

      Whether the price has stopped being offered. Existing subscriptions keep it — what somebody paid for last year does not stop being true when you withdraw the price.

    • created_attimestamp

      When the price was first seen.

    • currency_codestring

      The currency it is listed in, by its ISO 4217 code.

    • identitiesarray of strings

      What each source calls this price, as source:id. Any entry addresses it — stripe:cus_123.

    • intervalenum

      The unit it bills in. None for a price charged once.

      One of day, week, month, year

    • interval_countinteger

      How many intervals between charges.

    • namestring

      What the price is called in the source it lives in, when it has a name of its own there — a Stripe price’s nickname. Most have none, and are told apart by their terms.

    • owner_sourceobject

      The source the price came from. Expandable.

      Show 18 child attributes
      • idstring (UUID)

        The source’s unique identifier. Records are identified by its slug.

      • objectstring

        The object’s type, always source.

        Always source

      • connected_attimestamp

        When a provider source was given its credential, or empty: a provider source that has not been connected yet or has been disconnected, and every source that is not a provider’s.

      • created_attimestamp

        When the source was added.

      • import_failed_attimestamp

        When the last import gave up, or empty when none has since the last one succeeded. The source’s log says why.

      • import_progressdecimal string

        How far the running import has got, from 0 to 1, or empty while it does not know yet.

      • import_started_attimestamp

        When the import now running began, or empty when none is. Every metric that reads this source’s records is incomplete until it ends.

      • import_stepstring

        What the running import is doing, in a sentence: Importing customers, 1,240 of 8,100.

      • imported_attimestamp

        When the last import finished, or empty when none has.

      • namestring

        What the source is called, for people reading a screen.

      • priorityinteger

        Where this source sits when resolving name and email. Lower wins, and the project’s own source starts at the top so a manual correction outranks a provider sync. It orders nothing else — every other property is namespaced by source and never arbitrated.

      • project_idstring (UUID)

        The project the source belongs to.

      • provider_account_idstring

        The provider’s own id for the account the source is connected to: acct_… for Stripe. Kept through a disconnect, so that connecting again is checked against it.

      • provider_codeenum

        The code of the system the source pulls from. custom is a source you write to yourself, and the only one that accepts writes; stripe is connected with connect_stripe and fetches for itself.

        One of custom, stripe, summerbase

      • sandboxboolean

        Whether the connection is to the provider’s test mode rather than a live account; empty while nothing is connected.

      • slugstring

        How this source’s records are identified — the stripe in stripe:cus_123. Lowercase letters, digits, hyphens and underscores; unique within the project and fixed once the source exists, because integrations hard-code it. A reference shaped like an id is read as one, so a slug may not look like a UUID.

      • webhook_installed_attimestamp

        When the provider’s webhook was installed for this source — by the connection, or by hand and registered with register_stripe_webhook — or empty: nothing is connected, or the source is connected without a webhook and its changes arrive with the hourly reconcile.

      • webhook_urlstring

        Where the provider posts this source’s events: the address of the endpoint a connection installs, and of one to install by hand. Empty for a source whose provider posts no webhooks.

    • owner_source_idstring (UUID)

      The source the price came from.

    • planobject

      The plan the price is on. Expandable.

      Show 10 child attributes
      • idstring (UUID)

        The plan’s Summerbase id. Anywhere a plan is addressed, one of its identities works too.

      • objectstring

        The object’s type, always plan.

        Always plan

      • archivedboolean

        Whether the plan has stopped being offered — the archived property, resolved to the highest-priority source that says one; Stripe says it of a product it has archived. Write properties.archived to change it. Existing subscriptions keep the plan: what somebody paid for last year does not stop being true when you withdraw it.

      • created_attimestamp

        When the plan was first seen.

      • identitiesarray of strings

        What each source calls this plan, as source:id. Any entry addresses it — stripe:cus_123.

      • namestring

        What the plan is called in a filter, a legend or a breakdown — the name property, resolved to the highest-priority source that has one. Write properties.name to change it. Null when no source names it.

      • price_countinteger

        How many prices are on this plan.

      • pricesarray of objects

        The prices on this plan, in every source. Expandable.

      • propertiesobject

        Your source’s properties on this plan, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

      • properties_by_sourceobject

        Every source’s properties on this plan, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

    • plan_idstring (UUID)

      The plan the price is on.

    • pricing_modelenum

      How an item’s unit amount is arrived at on this price.

      One of fixed, tiered, metered

    • propertiesobject

      Your source’s properties on this price, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

    • properties_by_sourceobject

      Every source’s properties on this price, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

    • unit_amountdecimal string

      What one unit is listed at per interval: for a metered price, one unit of usage. None for a tiered one, whose units cost what their tier says. Excludes tax.

  • previous_price_idstring (UUID)

    The price it was on, if any. Null when the item is new.

  • previous_quantitydecimal string

    And before.

  • previous_statusstring

    Its status before the change. Null when the item is new.

  • priceobject

    The price the item is on after the change, if any — expand it to get it. Expandable.

    Show 17 child attributes
    • idstring (UUID)

      The price’s Summerbase id. Anywhere a price is addressed, one of its identities works too.

    • objectstring

      The object’s type, always price.

      Always price

    • archivedboolean

      Whether the price has stopped being offered. Existing subscriptions keep it — what somebody paid for last year does not stop being true when you withdraw the price.

    • created_attimestamp

      When the price was first seen.

    • currency_codestring

      The currency it is listed in, by its ISO 4217 code.

    • identitiesarray of strings

      What each source calls this price, as source:id. Any entry addresses it — stripe:cus_123.

    • intervalenum

      The unit it bills in. None for a price charged once.

      One of day, week, month, year

    • interval_countinteger

      How many intervals between charges.

    • namestring

      What the price is called in the source it lives in, when it has a name of its own there — a Stripe price’s nickname. Most have none, and are told apart by their terms.

    • owner_sourceobject

      The source the price came from. Expandable.

      Show 18 child attributes
      • idstring (UUID)

        The source’s unique identifier. Records are identified by its slug.

      • objectstring

        The object’s type, always source.

        Always source

      • connected_attimestamp

        When a provider source was given its credential, or empty: a provider source that has not been connected yet or has been disconnected, and every source that is not a provider’s.

      • created_attimestamp

        When the source was added.

      • import_failed_attimestamp

        When the last import gave up, or empty when none has since the last one succeeded. The source’s log says why.

      • import_progressdecimal string

        How far the running import has got, from 0 to 1, or empty while it does not know yet.

      • import_started_attimestamp

        When the import now running began, or empty when none is. Every metric that reads this source’s records is incomplete until it ends.

      • import_stepstring

        What the running import is doing, in a sentence: Importing customers, 1,240 of 8,100.

      • imported_attimestamp

        When the last import finished, or empty when none has.

      • namestring

        What the source is called, for people reading a screen.

      • priorityinteger

        Where this source sits when resolving name and email. Lower wins, and the project’s own source starts at the top so a manual correction outranks a provider sync. It orders nothing else — every other property is namespaced by source and never arbitrated.

      • project_idstring (UUID)

        The project the source belongs to.

      • provider_account_idstring

        The provider’s own id for the account the source is connected to: acct_… for Stripe. Kept through a disconnect, so that connecting again is checked against it.

      • provider_codeenum

        The code of the system the source pulls from. custom is a source you write to yourself, and the only one that accepts writes; stripe is connected with connect_stripe and fetches for itself.

        One of custom, stripe, summerbase

      • sandboxboolean

        Whether the connection is to the provider’s test mode rather than a live account; empty while nothing is connected.

      • slugstring

        How this source’s records are identified — the stripe in stripe:cus_123. Lowercase letters, digits, hyphens and underscores; unique within the project and fixed once the source exists, because integrations hard-code it. A reference shaped like an id is read as one, so a slug may not look like a UUID.

      • webhook_installed_attimestamp

        When the provider’s webhook was installed for this source — by the connection, or by hand and registered with register_stripe_webhook — or empty: nothing is connected, or the source is connected without a webhook and its changes arrive with the hourly reconcile.

      • webhook_urlstring

        Where the provider posts this source’s events: the address of the endpoint a connection installs, and of one to install by hand. Empty for a source whose provider posts no webhooks.

    • owner_source_idstring (UUID)

      The source the price came from.

    • planobject

      The plan the price is on. Expandable.

      Show 10 child attributes
      • idstring (UUID)

        The plan’s Summerbase id. Anywhere a plan is addressed, one of its identities works too.

      • objectstring

        The object’s type, always plan.

        Always plan

      • archivedboolean

        Whether the plan has stopped being offered — the archived property, resolved to the highest-priority source that says one; Stripe says it of a product it has archived. Write properties.archived to change it. Existing subscriptions keep the plan: what somebody paid for last year does not stop being true when you withdraw it.

      • created_attimestamp

        When the plan was first seen.

      • identitiesarray of strings

        What each source calls this plan, as source:id. Any entry addresses it — stripe:cus_123.

      • namestring

        What the plan is called in a filter, a legend or a breakdown — the name property, resolved to the highest-priority source that has one. Write properties.name to change it. Null when no source names it.

      • price_countinteger

        How many prices are on this plan.

      • pricesarray of objects

        The prices on this plan, in every source. Expandable.

      • propertiesobject

        Your source’s properties on this plan, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

      • properties_by_sourceobject

        Every source’s properties on this plan, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

    • plan_idstring (UUID)

      The plan the price is on.

    • pricing_modelenum

      How an item’s unit amount is arrived at on this price.

      One of fixed, tiered, metered

    • propertiesobject

      Your source’s properties on this price, as they stand now. What you write here is what you read back — another source’s values never appear in it and can never be overwritten through it. properties_by_source has everyone’s.

    • properties_by_sourceobject

      Every source’s properties on this price, keyed by source slug — including your own. Read-only: a write only ever reaches the source it is attributed to.

    • unit_amountdecimal string

      What one unit is listed at per interval: for a metered price, one unit of usage. None for a tiered one, whose units cost what their tier says. Excludes tax.

  • price_idstring (UUID)

    The price the item is on, if any. Null when the item went away.

  • quantitydecimal string

    How many units, after.

  • revenue_typestring

    What kind of revenue moved: recurring.

  • statusstring

    The item’s status after the change — its subscription’s while the item is there. Null when the item went away.

  • subscription_idstring (UUID)

    The subscription the item belongs to.

  • subscription_item_idstring (UUID)

    The item that changed.

Example

{
"arr": "15000.00",
"counts_at": "2026-06-12T15:47:09Z",
"currency_code": "USD",
"customer_id": "0199a7c2-4e1b-7f38-b9d2-5a6c8e0f1d73",
"delta": "250.00",
"movement_type": "expansion",
"mrr": "1250.00",
"object": "run_rate_movement",
"occurred_at": "2026-06-12T15:47:09Z",
"plan_id": "0198f1a4-1d2e-7a40-9b31-5c6d7e8f9a0b",
"previous_arr": "12000.00",
"previous_mrr": "1000.00",
"previous_plan_id": "0198f1a4-1d2e-7a40-9b31-5c6d7e8f9a0b",
"previous_price_id": "0198f1a4-2e5f-7b80-a1c2-3d4e5f6a7b8c",
"previous_quantity": "20",
"previous_status": "active",
"price_id": "0198f1a4-2e5f-7b80-a1c2-3d4e5f6a7b8c",
"quantity": "25",
"revenue_type": "recurring",
"status": "active",
"subscription_id": "0199a7c2-5b3e-7a14-8c6d-2f9e4b7a1c05",
"subscription_item_id": "0199a7c2-5b41-7c62-9d3e-6a1f8b2c4d97"
}

Endpoints