gofri Why two g's? When I was a kid my grandma called me Gofri, and the family picked it up. She said the G hard, almost twice, so I write it twice.
production

Curriculum-aware recommendations

for
Ticmas
when
2023–24
Problem
Teachers were not using the recommendations.
My contribution
Led a recommender experiment, redirected it after teacher interviews, and rolled the redesign out to every customer.
Decision
Stop iterating on usage-based personalisation and change the objective to curriculum alignment, on the same infrastructure.
Delivered
Recommendations organised by curriculum topic, piloted for two months, then rolled out to all customers.
Result
Cumulative activated teachers rose from about 50 to over 1,000 by the month after rollout, and the redesign reached every Ticmas customer.
Status
production · 2023–24

50 → 1,000+teachers activated, cumulative

what I foundMy first bet, personalising from usage and engagement data, barely moved anything.

what I foundIn the teacher interviews, run by the product owner with me in the room, the real constraint appeared: strict curriculum requirements.

v1 · one generic list
  • Recommendations should follow the topic I am teaching.
  • I want resources for the level of my class.
  • I do not want to search the whole catalogue.
  • Fraction stripsFractions
  • Story mapsReading
  • Food chainsEcosystems
  • Reading dataFractions · Ecosystems
about 501,000+ startmonth after rollout

Pilot: about 50% lower 30-day inactivity than non-pilot schools (observational).

From a generic list to curriculum-aware recommendationsreconstruction, illustrative cumulative

the pivot

A flat result, then teachers spoke

  1. v1 hypothesisPersonalize recommendations from usage and engagement data.
  2. flat resultIt changed little.
  3. teacher interviewsTeachers wanted to use Ticmas but had strict curriculum requirements.
  4. curriculum objectiveThe objective became alignment with the curriculum.
  5. same infrastructure, new objectiveThe recommendation objective changed on the same infrastructure, then rolled out to all customers.

how it works

From curriculum text to a recommendation

In

  • curriculum requirements
  • content
  • projects
  1. split into topics
  2. embed
  3. match by proximity

Out

  • next project
  • activity inside an active project
  • link between curricular and project material
  • Fraction strips
  • Story maps
  • Food chains
  • Reading data

teacher-created content joins asynchronously

  1. split into topics An LLM splits curriculum requirements into topics.
  2. embed Topics, content and projects are embedded.
  3. match by proximity Vector proximity picks what to recommend; teacher-created content is added asynchronously.
reconstruction, illustrative

the evidence

What moved, and how far to trust it

Activated: a teacher's first assignment to a class; counted cumulatively, including the first 50, through the month after rollout, so it is not a monthly rate.

roughly 50% lower 30-day inactivity

Inactive: an activated teacher with no new class assignment in 30 days; this is inactivity, not customers lost.

Pilot schools against non-pilot schools of the same district over the same period. Observational: no claim of causality or significance; rates and cohorts unknown.

rollout

Rolled out to all Ticmas customers

Colombia and Mexico managers reported better usage, renewals, activation and easier selling.

Qualitative manager feedback.

ownership

Who did what, and when

  1. v1 personalization
  2. teacher interviews
  3. curriculum-aware pilottwo months
  4. all customers
  • MeTechnical experiment, pipeline, notebooks, models on Bedrock, interfaces, reviews, some backend replacements
  • The product ownerRan the teacher interviews, with me present; I led the experiment, pipeline and technical decisions
  • Software engineersMost application code

What shipped

Same infrastructure. Different objective.

Method and caveats

Rates and cohort sizes are unavailable.

  • Pilot: two months