@revturbine/cli 0.21.5 → 0.21.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +140 -9
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -40048,6 +40048,8 @@ var METRIC_SEMANTICS = {
|
|
|
40048
40048
|
"revenue.logo_retention_exact": daily30(NOT_MONETARY),
|
|
40049
40049
|
"revenue.matched_mrr_exact": daily30(PER_CURRENCY),
|
|
40050
40050
|
"revenue.mrr": weekly30(PER_CURRENCY),
|
|
40051
|
+
"revenue.account_opening_mrr": daily90(PER_CURRENCY),
|
|
40052
|
+
"revenue.account_mrr_delta": daily90(PER_CURRENCY),
|
|
40051
40053
|
"revenue.mrr_exact": daily30(PER_CURRENCY),
|
|
40052
40054
|
"revenue.net_new_mrr": weekly30(PER_CURRENCY),
|
|
40053
40055
|
"revenue.net_new_mrr_exact": daily30(PER_CURRENCY),
|
|
@@ -40734,7 +40736,7 @@ var engagementWeeklyActiveUsersMetric = { id: "engagement.weekly_active_users",
|
|
|
40734
40736
|
var usageMeteredPerActiveAccountMetric = { id: "usage.metered_per_active_account", label: "Metered usage per active account", value_type: "number", source_scope: "revturbine_tracked", statistical_type: "continuous", direction: "increase", preferred_analysis_unit: "account", aggregation_semantics: "non_additive", layer: "derived", catalog_status: "unavailable", derivation: { carried_by: ["account_activity"], input_origin: "none", ingested_events: [], note: `Inputs when served: events_clickstream (usage_recorded, gate_evaluated), gate_event_fields. Plan 282 A.6: \u03A3 usage_recorded quantity (or gate_evaluated used deltas) per ISO week \xF7 engagement.active_accounts. Gate used carries the BL-0413 caveat. Not usage.metered_per_account, the mean used per evaluation. ${pendingPipe("account_activity")}` } };
|
|
40735
40737
|
var cohortNrrMetric = { id: "cohort.nrr", label: "Paying cohort NRR", value_type: "percent", format: { type: "percent", decimals: 1 }, source_scope: "total", statistical_type: "continuous", direction: "increase", preferred_analysis_unit: "account", aggregation_semantics: "non_additive", layer: "derived", catalog_status: "unavailable", derivation: { carried_by: ["paying_cohort_rollup"], input_origin: "none", ingested_events: [], note: `Inputs when served: retired V1 stock; replacement source not yet designed (ST-1398). Plan 282 A.6: over accounts whose first week end with MRR > 0 falls in the cohort period (customer.paying_cohort_period), \u03A3 account MRR at age k \xF7 \u03A3 account MRR at age 0, per currency. A paying cohort, not the first-observed signup cohort of customer.cohort. ${pendingPipe("paying_cohort_rollup")}` } };
|
|
40736
40738
|
var cohortLogoSurvivalMetric = { id: "cohort.logo_survival", label: "Paying cohort logo survival", value_type: "percent", format: { type: "percent", decimals: 1 }, source_scope: "total", statistical_type: "binary", direction: "increase", preferred_analysis_unit: "account", aggregation_semantics: "non_additive", layer: "derived", catalog_status: "unavailable", derivation: { carried_by: ["paying_cohort_rollup"], input_origin: "none", ingested_events: [], note: `Inputs when served: retired V1 stock; replacement source not yet designed (ST-1398). Plan 282 A.6: cohort accounts (first MRR > 0 in the cohort period) with MRR > 0 at age k \xF7 cohort size. Not cohort.retention_rate, which counts recurrence facts over a signup cohort. ${pendingPipe("paying_cohort_rollup")}` } };
|
|
40737
|
-
var accountMrrMetric = { id: "account.mrr", label: "Account MRR", value_type: "currency", source_scope: "total", statistical_type: "revenue", direction: "increase", preferred_analysis_unit: "account", aggregation_semantics: "semi_additive", layer: "primitive", catalog_status: "unavailable", derivation: { carried_by: ["account_profile"], input_origin: "none", ingested_events: [], note:
|
|
40739
|
+
var accountMrrMetric = { id: "account.mrr", label: "Account MRR", value_type: "currency", source_scope: "total", statistical_type: "revenue", direction: "increase", preferred_analysis_unit: "account", aggregation_semantics: "semi_additive", layer: "primitive", catalog_status: "unavailable", derivation: { carried_by: ["account_profile"], input_origin: "none", ingested_events: [], note: "No account row yet: account_profile must serve the account's current MRR per currency. The timeline history reads stored mrr_movements_daily.account_closing and does not release this current-row metric." } };
|
|
40738
40740
|
var accountPlanMetric = { id: "account.plan", label: "Account plan", value_type: "string", layer: "primitive", catalog_status: "unavailable", derivation: { carried_by: ["account_profile"], input_origin: "none", ingested_events: [], note: `Inputs when served: retired V1 stock; replacement source not yet designed (ST-1398) (each item's variation binding by stripe_price_id). Plan 282 A.7: the plan handle of the account's base (plan) items at the instant; an account on several plans reports each, never an arbitrary primary. ${pendingPipe("account_profile")}` } };
|
|
40739
40741
|
var accountVariationMetric = { id: "account.variation", label: "Account plan variation", value_type: "string", layer: "primitive", catalog_status: "unavailable", derivation: { carried_by: ["account_profile"], input_origin: "none", ingested_events: [], note: `Inputs when served: retired V1 stock; replacement source not yet designed (ST-1398). Plan 282 A.7: the variation handle of the account's base item, from the item's stripe_price_id binding (plan_variation_versions). ${pendingPipe("account_profile")}` } };
|
|
40740
40742
|
var accountAddonsMetric = { id: "account.addons", label: "Account add-ons", description: "The account's add-on handles, served one row per add-on item.", value_type: "string", layer: "primitive", catalog_status: "unavailable", derivation: { carried_by: ["account_profile"], input_origin: "none", ingested_events: [], note: `Inputs when served: retired V1 stock; replacement source not yet designed (ST-1398). Plan 282 A.7: the add-on handles of the account's add-on items, from their stripe_price_id bindings (addon_variation_versions). ${pendingPipe("account_profile")}` } };
|
|
@@ -40750,8 +40752,8 @@ var accountClosestToLimitMetric = { id: "account.closest_to_limit", label: "Clos
|
|
|
40750
40752
|
var accountRenewsAtMetric = { id: "account.renews_at", label: "Renews at", value_type: "datetime", layer: "primitive", catalog_status: "unavailable", derivation: { carried_by: ["account_profile"], input_origin: "none", ingested_events: [], note: `Inputs when served: events_billing (current_period_end, plan 282 TASK-4). Plan 282 A.7: the next renewal, current_period_end from the latest event of each active subscription of the account. ${pendingPipe("account_profile")}` } };
|
|
40751
40753
|
var accountCancelScheduledMetric = { id: "account.cancel_scheduled", label: "Cancellation scheduled", value_type: "boolean", source_scope: "total", statistical_type: "binary", direction: "decrease", preferred_analysis_unit: "account", layer: "primitive", catalog_status: "unavailable", derivation: { carried_by: ["account_billing_state"], input_origin: "none", ingested_events: [], note: `Inputs when served: stripe_sub_item (cancel_at_period_end), the identity map. Plan 282 A.7: true when any present item of the account's subscriptions has cancel_at_period_end set. ${ACCOUNT_BILLING_STATE_PENDING}` } };
|
|
40752
40754
|
var accountTrialMetric = { id: "account.trial", label: "Account trial", description: "The account's latest trial episode: started, scheduled end, day in trial, and outcome (open, converted or ended).", value_type: "string", layer: "primitive", catalog_status: "unavailable", derivation: { carried_by: ["trial_episodes"], input_origin: "none", ingested_events: [], note: `Inputs when served: trial_instances. Plan 282 A.7: the account's trial_instances row: started_at, expires_at (the scheduled end), the day in trial, and converted or ended from converted_at and actual_end_at. ${TRIAL_EPISODES_PENDING}` } };
|
|
40753
|
-
var accountCreditMetric = { id: "account.credit", label: "Conversion credit", value_type: "string", layer: "primitive", catalog_status: "
|
|
40754
|
-
var accountLastShownMetric = { id: "account.last_shown", label: "Last shown", description: "Placements recently shown to the account, served one row per placement with its most recent display.", value_type: "datetime", layer: "primitive", catalog_status: "
|
|
40755
|
+
var accountCreditMetric = { id: "account.credit", label: "Conversion credit", value_type: "string", layer: "primitive", catalog_status: "tested", derivation: { carried_by: ["account_timeline"], input_origin: "platform", ingested_events: [], ingested_datasources: ["attribution_credits", "attribution_touches", "attribution_runs"], note: "Live stored movement-attribution credit facts, joined by subject id (single movement or plan-switch pair) and live run. Each credit is a separate sub-line with target, lane, direction, credit_basis and split_share; stored gate-lane credit is retained without computing allocation. No live run means not attributed yet, never zero credit; a pair is shown once under its positive member." } };
|
|
40756
|
+
var accountLastShownMetric = { id: "account.last_shown", label: "Last shown", description: "Placements recently shown to the account, served one row per placement with its most recent display.", value_type: "datetime", layer: "primitive", catalog_status: "tested", derivation: { carried_by: ["account_timeline"], input_origin: "platform", ingested_events: [], ingested_datasources: ["placement_presentations"], note: "Plan 282 A.7: the most recent presented_at per placement over the account's rows with outcome presented, recorded exposures only (plan 274 REQ-18), in the final 28 days of the timeline period. Derived from the same exposure rows as the timeline; a CTA row in that window adds the clicked note. Not placement.last_presented_at, which reads every interaction row." } };
|
|
40755
40757
|
var entitlementGrantedAccountCountMetric = { id: "entitlement.granted_account_count", label: "Granted accounts", value_type: "number", source_scope: "total", statistical_type: "count", direction: "increase", preferred_analysis_unit: "account", layer: "primitive", catalog_status: "tested", derivation: { carried_by: ["growth_funnel_signals"], input_origin: "platform", ingested_events: ["gate_evaluated"], note: "uniq accounts whose gate_evaluated outcome was `allowed`." } };
|
|
40756
40758
|
var entitlementAdoptionRateMetric = { id: "entitlement.adoption_rate", label: "Entitlement adoption rate", value_type: "percent", format: { type: "percent", decimals: 1 }, source_scope: "total", statistical_type: "binary", direction: "increase", preferred_analysis_unit: "account", layer: "derived", catalog_status: "tested", derivation: { carried_by: ["growth_funnel_signals"], input_origin: "platform", ingested_events: ["gate_evaluated"], note: "allowed accounts over all evaluated accounts. gate_evaluated is the passive denominator the SDK emits on every gate render." } };
|
|
40757
40759
|
var entitlementAdopterRetentionLiftMetric = { id: "entitlement.adopter_retention_lift", label: "Adopter retention lift", value_type: "percent", format: { type: "percent", decimals: 1 }, source_scope: "total", statistical_type: "continuous", direction: "increase", preferred_analysis_unit: "account", catalog_status: "unavailable", derivation: { carried_by: ["growth_funnel_signals"], input_origin: "none", ingested_events: [], note: "Needs a retention cohort comparison between adopters and non-adopters. No retention derivation exists." } };
|
|
@@ -40806,7 +40808,7 @@ var revenueMrrMetric = {
|
|
|
40806
40808
|
aggregation_semantics: "semi_additive",
|
|
40807
40809
|
layer: "primitive",
|
|
40808
40810
|
catalog_status: "tested",
|
|
40809
|
-
derivation: { carried_by: ["mrr_daily"], input_origin: "platform", ingested_events: [], ingested_datasources: ["billing_observations"], note: "MRR V1
|
|
40811
|
+
derivation: { carried_by: ["mrr_daily", "account_timeline"], input_origin: "platform", ingested_events: [], ingested_datasources: ["billing_observations"], note: "MRR V1 (plan 282 TASK-11, D-51): subscription state active/past_due quantity \xD7 unit_amount monthly (year \xF7 12, week \xD7 52/12, day \xD7 365/12, \xF7 interval_count); other statuses 0. mrr-daily-run derives Neon stock from billing_observations and effective payer and price bindings in the verified active series. account_timeline reads stored account_closing per currency, nullable off Billing rows; never sums repeated stocks. V1 excludes discounts, prorations, schedules, multi-plan items, tax, currency transfers." }
|
|
40810
40812
|
};
|
|
40811
40813
|
var revenueNewMrrMetric = { id: "revenue.new_mrr", label: "New MRR", value_type: "currency", source_scope: "total", statistical_type: "revenue", direction: "increase", preferred_analysis_unit: "account", aggregation_semantics: "additive", layer: "derived", catalog_status: "tested", derivation: { carried_by: ["mrr_daily"], input_origin: "platform", ingested_events: [], ingested_datasources: ["billing_observations"], note: "MRR V1 movement (plan 282 TASK-11; plan 252 A-4): \u03A3 closing account MRR over accounts with MRR > 0 at the week end, 0 at the previous week end, and no MRR > 0 at any earlier week end in retained history. Classified from the atomic net change in account/currency stock, never from event names. Stock definition and V1 exclusions as revenue.mrr. Oracle: deriveMrrMovements. Served by the Neon mrr_daily block under its active policy and reporting calendar." } };
|
|
40812
40814
|
var revenueExpansionMrrMetric = { id: "revenue.expansion_mrr", label: "Expansion MRR", value_type: "currency", source_scope: "total", statistical_type: "revenue", direction: "increase", preferred_analysis_unit: "account", aggregation_semantics: "additive", layer: "derived", catalog_status: "tested", derivation: { carried_by: ["mrr_daily"], input_origin: "platform", ingested_events: [], ingested_datasources: ["billing_observations"], note: "MRR V1 movement (plan 282 TASK-11; plan 252 A-4): \u03A3 (closing \u2212 opening) over accounts with MRR > 0 at both week ends and closing > opening \u2014 plan upgrades, seats, add-ons. The stamped event vocabulary only ever derived quantity growth and mapped value-based upgrades to null (BL-0063); the stock delta catches them. Stock definition and V1 exclusions as revenue.mrr. Oracle: deriveMrrMovements. Served by the Neon mrr_daily block under its active policy and reporting calendar." } };
|
|
@@ -42028,14 +42030,12 @@ var customerAccountProfileConcept = {
|
|
|
42028
42030
|
"account.closest_to_limit",
|
|
42029
42031
|
"account.renews_at",
|
|
42030
42032
|
"account.cancel_scheduled",
|
|
42031
|
-
"account.trial"
|
|
42032
|
-
"account.credit",
|
|
42033
|
-
"account.last_shown"
|
|
42033
|
+
"account.trial"
|
|
42034
42034
|
],
|
|
42035
42035
|
query_families: ["table"],
|
|
42036
42036
|
source_scope: "total",
|
|
42037
42037
|
sources: [
|
|
42038
|
-
{ kind: "unavailable", ref: "account rows from account_profile, account_lifecycle, account_billing_state, account_activity, account_usage_meters
|
|
42038
|
+
{ kind: "unavailable", ref: "account rows from account_profile, account_lifecycle, account_billing_state, account_activity, account_usage_meters and trial_episodes", blocker: "No block serves an account row yet: web plan 282 TASK-17 phase 2 builds the account, lifecycle, billing-state, activity, usage-meter and trial blocks. Credit and last shown are carried separately by customer.account_timeline." }
|
|
42039
42039
|
],
|
|
42040
42040
|
oracle_family: { family: "none", blocker: "No account-profile oracle exists; each attribute's pure twin is owed with the block that serves it." },
|
|
42041
42041
|
policy_dependencies: [
|
|
@@ -42043,7 +42043,135 @@ var customerAccountProfileConcept = {
|
|
|
42043
42043
|
{ kind: "engagement", stamped: false, blocker: "account.inactive_30d reads tenant_configs.activity_window_days, a read-time parameter no row stamps and no versioned policy owns." }
|
|
42044
42044
|
]
|
|
42045
42045
|
};
|
|
42046
|
+
var customerAccountTimelineConcept = {
|
|
42047
|
+
id: "customer.account_timeline",
|
|
42048
|
+
version: 1,
|
|
42049
|
+
label: "Account timeline",
|
|
42050
|
+
description: "One account's ordered App, RevTurbine and Billing facts, with stored credit and touch facts. The same rows support last-shown placements and per-currency MRR history.",
|
|
42051
|
+
when_to_use: "The Customers profile timeline, last-shown placements and MRR history over a 90-day period (at least 28 days for last shown).",
|
|
42052
|
+
do_not_use_for: "Recomputing attribution, allocating gate credit, aggregating currencies, or replacing the current account-profile row.",
|
|
42053
|
+
grain: ["tenant", "account"],
|
|
42054
|
+
analytical_units: ["account"],
|
|
42055
|
+
primary_time_dimension: "time.occurred_at",
|
|
42056
|
+
historical_mode: "as_of_event",
|
|
42057
|
+
dimensions: ["time.occurred_at", "customer.account", "customer.user", "event.type", "placement.placement", "entitlement.entitlement", "revenue.currency", "revenue.movement_reason", "revenue.churn_cause", "attribution.movement_kind", "timeline.source"],
|
|
42058
|
+
dimension_groundings: {
|
|
42059
|
+
"customer.account": { kind: "derived", source: "identity:resolved_account_key", anchor: "current", note: "Read-only Neon account/payer resolution; the stored Billing key and independently resolved telemetry users." },
|
|
42060
|
+
"customer.user": { kind: "derived", source: "identity:resolved_user_set", anchor: "current", note: "The selected external user resolves the account; telemetry reads its users, including rows without account stamps." },
|
|
42061
|
+
"event.type": { kind: "stamped", source: "column:event_name", anchor: "fact_time", note: "Telemetry event name or the stored Billing movement kind." },
|
|
42062
|
+
"placement.placement": { kind: "stamped", source: "column:placement_id", anchor: "fact_time", partitions: false, note: "Recorded telemetry or stored credit/touch sub-lines; a Billing movement can credit several placements." },
|
|
42063
|
+
"entitlement.entitlement": { kind: "stamped", source: "column:entitlement_handle", anchor: "fact_time", partitions: false, note: "Recorded gate touch or stored gate-lane credit; no inferred allocation." },
|
|
42064
|
+
"revenue.currency": { kind: "stamped", source: "column:currency", anchor: "fact_time", note: "Native Billing currency; non-Billing rows have no monetary value." },
|
|
42065
|
+
"revenue.movement_reason": { kind: "stamped", source: "column:reason", anchor: "fact_time" },
|
|
42066
|
+
"revenue.churn_cause": { kind: "stamped", source: "column:churn_cause", anchor: "fact_time" },
|
|
42067
|
+
"attribution.movement_kind": { kind: "stamped", source: "attribution_credits:movement_kind", anchor: "fact_time", served_metrics: ["account.credit"], unserved_blocker: "Only stored attribution_credits carry this credited-positive movement dimension; timeline MRR stocks/deltas and recorded last-shown exposures do not.", note: "The existing credited-positive movement dimension stays scoped to stored credits; negative movements retain their own event kind." },
|
|
42068
|
+
"timeline.source": { kind: "derived", source: "account_timeline:source", anchor: "fact_time", partitions: true, note: "Billing, RevTurbine or App according to the row's actual carrier." }
|
|
42069
|
+
},
|
|
42070
|
+
metrics: ["account.credit", "account.last_shown", "revenue.mrr", "revenue.account_opening_mrr", "revenue.account_mrr_delta"],
|
|
42071
|
+
query_families: ["timeline"],
|
|
42072
|
+
source_scope: "total",
|
|
42073
|
+
fact_kind: "transaction",
|
|
42074
|
+
family: "behavioral",
|
|
42075
|
+
primary_key: ["tenant_id", "source", "source_record_id"],
|
|
42076
|
+
producer: "platform",
|
|
42077
|
+
materialization: { mode: "raw" },
|
|
42078
|
+
livemode_qualified: false,
|
|
42079
|
+
record_contract: {
|
|
42080
|
+
record_id: ["tenant_id", "source", "source_record_id"],
|
|
42081
|
+
source_namespace: "account_timeline",
|
|
42082
|
+
occurred_time_field: "occurred_at",
|
|
42083
|
+
dedup: "recomputed_at_query",
|
|
42084
|
+
revision: "recomputed_from_source",
|
|
42085
|
+
late_arrival: "accepted_within_retention",
|
|
42086
|
+
correlation_keys: ["account_key", "user_id", "subject_id"],
|
|
42087
|
+
policy_version_fields: ["policy_version", "calendar_version", "attribution_policy_version"],
|
|
42088
|
+
note: "Source-qualified identity preserves the movement tuple, exposure/CTA/gate identity or clickstream sorting tuple. Occurred time is source as_of, presented_at or event_ts. Billing selects the active series and live attribution run; telemetry uses FINAL or candidate View identity. Policies belong to the applicable stored source. No common received timestamp or Stripe livemode exists."
|
|
42089
|
+
},
|
|
42090
|
+
keys: [
|
|
42091
|
+
{ key: "tenant", path: "column:tenant_id", resolution: "source" },
|
|
42092
|
+
{ key: "account", path: "identity:resolved_account_key", resolution: "enriched" },
|
|
42093
|
+
{ key: "user", path: "column:user_id", resolution: "source", note: "Telemetry user, absent on stored Billing movement rows." },
|
|
42094
|
+
{ key: "placement", path: "column:placement_id", resolution: "source" },
|
|
42095
|
+
{ key: "entitlement", path: "column:entitlement_handle", resolution: "source" }
|
|
42096
|
+
],
|
|
42097
|
+
measures: [
|
|
42098
|
+
{ name: "account_closing", source: "mrr_movements_daily:account_closing", unit: "currency_minor", temporal: "stock", sign: "unsigned", aggregation_semantics: "semi_additive", note: "Nullable off Billing rows. The day's last account closing is one history point per currency; never sum repeated account stocks or currencies." },
|
|
42099
|
+
{ name: "account_opening", source: "mrr_movements_daily:account_opening", unit: "currency_minor", temporal: "stock", sign: "unsigned", aggregation_semantics: "semi_additive", note: "Nullable off Billing rows. The first movement opening anchors the history; never sum repeated account stocks or currencies." },
|
|
42100
|
+
{ name: "delta", source: "mrr_movements_daily:delta", unit: "currency_minor", temporal: "flow", sign: "signed", aggregation_semantics: "additive", note: "Stored signed movement delta per native currency, nullable off Billing rows; no new credit allocation." }
|
|
42101
|
+
],
|
|
42102
|
+
event_attributes: [
|
|
42103
|
+
{ name: "source", path: "derived:source" },
|
|
42104
|
+
{ name: "event_name", path: "column:event_name" },
|
|
42105
|
+
{ name: "movement_kind", path: "mrr_movements_daily:kind" },
|
|
42106
|
+
{ name: "outcome", path: "column:outcome" },
|
|
42107
|
+
{ name: "credit_basis", path: "attribution_credits:credit_basis" }
|
|
42108
|
+
],
|
|
42109
|
+
sources: [
|
|
42110
|
+
{ kind: "datasource", ref: "mrr_movements_daily" },
|
|
42111
|
+
{ kind: "datasource", ref: "attribution_credits" },
|
|
42112
|
+
{ kind: "datasource", ref: "attribution_touches" },
|
|
42113
|
+
{ kind: "datasource", ref: "attribution_runs" },
|
|
42114
|
+
{ kind: "build", ref: "analytics_customer_timeline" },
|
|
42115
|
+
{ kind: "build", ref: "exposure_touch_candidates" },
|
|
42116
|
+
{ kind: "build", ref: "cta_candidates" },
|
|
42117
|
+
{ kind: "build", ref: "gate_denial_candidates" },
|
|
42118
|
+
{ kind: "build", ref: "account_timeline", note: "Read-only web composite. revenue.mrr is each Billing row's account_closing; opening/delta are stored row facts, nullable elsewhere. Last shown uses presented exposures in the final 28 days. Stored credit sub-lines are never summed into a new allocation." }
|
|
42119
|
+
],
|
|
42120
|
+
oracle_family: { family: "recurring" },
|
|
42121
|
+
policy_dependencies: [{ kind: "mrr", stamped: true }, { kind: "attribution", stamped: true }]
|
|
42122
|
+
};
|
|
42123
|
+
var timelineSourceDimension = {
|
|
42124
|
+
id: "timeline.source",
|
|
42125
|
+
label: "Timeline source",
|
|
42126
|
+
type: "enum",
|
|
42127
|
+
description: "Billing (stored MRR movements), RevTurbine (recorded exposures, CTA and gate touches), or App (clickstream activity). Preserves each timeline row's source provenance.",
|
|
42128
|
+
operators: ["eq", "in", "not_in"],
|
|
42129
|
+
control: "multi_select",
|
|
42130
|
+
capabilities: ["filter", "group"],
|
|
42131
|
+
cardinality: "low",
|
|
42132
|
+
classification: "unrestricted",
|
|
42133
|
+
exclude_from_segment_picker: true
|
|
42134
|
+
};
|
|
42135
|
+
var revenueAccountOpeningMrrMetric = {
|
|
42136
|
+
id: "revenue.account_opening_mrr",
|
|
42137
|
+
label: "Account MRR before movement",
|
|
42138
|
+
value_type: "currency",
|
|
42139
|
+
source_scope: "total",
|
|
42140
|
+
statistical_type: "revenue",
|
|
42141
|
+
direction: "increase",
|
|
42142
|
+
preferred_analysis_unit: "account",
|
|
42143
|
+
aggregation_semantics: "semi_additive",
|
|
42144
|
+
layer: "primitive",
|
|
42145
|
+
catalog_status: "tested",
|
|
42146
|
+
derivation: {
|
|
42147
|
+
carried_by: ["account_timeline"],
|
|
42148
|
+
input_origin: "platform",
|
|
42149
|
+
ingested_events: [],
|
|
42150
|
+
ingested_datasources: ["mrr_movements_daily"],
|
|
42151
|
+
note: "The stored movement row's account_opening, per native currency, in the active Neon series. Nullable on non-Billing timeline rows. Not the interval-opening revenue.opening_mrr target; never sum repeated account stocks or currencies. The first movement opening anchors the account history."
|
|
42152
|
+
}
|
|
42153
|
+
};
|
|
42154
|
+
var revenueAccountMrrDeltaMetric = {
|
|
42155
|
+
id: "revenue.account_mrr_delta",
|
|
42156
|
+
label: "Signed MRR movement",
|
|
42157
|
+
value_type: "currency",
|
|
42158
|
+
source_scope: "total",
|
|
42159
|
+
statistical_type: "revenue",
|
|
42160
|
+
direction: "increase",
|
|
42161
|
+
preferred_analysis_unit: "account",
|
|
42162
|
+
aggregation_semantics: "additive",
|
|
42163
|
+
layer: "primitive",
|
|
42164
|
+
catalog_status: "tested",
|
|
42165
|
+
derivation: {
|
|
42166
|
+
carried_by: ["account_timeline"],
|
|
42167
|
+
input_origin: "platform",
|
|
42168
|
+
ingested_events: [],
|
|
42169
|
+
ingested_datasources: ["mrr_movements_daily"],
|
|
42170
|
+
note: "The stored live movement row's signed delta in the active Neon series, per native currency; expansion positive, contraction/churn negative. Nullable on non-Billing timeline rows. A row fact, not aggregated revenue.net_new_mrr and not an allocated attribution amount; no cross-currency sum."
|
|
42171
|
+
}
|
|
42172
|
+
};
|
|
42046
42173
|
var DIMENSION_ENTRIES = [
|
|
42174
|
+
timelineSourceDimension,
|
|
42047
42175
|
timeOccurredAtDimension,
|
|
42048
42176
|
commercialVariationDimension,
|
|
42049
42177
|
commercialItemKindDimension,
|
|
@@ -42219,6 +42347,8 @@ var AUTHORED_METRIC_ENTRIES = [
|
|
|
42219
42347
|
conversionRateMetric,
|
|
42220
42348
|
retentionRetainedMrr30dMetric,
|
|
42221
42349
|
revenueMrrMetric,
|
|
42350
|
+
revenueAccountOpeningMrrMetric,
|
|
42351
|
+
revenueAccountMrrDeltaMetric,
|
|
42222
42352
|
revenueNewMrrMetric,
|
|
42223
42353
|
revenueExpansionMrrMetric,
|
|
42224
42354
|
revenueContractionMrrMetric,
|
|
@@ -42293,6 +42423,7 @@ var CONCEPT_ENTRIES = [
|
|
|
42293
42423
|
revenueAttributionConcept,
|
|
42294
42424
|
experimentCausalResultConcept,
|
|
42295
42425
|
customerTimelineConcept,
|
|
42426
|
+
customerAccountTimelineConcept,
|
|
42296
42427
|
optimizationOpportunityConcept,
|
|
42297
42428
|
customerAccountStateConcept,
|
|
42298
42429
|
revenuePaymentRecoveryConcept,
|
|
@@ -53271,7 +53402,7 @@ function formatFieldPath(path3) {
|
|
|
53271
53402
|
}
|
|
53272
53403
|
|
|
53273
53404
|
// src/schema/version.ts
|
|
53274
|
-
var SCHEMA_VERSION = "0.1.
|
|
53405
|
+
var SCHEMA_VERSION = "0.1.548";
|
|
53275
53406
|
|
|
53276
53407
|
// src/lib/credentials.ts
|
|
53277
53408
|
import { chmodSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@revturbine/cli",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.6",
|
|
4
4
|
"description": "revturbine — validate RevTurbine Playbooks and ship them to a RevTurbine instance through the playbook-version lifecycle (draft → Release).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|