Blog

Habit Tracking with Custom Properties: Beyond Simple Checkboxes

2026-01-18 · 13 min read · To-Track Team

Most habit trackers reduce your progress to a simple checkbox: Did you work out today? ✅ or ❌. But real habits aren't binary. A 20-minute walk isn't the same as a 90-minute strength training session. Reading 5 pages differs from finishing 50. Meditation for 10 minutes versus 45 minutes—both "count," but the impact varies wildly.

Quantitative habit tracking captures what checkbox apps miss: intensity, duration, quality, and metrics that reveal real progress. When you track how many reps, how heavy the weights, how long you studied, or how you felt during the activity, you build a data-rich history that shows improvement over time.

To-Track's custom properties system transforms a task manager into a powerful habit tracker. With 19 default properties (Duration, Reps, Weight, Mood, Energy Level, and more) plus unlimited custom properties, you can track any metric that matters—then analyze trends to optimize your habits.

This guide shows you how to move beyond checkboxes and build a quantified self-tracking system for fitness, learning, health, and productivity habits.

The Problem with Binary Habit Tracking

Traditional habit trackers (Habitica, Streaks, Done) focus on streak maintenance: did you do it today, yes or no? This creates problems:

1. All Completions Are Equal

You did 10 pushups? Great! Checkbox checked. ✅ You did 100 pushups? Same checkbox. ✅

Both show "completed," but one represents 10x more effort. Your progress chart shows identical results, hiding real improvement.

2. No Context Captured

  • Workout: Did you lift heavy? Light? Mix? Who knows.
  • Reading: 5 pages of a textbook ≠ 50 pages of fiction
  • Meditation: Eyes closed for 5 minutes ≠ deep practice for 45 minutes

Without context, you can't distinguish low-effort check-the-box days from breakthrough performances.

3. Missed Insights

When you only track completion, you miss patterns:

  • Does heavier weight correlate with lower reps (as expected)?
  • Do morning workouts have higher energy levels than evening?
  • Does mood improve on days with longer meditation?
  • Does reading speed increase over time?

These insights require quantitative data, not checkboxes.

4. Arbitrary "Streaks" Gamification

Habit apps prioritize unbroken streaks. Miss one day due to illness or travel, your 47-day streak resets to zero. This punishes reasonable breaks and creates anxiety around "maintaining the streak" rather than actual progress.

Better approach: Track metrics over rolling averages. If your average weekly workout duration increases from 180 minutes to 240 minutes over 3 months, that's real progress—even if you skipped a few days.

To-Track's Custom Properties: Quantitative Tracking

To-Track approaches habits differently: tasks can have custom properties that log numeric or categorical data on completion.

How It Works

  1. Create a recurring task (e.g., "Morning Workout")
  2. Assign properties (e.g., Duration, Reps, Weight, Energy Level)
  3. Complete the task and log property values (e.g., 45 minutes, 50 reps, 185 lbs, High energy)
  4. Task auto-resets to TODO (if using "any-time" recurring mode)
  5. Property logs accumulate in the database for trend analysis

Each completion creates a property log entry with timestamp, allowing you to:

  • Chart progress over time
  • Calculate averages, trends, and personal records
  • Identify patterns (e.g., "I lift heavier on Mondays")
  • Export data for external analysis

Default Properties: 19 Ready-to-Use Metrics

To-Track includes 19 pre-configured properties across two types:

Numeric Properties (11 total)

  1. Duration: How long did it take? (e.g., 45 minutes)
  2. Quantity: How many? (e.g., 100 pages read)
  3. Distance: How far? (e.g., 5.2 miles)
  4. Weight: How heavy? (e.g., 185 lbs)
  5. Reps: How many repetitions? (e.g., 50 pushups)
  6. Score: Numeric rating (e.g., 87/100)
  7. Sets: How many sets? (e.g., 3 sets)
  8. Calories: Energy burned/consumed (e.g., 450 kcal)
  9. Heart Rate: BPM (e.g., 145 bpm)
  10. Temperature: Degrees (e.g., 98.6°F)
  11. Money: Currency amount (e.g., $12.50)

