Quick Start Guide¶
This guide walks through the complete Askalot workflow from questionnaire design to statistical analysis.
Time to complete: ~15 minutes
Step 1: Design in Armiger¶
Navigate to armiger.dev.askalot.io for AI-assisted questionnaire creation with real-time SMT validation.
Create Your Questionnaire¶
Using AI Assistant:
Describe your survey requirements:
"Create a customer satisfaction survey. Ask about overall satisfaction, then conditionally ask about specific issues if satisfaction is low."
The AI generates QML code while the SMT solver validates logical consistency in real-time.
Example QML:
qmlVersion: "2.0"
questionnaire:
title: "Customer Satisfaction Survey"
codeInit: |
satisfaction_level = 0
needs_followup = 0
blocks:
- id: b_main
title: "Your Experience"
items:
- id: q_overall
kind: Question
title: "How satisfied are you with our service?"
codeBlock: |
satisfaction_level = q_overall.outcome
if q_overall.outcome <= 6:
needs_followup = 1
input:
control: Slider
min: 0
max: 10
labels:
0: "Very Dissatisfied"
5: "Neutral"
10: "Very Satisfied"
- id: q_reason
kind: Question
title: "What is the primary reason for your low rating?"
precondition:
- predicate: needs_followup == 1
input:
control: Radio
labels:
1: "Product quality"
2: "Delivery time"
3: "Customer service"
4: "Pricing"
- id: q_recommend
kind: Question
title: "Would you recommend us to others?"
input:
control: Switch
on: "Yes"
off: "No"
SMT Validation¶
Armiger automatically validates:
- ✓ Reachability: All questions can be reached
- ✓ Consistency: Validation rules are satisfiable
- ✓ Acyclicity: No circular dependencies
- ✓ Global satisfiability: Valid completion paths exist
Validation Output:
✓ All items reachable
✓ No circular dependencies detected
✓ Postconditions satisfiable
✓ Global formula: SAT
Flow paths: 2
Path 1: q_overall → q_recommend (satisfaction > 6)
Path 2: q_overall → q_reason → q_recommend (satisfaction ≤ 6)
Step 2: Build Campaign in Targetor¶
Navigate to targetor.dev.askalot.io to configure demographic targeting and launch your campaign.
Create Campaign¶
- Click "New Campaign"
- Configure settings:
- Name: "Q4 Customer Satisfaction"
- Target responses: 500
- Duration: 14 days
Import Respondents¶
Upload CSV or connect to user database:
user_id,email,age,gender,customer_segment
1001,[email protected],34,M,premium
1002,[email protected],28,F,standard
Configure Demographics¶
Target demographic distribution:
Age Distribution: - 18-24: 15% | 25-34: 30% | 35-44: 25% | 45-54: 20% | 55+: 10%
Customer Segment: - Premium: 30% | Standard: 70%
Targetor automatically calculates sample sizes and monitors real-time completion by segment.
Launch¶
- Attach the Customer Satisfaction questionnaire — this formally verifies it and pins the campaign to that exact version
- Review configuration
- Click "Launch Campaign"
Targetor generates unique survey links and begins distribution.
Step 3: Execute in SirWay¶
Respondents access sirway.dev.askalot.io via unique links.
Lazy Evaluation¶
SirWay evaluates questions dynamically based on current state:
- Initial state: Load questionnaire, initialize variables
- Dynamic flow: Present questions with satisfied preconditions
- Collect response: Execute
codeBlock, update state - Re-evaluate: Check preconditions for remaining questions
- Present next: Show newly eligible questions
Example Flow¶
Respondent: Slides satisfaction to 4/10
→ codeBlock executes: needs_followup = 1
→ Precondition evaluated: needs_followup == 1 ✓
→ Question appears: "What is the primary reason?"
→ Selects: "Delivery time"
→ Final question: "Would you recommend us?"
→ Survey complete
Contradiction-Free Guarantee¶
SirWay ensures respondents never encounter:
- ❌ Questions with unsatisfiable preconditions
- ❌ Validation rules contradicting previous answers
- ❌ Dead ends with no path forward
- ❌ Circular dependencies
Step 4: Analyze in Balansor¶
Navigate to balansor.dev.askalot.io for statistical correction and data export.
Build a Bundle¶
Balansor's home page is a board of Bundle cards. A Bundle binds one project, one questionnaire, and the campaigns you want to analyze into a single Bronze → Silver → Gold pipeline — every dataset step is scoped to it.
- Create a Bundle for "Q4 Customer Satisfaction" (project + questionnaire + its campaigns)
- Extract the Bronze dataset — raw responses with respondent demographics, no adjustments yet
- Balansor displays actual vs. target demographics
Response Distribution¶
| Segment | Target % | Actual % | Deviation |
|---|---|---|---|
| Age 18-24 | 15% | 12% | -3% |
| Age 25-34 | 30% | 33% | +3% |
| Premium | 30% | 35% | +5% |
| Standard | 70% | 65% | -5% |
Derive the Silver Dataset¶
Deriving Silver codes any open-ended answers into categories first, then calculates post-stratification weights over that coded case base:
Example Weights: - Age 18-24: 1.25 (under-represented) - Age 25-34: 0.91 (over-represented) - Premium: 0.86 (over-represented) - Standard: 1.08 (under-represented)
Corrected Results¶
Before Rebalancing: - Average satisfaction: 6.8/10 - Recommend rate: 72%
After Rebalancing: - Average satisfaction: 6.5/10 (adjusted) - Recommend rate: 68% (adjusted)
Export Data¶
Export in multiple formats:
CSV:
user_id,q_overall,q_reason,q_recommend,weight,segment
1001,4,2,0,1.08,standard
1002,8,NULL,1,0.86,premium
SPSS (.sav): Variable labels and weights included
Excel / Parquet: Full dataset with the weight column, ready for your analysis tool
Summary Statistics: Weighted means, confidence intervals, cross-tabulations
Complete Workflow Trace¶
Design → Campaign → Execute → Analyze¶
Armiger:
AI generates questionnaire
→ SMT validates: ✓ SAT, ✓ No cycles, ✓ All reachable
→ Saved as a new version of the questionnaire
Targetor:
Import 10,000 users
→ Select 1,200 (stratified sampling, 2.4× oversampling)
→ Launch campaign
→ Send unique survey links
SirWay:
User 1001 clicks link
→ Load QML, init: satisfaction_level=0, needs_followup=0
→ Present: q_overall
→ Collect: 4 → Execute: needs_followup=1
→ Present: q_reason (precondition satisfied)
→ Collect: 2 (Delivery time)
→ Present: q_recommend
→ Collect: 0 (No)
→ Complete: 3 items, 45 seconds
Balansor:
Load 500 responses
→ Calculate weights by demographic
→ Apply post-stratification
→ Export corrected data
→ Result: Weighted satisfaction 6.5/10 (CI: 6.2-6.8)
Next Steps¶
→ Creating Surveys - Learn QML syntax in depth
→ Theory - Understand mathematical foundations
→ API Reference - Integrate Askalot programmatically
Summary¶
Key Workflow:
- ✓ Design with AI + SMT validation in Armiger
- ✓ Build campaigns with demographic targeting in Targetor
- ✓ Execute surveys with lazy evaluation in SirWay
- ✓ Analyze with statistical correction in Balansor
Key Innovation: Cognitive offloading—AI generates questions, SMT ensures consistency, you focus on research goals.