P

GitHub Copilot Prompt to Create a Loyalty Program

GitHub Copilot is an AI-powered development assistant that excels at generating structured and functional code. To create a loyalty program, Copilot becomes a valuable ally: it understands complex business logic such as point calculation, reward tiers, expiration rules, and customer engagement mechanics. By formulating a precise prompt, you get a complete architecture covering the data model, APIs, point accumulation and redemption logic, and admin interfaces. Whether you're developing a tiered program for e-commerce, a cashback system for a mobile app, or a referral program for a marketplace, GitHub Copilot generates production-ready code while respecting the best practices of your tech stack. The main challenge is to clearly specify the business rules — point conversion rates, reward unlock conditions, member status management — so that the generated code is directly usable. This guide offers an optimized prompt and its variants to create a robust, scalable loyalty program tailored to your specific needs.

The prompt

GitHub Copilot

Create a complete loyalty program with the following specifications:

Data model:

  • Table members: id, user_id, tier (bronze/silver/gold/platinum), total_points, lifetime_points, joined_at, tier_expires_at
  • Table transactions: id, member_id, type (earn/redeem/expire/adjust), points, source (purchase/referral/bonus/review), reference_id, created_at
  • Table rewards: id, name, description, points_cost, tier_required, stock, is_active
  • Table tier_rules: id, tier_name, min_points, multiplier, benefits_json

Business rules:

  • Point earning: €1 spent = 10 points, bonus x1.5 for Silver, x2 for Gold, x3 for Platinum
  • Tiers: Bronze (0-999), Silver (1000-4999), Gold (5000-14999), Platinum (15000+)
  • Points expire after 12 months of inactivity
  • Tier reevaluation every quarter based on lifetime_points from the last 12 months
  • A member cannot drop more than one tier per quarter

REST API to implement:

  • POST /members/enroll: enroll in the program
  • POST /members/{id}/earn: credit points after purchase
  • POST /members/{id}/redeem: redeem points for a reward
  • GET /members/{id}/balance: balance, tier, recent history
  • GET /members/{id}/rewards: available rewards based on tier and balance
  • POST /admin/tier-recalculation: quarterly reevaluation job

Stack: TypeScript, Node.js, PostgreSQL with Drizzle ORM. Include validations, error handling, unit tests for point calculations and tier transitions.

Personalize this prompt with Léa

Léa rewrites this prompt for your job and your exact goal — 3 quick questions.

Why it works

This prompt is effective because it explicitly defines the data schema, business rules with figures, and expected endpoints, leaving no ambiguity for Copilot about the target architecture. The specification of multipliers per tier, thresholds, and time constraints forces the generation of complete business logic rather than a generic skeleton. By specifying the tech stack and expected deliverables (validations, errors, tests), the prompt frames the quality of the produced code.

Expected result

You get a functional loyalty system with the complete Drizzle ORM schema, business services for point calculation with multipliers, automatic tier and expiration management, and documented REST API routes. The code includes unit tests covering critical scenarios: tier promotion and demotion, point expiration, attempted redemption with insufficient balance.

Variants by level

FAQ

How does GitHub Copilot handle complex tier and multiplier logic?
GitHub Copilot excels at generating conditional logic when the rules are explicitly defined in the prompt. By specifying the point thresholds for each tier (Bronze 0-999, Silver 1000-4999, etc.) and the associated multipliers, Copilot generates accurate calculation functions with the appropriate conditions. The trick is to always provide exact numerical values rather than vague descriptions. If the generated logic is incorrect, add concrete examples in the prompt: 'A Gold member spending €50 should receive 1000 points (50 × 10 × 2).'
Should the loyalty program be generated all at once or in multiple steps?
For optimal results, proceed in several steps with Copilot. Start with the database schema and TypeScript types, then ask for the business services (point calculation, tier management), then the API endpoints, and finally the tests. This incremental approach allows Copilot to leverage the context of code already generated in the file and produces more coherent code. Each step can be refined before moving to the next, avoiding the need to refactor a monolithic block.
How to ensure the generated code handles point expiration and edge cases correctly?
Explicitly include edge cases in your prompt: what happens if a member tries to redeem more points than they have, if points expire during a transaction, or if a member hits a tier threshold exactly. Also ask for unit tests targeting these scenarios. Copilot then generates safeguards such as balance checks before redemption, atomic transactions to avoid inconsistencies, and cleanup jobs for expiration. Always verify the generated date logic — that's where Copilot makes the most errors.

Related prompts

How to use this prompt

  1. Copy the prompt with the button above.
  2. Paste it into ChatGPT, Claude or your favorite AI assistant.
  3. Replace the bracketed variables with your details, then refine the result.

About Prompt Guide

Prompt Guide is a free library of 4800+ ready-to-use prompts for ChatGPT, Claude and other AIs, with guides to learn prompting and tools to build and optimize your own prompts.

More prompts to explore

Go further

Get new prompts every week

Join our newsletter.