Enum Properties (8 total)

These have predefined dropdown values:

  1. Difficulty: Very Easy / Easy / Medium / Hard / Very Hard
  2. Energy Level: Low / Medium / High
  3. Quality: Poor / Fair / Good / Excellent
  4. Focus: Low / Some / High / Deep
  5. Priority: Lowest / Low / Medium / High / Highest
  6. Mood: Very Negative / Negative / Neutral / Positive / Very Positive
  7. Weather: Sunny / Cloudy / Rainy / Snowy / Stormy
  8. Satisfaction: Very Dissatisfied / Dissatisfied / Neutral / Satisfied / Very Satisfied

Mixing Properties for Rich Context

The power comes from combining properties:

Workout task:

  • Duration: 60 minutes
  • Reps: 75 (total across exercises)
  • Sets: 5
  • Weight: 200 lbs (max lift)
  • Difficulty: Hard
  • Energy Level: Medium
  • Mood: Positive

This single log entry captures far more than ✅ "worked out."

Use Case 1: Fitness Tracking

Let's build a comprehensive workout tracking system:

Setup

Task: "Strength Training" (recurring: any-time) Properties:

  • Duration (numeric)
  • Weight (numeric) - max lift of the session
  • Reps (numeric) - total reps across all sets
  • Sets (numeric)
  • Difficulty (enum)
  • Energy Level (enum)
  • Mood (enum)

Logging a Session

Monday, January 13, 2026:

  • Duration: 75 minutes
  • Weight: 225 lbs (deadlift PR!)
  • Reps: 120 (total across bench, squat, deadlift)
  • Sets: 6
  • Difficulty: Very Hard
  • Energy Level: High
  • Mood: Very Positive

Wednesday, January 15, 2026:

  • Duration: 60 minutes
  • Weight: 200 lbs
  • Reps: 100
  • Sets: 5
  • Difficulty: Medium
  • Energy Level: Medium
  • Mood: Positive

Friday, January 17, 2026:

  • Duration: 45 minutes
  • Weight: 185 lbs
  • Reps: 80
  • Sets: 4
  • Difficulty: Easy
  • Energy Level: Low
  • Mood: Neutral

Analysis After 3 Months

Export property logs to CSV, analyze trends:

Insights:

  • Progressive overload: Max weight increased from 185 lbs (Jan) to 245 lbs (March)
  • Volume correlation: Higher energy level days = more reps (r = 0.71)
  • Recovery patterns: "Very Hard" workouts require 48+ hours before next "High energy" session
  • Mood boost: 89% of workouts end with Positive or Very Positive mood (vs. pre-workout Neutral)

Actionable changes:

  • Schedule intense workouts Monday/Thursday to allow 72-hour recovery
  • Morning workouts consistently show higher energy levels—prioritize AM sessions
  • Track caffeine intake to test correlation with performance

This depth of analysis is impossible with checkbox habit trackers.

Use Case 2: Learning & Study Habits

Track study sessions beyond "I studied today" ✅.

Setup

Task: "Study for Exam" (recurring: daily) Properties:

  • Duration (numeric)
  • Quantity (pages/problems completed)
  • Focus (enum)
  • Difficulty (enum)
  • Quality (enum) - how well you understood the material
  • Satisfaction (enum)

Example Logs

Week 1 Average:

  • Duration: 45 minutes/session
  • Quantity: 12 pages/session
  • Focus: Some (lots of distractions)
  • Difficulty: Hard
  • Quality: Fair
  • Satisfaction: Dissatisfied

Week 6 Average:

  • Duration: 90 minutes/session
  • Quantity: 28 pages/session
  • Focus: Deep (flow state)
  • Difficulty: Medium (material getting easier)
  • Quality: Excellent
  • Satisfaction: Satisfied

