Activated users
Accounts that complete onboarding and perform a concrete first action, not merely registered emails.
Measurement
Moral Trade measures whether people understand the service, complete a concrete first action, create reviewable records, progress safely, and return to meaningful work. It does not optimize for time-on-site or rank moral views.
Accounts that complete onboarding and perform a concrete first action, not merely registered emails.
Offers, previews, invitations, public-good actions, evidence items, and agreements that create inspectable state.
The share of users who reach a next step without a privacy, coercion, evidence, or externality blocker.
Invitations to plausible counterparties, researchers, organizers, donors, or builders rather than undifferentiated referrals.
Evidence-review timing, challenge outcomes, appeal reversals, unresolved disputes, and human-overrule rates.
Route health, error rates, performance budgets, email delivery, job execution, and recovery behavior.
Events use route paths, coarse stages, bounded labels, booleans, counts, and buckets. Sensitive text is excluded or redacted before persistence.
page_viewWhich public routes do visitors reach before choosing a first pilot path?
Allowed metadata: path, referrerPath, navigationType
hero_primary_cta_clickedDo visitors choose the worked-example route before signup pressure?
Allowed metadata: hrefPath, label, routeFamily
worked_example_openedWhich examples make the mechanism legible enough to inspect details?
Allowed metadata: exampleId, template, routeFamily
signup_startWhere do visitors begin account creation after seeing the pilot boundaries?
Allowed metadata: path, partnerSlug, primaryGoal
signup_completeCan serious participants finish a low-friction account setup?
Allowed metadata: partnerSlug, primaryGoal
onboarding_completeDo new users choose a role, cause area, and first action?
Allowed metadata: participantKind, primaryGoal, firstAction
create_trade_startedDo users draft terms after inspecting examples and safety rules?
Allowed metadata: mode, template, generatedBy
marketplace_tab_viewedWhich public marketplace lane do visitors inspect before creating or cloning terms?
Allowed metadata: marketplaceTab, queryLengthBucket, queryPresent, routeFamily, searchParamKeys
marketplace_filter_appliedWhich public filter shapes cause users to narrow the marketplace?
Allowed metadata: filterKeys, marketplaceTab, queryLengthBucket, queryPresent, routeFamily, searchParamKeys
marketplace_seed_template_selectedWhich reviewed seed templates help visitors start a draft?
Allowed metadata: liveMetricEligible, routeFamily, template, templateKind
marketplace_create_from_template_startedDo reviewed seed templates become draft starts without implying completed trade volume?
Allowed metadata: generatedBy, liveMetricEligible, mode, routeFamily, template, templateKind
marketplace_intake_triage_routedWhich intake triage route do visitors choose before drafting terms?
Allowed metadata: intakeRoute, liveMetricEligible, routeFamily, routeEligible
marketplace_public_receipt_previewedDo participants preview an opt-in public receipt before publication?
Allowed metadata: claimKind, liveMetricEligible, proofTier, publicationState, routeFamily
marketplace_public_receipt_publishedDo reviewed opt-in public receipts reach publication?
Allowed metadata: claimKind, liveMetricEligible, proofTier, publicationState, routeFamily
marketplace_signed_out_offset_builder_blockedDoes signed-out offset creation avoid dead ends?
Allowed metadata: blockKind, resultStatus, routeFamily, screenFamily
marketplace_advanced_filter_default_expanded_blockedAre advanced filters collapsed by default?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_worked_example_card_overload_blockedAre worked-example cards lightweight by default?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_next_action_correctedHow often do next-action labels need correction?
Allowed metadata: resultStatus, routeFamily, screenFamily
marketplace_direct_donation_parity_usedHow often is direct-donation parity mode used?
Allowed metadata: parityMode, routeFamily
clone_example_actionWhich worked examples become editable first actions?
Allowed metadata: exampleId, template
wish_profile_startedDo users start broad wish previews before requesting private introductions?
Allowed metadata: causeAreaCount, fieldCount
cohort_interest_startedWhich cohort paths attract people willing to invite one serious counterparty?
Allowed metadata: partnerSlug, primaryGoal
marketplace_public_receipt_revokedHow often are opt-in public receipts revoked?
Allowed metadata: claimKind, liveMetricEligible, publicationState, revocationReasonBucket, routeFamily
marketplace_claim_correction_requestedHow often do participants request public claim correction?
Allowed metadata: claimKind, correctionReasonBucket, liveMetricEligible, routeFamily
marketplace_claim_correction_resolvedAre public claim corrections resolved cleanly?
Allowed metadata: claimKind, correctionReasonBucket, liveMetricEligible, resolutionStatus, routeFamily
marketplace_route_simplification_auditedDo public marketplace routes pass the simplification audit?
Allowed metadata: auditStage, resultStatus, routeFamily, screenFamily
marketplace_plain_language_copy_blockedHow often does missing plain-language copy block release?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_internal_jargon_primary_copy_blockedHow often do internal terms appear in primary participant copy?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_route_fallback_diagnostics_blockedDo route fallback diagnostics stay out of primary copy?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_factor_code_primary_copy_blockedDo factor codes or internal enums leak into primary copy?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_impact_score_default_surface_blockedAre moral-looking impact-score default surfaces blocked?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_long_duration_default_example_blockedAre long-duration pledge defaults blocked?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_task_card_primary_action_blockedDo task cards keep one primary action?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_safe_template_default_hidden_fact_blockedAre material safe-template defaults disclosed before lock?
Allowed metadata: blockKind, policyArea, routeFamily, screenFamily
marketplace_term_map_inconsistency_blockedDoes the participant-facing term map stay stable?
Allowed metadata: blockKind, policyArea, routeFamily, screenFamily
marketplace_recipient_association_blockedHow often does recipient association block publication?
Allowed metadata: claimKind, policyArea, routeFamily
marketplace_causal_wording_blockedHow often is stronger causal wording blocked?
Allowed metadata: claimKind, policyArea, routeFamily
marketplace_personal_contribution_reuse_blockedHow often is reused personal contribution blocked?
Allowed metadata: claimKind, displayBucket, routeFamily
marketplace_net_personal_contribution_displayedAre net personal contribution displays attribution-safe?
Allowed metadata: claimKind, displayBucket, routeFamily
marketplace_reimbursement_subsidy_disclosure_blockedHow often are reimbursement or subsidy disclosures blocking?
Allowed metadata: claimKind, displayBucket, routeFamily
marketplace_direct_donation_parity_non_preference_blockedHow often is parity non-preference enforcement blocking?
Allowed metadata: blockKind, parityMode, routeFamily
marketplace_sensitive_action_redactedAre sensitive action details redacted from public receipts?
Allowed metadata: actionKind, policyArea, routeFamily
marketplace_exact_action_publication_confirmedWhen exact action publication happens, was separate confirmation present?
Allowed metadata: actionKind, policyArea, routeFamily
marketplace_publication_pressure_reportedAre participants reporting pressure to publish receipts?
Allowed metadata: policyArea, reasonBucket, routeFamily
marketplace_moral_score_language_blockedIs moral-score or platform-endorsement language blocked?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_anti_gamification_blockedAre engagement and reputation mechanics blocked for receipt publication?
Allowed metadata: blockKind, routeFamily, screenFamily
marketplace_publication_as_trade_term_blockedIs public receipt publication blocked as a trade condition?
Allowed metadata: blockKind, policyArea, routeFamily
marketplace_verification_status_checkedDo public receipt verification handles resolve to safe statuses?
Allowed metadata: claimKind, resultStatus, routeFamily, visibilityState
privacy_grant_changedAre people able to understand and change field-level sharing grants?
Allowed metadata: accessLevel, fieldCount, decision
detail_request_submittedDo broad previews lead to explicit, consent-gated detail requests?
Allowed metadata: targetKind, candidateBucket, bothConsented
detail_request_resolvedCan detail requests resolve without pressure or hidden disclosure?
Allowed metadata: targetKind, decision, stage
safety_report_submittedWhere do visitors flag coercion, fraud, pressure, or externality concerns?
Allowed metadata: targetKind, stage
match_consent_recordedDo proposed introductions record both-party consent before identity-specific disclosure?
Allowed metadata: bothConsented, stage, hasMatch
background_scan_runCan operators review broad matching signals without raw private text?
Allowed metadata: matchesCreated, candidateBucket, taskCount
performance_metric_recordedDo core routes stay fast enough for mobile and first-time visitors?
Allowed metadata: metricName, metricRating, metricValueBucket
donation_route_clickedDo visitors reach external donation routes from clear non-custodial pages?
Allowed metadata: targetKind, hasTargetUrl, causeAreas
donation_loggedCan users record external-payment evidence for review?
Allowed metadata: causeAreas, stage, hasSession
evidence_submission_startedWhere do users begin proof submission for commitments or public-good actions?
Allowed metadata: targetKind, stage
public_good_action_loggedAre shared public-good actions becoming reviewable records?
Allowed metadata: causeAreas, stage, taskCount
Route health is checked on mobile and desktop against explicit loading, content, and script budgets. The executable baseline command is MORALTRADE_BASE_URL=http://127.0.0.1:3000 npm run measure:routes.
DOM content loaded target: 10000ms. Load target: 15000ms. Minimum body text: 400 characters.
Measurement is useful only when participants can inspect the surrounding privacy, reliability, validation, transparency, and update commitments.