Insights:

  • Efficiency: Pages per minute increased from 0.27 to 0.31 (15% faster reading)
  • Comprehension: Quality improved from Fair → Excellent
  • Focus mastery: Deep focus sessions increased from 20% → 75% of study time
  • Difficulty perception: Material feels easier as knowledge compounds

Study optimization:

  • Deep focus correlates with 90+ minute sessions (shorter sessions = more "Some" focus)
  • Morning study: Quality = Excellent (85% of time)
  • Evening study: Quality = Good (50%) or Fair (40%)
  • Action: Schedule intensive study 8-10 AM, lighter review evenings

Use Case 3: Meditation & Mindfulness

Move beyond "I meditated" ✅ to understanding meditation quality.

Setup

Task: "Morning Meditation" (recurring: daily) Properties:

  • Duration (numeric)
  • Focus (enum) - how present you were
  • Mood (before → after tracking via two enum properties)
  • Energy Level (enum)
  • Quality (enum) - overall session quality

Advanced: Before/After Mood Tracking

Create two separate mood properties:

  • Mood (Before): enum property "pre_mood"
  • Mood (After): enum property "post_mood"

Log both on completion to track meditation's emotional impact.

Example Log

Day 1:

  • Duration: 10 minutes
  • Focus: Low (mind wandered constantly)
  • Mood Before: Negative
  • Mood After: Neutral
  • Energy: Medium
  • Quality: Poor

Day 30:

  • Duration: 30 minutes
  • Focus: High
  • Mood Before: Neutral
  • Mood After: Very Positive
  • Energy: High
  • Quality: Excellent

3-Month Analysis:

  • Duration growth: 10 min → 35 min average (3.5x increase)
  • Focus improvement: Low/Some (60% of sessions) → High/Deep (75%)
  • Mood shift: 87% of sessions show mood improvement (negative → neutral, neutral → positive)
  • Optimal duration: Sweet spot = 25-30 minutes (longer ≠ better quality)

Insight: Meditation quality plateaus after 30 minutes for you. Don't force longer sessions—focus on depth, not duration.

Use Case 4: Reading Habits

Track reading beyond pages-per-day streaks.

Setup

Task: "Read Non-Fiction" (recurring: daily) Properties:

  • Duration (numeric) - time spent reading
  • Quantity (numeric) - pages completed
  • Focus (enum)
  • Difficulty (enum) - text complexity
  • Satisfaction (enum)

Metrics to Track

Pages per minute: Quantity ÷ Duration Focus correlation: Deep focus sessions = higher pages/minute Difficulty impact: Hard texts = slower reading, but higher satisfaction

Example Insight

After 60 days of data:

  • Average speed: 1.8 pages/minute (108 pages/hour)
  • Deep focus sessions: 2.3 pages/minute (38% faster!)
  • Difficulty sweet spot: "Medium" difficulty = highest satisfaction (challenging but not frustrating)
  • Retention test: Quality = Excellent only when Focus = High or Deep

Optimization:

  • Read complex material during peak focus times (morning)
  • Switch to lighter reading when energy drops (evening)
  • Aim for "Medium" difficulty texts for sustained engagement

Creating Custom Properties

Beyond the 19 defaults, create unlimited custom properties for niche tracking:

Examples

Language Learning:

  • Vocabulary Words Learned (numeric)
  • Conversation Duration (numeric)
  • Fluency Rating (enum: Beginner / Intermediate / Advanced / Native)

Cooking:

  • Calories (numeric)
  • Cooking Time (numeric)
  • Recipe Difficulty (enum)
  • Taste Rating (enum)

Creative Writing:

  • Word Count (numeric)
  • Editing Passes (numeric)
  • Writing Quality (enum: Draft / Revision / Polished / Final)

Household Chores:

  • Rooms Cleaned (numeric)
  • Cleaning Duration (numeric)
  • Clutter Level Before (enum: Very Cluttered → Very Clean)

The possibilities are endless—if you can measure it, you can track it.

Property Logging Workflow

Here's how property logging integrates into your task workflow:

1. Create Recurring Task

Set up task with appropriate repeat mode:

  • Any-time: Habits without fixed scheduling (workout when convenient)
  • Scheduled: Fixed timing (daily meditation at 7 AM)

2. Assign Properties

Tap "Manage Properties" in the task detail view:

  • Select from 19 defaults
  • Create custom properties
  • Add/remove as needed

3. Complete Task & Log Values

When marking task DONE:

  • For numeric properties: Enter values (e.g., 45 for duration)
  • For enum properties: Select from dropdown (e.g., "High" energy)

Properties appear as form fields during completion.

4. Task Auto-Resets

For "any-time" recurring tasks:

  • Task immediately returns to TODO state
  • Dates clear
  • Property values reset (ready for next log)

For scheduled recurring:

  • Task returns to TODO
  • Dates advance to next occurrence (e.g., tomorrow for daily tasks)

5. Logs Accumulate

Each completion creates a property_log entry:

  • Task ID
  • Property ID
  • Value (numeric or enum reference)
  • Timestamp

Over time, you build a comprehensive dataset.

Analyzing Property Data

To-Track stores property logs in SQLite. Access your data:

Built-In Charts (Pro Feature)

Use AI statistics generator to create custom charts:

  • "Show average workout duration per week"
  • "Chart mood before vs after meditation"
  • "Display total reading pages per month"

Manual Export

Export property_log table to CSV:

SELECT
  t.todo,
  p.name AS property,
  CASE
    WHEN tp.value_numeric IS NOT NULL THEN tp.value_numeric
    ELSE pv.value
  END AS value,
  tp.created_at
FROM property_log tp
JOIN todos t ON tp.todo_id = t.id
JOIN properties p ON tp.property_id = p.id
LEFT JOIN property_enum_values pv ON tp.value_enum_id = pv.id
WHERE t.todo = 'Morning Workout'
ORDER BY tp.created_at DESC

Import into Google Sheets, Excel, or Python for analysis.

Example Analysis in Google Sheets

  1. Import CSV
  2. Create pivot table: Date (rows) × Property (columns) × Average value
  3. Chart trends: Line graph showing Duration over time
  4. Calculate correlations: =CORREL(Duration, Mood_After)

Advanced: Python Analysis

import pandas as pd
import matplotlib.pyplot as plt

# Load data
df = pd.read_csv('property_logs.csv')

# Filter workout logs
workouts = df[df['task'] == 'Strength Training']

# Plot weight progression
plt.plot(workouts['date'], workouts['max_weight'])
plt.title('Strength Progression Over Time')
plt.xlabel('Date')
plt.ylabel('Max Weight (lbs)')
plt.show()

# Calculate average reps per difficulty level
avg_reps = workouts.groupby('difficulty')['reps'].mean()
print(avg_reps)

Habit Tracking Best Practices

1. Start Simple

Don't track 15 properties per habit. Begin with 2-3 core metrics:

  • Workouts: Duration + Difficulty + Energy Level
  • Reading: Duration + Quantity + Focus
  • Meditation: Duration + Quality + Mood After

Add properties as you identify what matters.

2. Log Immediately After Completion

Memory fades fast. Log property values right after finishing:

  • Good: Finish workout, immediately log 75 min + Hard + High energy
  • Bad: Try to remember 3 days later ("Was Monday's workout 60 or 75 minutes? 🤔")

3. Define Enum Values Clearly

For subjective properties (Difficulty, Quality), create clear definitions:

Difficulty scale:

  • Very Easy: No challenge, could do 2x more
  • Easy: Light effort, comfortable
  • Medium: Moderate challenge, sustainable
  • Hard: Significant effort, near limits
  • Very Hard: Maximum effort, exhausted after

Consistent definitions = consistent data.

4. Review Weekly

Don't just log—analyze:

  • Every Sunday, review the week's habit data
  • Look for patterns (energy dips, performance peaks)
  • Adjust habits based on insights

5. Focus on Trends, Not Daily Variance

One bad day doesn't erase a positive trend. Use rolling averages:

  • Weekly average duration: Smooths daily variance
  • 30-day average quality: Shows long-term improvement
  • Month-over-month comparison: Reveals growth

Comparing To-Track to Dedicated Habit Trackers

How does To-Track stack up against specialized habit apps?

Feature To-Track Habitica Streaks Done Streaks (iOS)
Quantitative tracking ✅ 19 properties + custom ❌ No ❌ No ❌ No ❌ No
Recurring modes ✅ 3 types ⚠️ Limited
Data export ✅ Full SQLite ⚠️ Limited ⚠️ CSV
Privacy ✅ Offline-first ❌ Cloud ✅ iCloud ❌ Cloud ✅ iCloud
Property logging ✅ Built-in
Time tracking ✅ State-based
Custom workflows ✅ States + tags
Trend analysis ✅ SQL export ⚠️ Basic ⚠️ Charts ⚠️ Basic ⚠️ Basic

Verdict: If you want quantitative self-tracking beyond checkboxes, To-Track is unmatched.

Conclusion: Your Habits Deserve Better Than Checkboxes

Binary habit tracking—did you do it, yes or no—is better than nothing. But it leaves so much on the table:

  • No context (intensity, quality, duration)
  • No insights (patterns, correlations, trends)
  • No optimization (data-driven improvement)

Quantitative habit tracking with custom properties transforms your habits into a self-improvement laboratory. You're not just "working out"—you're progressively overloading, tracking volume, monitoring energy levels, and optimizing recovery. You're not just "reading"—you're measuring comprehension, analyzing focus patterns, and finding your ideal reading speed.

To-Track's property system makes this accessible:

  • 19 default properties cover 90% of use cases
  • Unlimited custom properties for niche tracking
  • Property logs create a historical dataset
  • SQLite storage enables deep analysis

Whether you're a fitness enthusiast tracking PRs, a knowledge worker optimizing study patterns, or a meditator measuring practice quality, custom properties give you the data you need to improve.

Your habits aren't checkboxes. They're complex, multidimensional activities that deserve sophisticated tracking. Go beyond ✅ and start measuring what truly matters.

FAQ

Q: Do I have to log every property every time? A: No. Properties are optional. If you skip a property (e.g., don't log "Mood" one day), it's simply not recorded. Log what's meaningful in the moment.

Q: Can I edit property logs after the fact? A: Yes. Property logs are editable via the task history timeline. Long-press any log entry to update values if you made a mistake or remembered additional details.

Q: How many properties should I track per habit? A: Start with 2-3 core metrics. Add more only if you find them valuable. Tracking 10 properties per habit creates logging fatigue.

Q: Can I create custom enum values? A: Yes! Enum properties let you add new values. For example, the default "Difficulty" has 5 values, but you can add "Extremely Hard" if needed.

Q: What happens to property logs when I delete a task? A: Property logs are preserved in the database even if you delete the parent task. Export data before deletion if you want to retain access via the UI.

Q: Can I track habits without recurring tasks? A: Yes, but recurring tasks are ideal because they auto-reset after completion. For non-recurring tasks, you'd manually create a new task each time (inefficient for daily habits).

Q: How do I calculate averages or trends? A: Export property_log table to CSV and analyze in spreadsheet software (Google Sheets, Excel) or use To-Track's AI statistics generator (Pro feature) for custom charts.

Q: Is there a limit to custom properties? A: No limit on creating custom properties. However, each task can only have a subset assigned (choose the properties relevant to that specific habit).


Ready to transform your habits? Download To-Track and start tracking the metrics that matter.

Try To-Track free

Offline-first tasks, custom states, time tracking. No account required.

Download for iOS