SALAD (Adelanto de Nómina) · Dummy Site · PRD
Author: Elena · Created: August 2026 · Updated: August 2026 · Tier: L · Links: designs in Miro and Figma (final version is an open question), tickets TBD, analytics dashboard TBD
1. Context and Rationale
Problem. Novacard plans to enter Mexico's payroll market with Salad (Adelanto de Nómina, a credit limit based on salary). Only banks serve this segment; fintechs don't compete there yet. Before launching the full product, demand has to be validated: are users willing to move their salary from their bank to Novacard in exchange for benefits? The pain today is that there's no data confirming demand, and launching without validation is a high financial and operational risk.
Evidence. Facts (confirmed):
- Average salary in Mexico is about 19,000 MXN, minimum about 9,600 MXN (source: client meeting, 19 June 2026)
- Market norm: credit issued doesn't exceed 40–50% of the customer's salary
- Target source banks: BBVA, Banorte, Santander, Citibanamex, Banco Azteca, Scotiabank, BanCoppel
Hypotheses (not confirmed):
- Users are willing to move their salary to a fintech in exchange for benefits
- Novacard's offer (limit, debit card, cashback, and yield) is attractive enough to convert
Every funnel event is sent to the dataLayer through dataLayer.push, and the hypotheses are tested on that data.
Goal and success metric. Test the hypothesis that Mexican users are willing to move their salary to Novacard.
| Metric | Target | Status |
|---|
| Visit → completed form conversion | ≥ X% (threshold TBD) | Open question Product owner (client), before launch |
| Step conversion through the funnel (1 → 2 → 3 → 4 → submit) | Diagnose drop-offs | Needs event tagging |
Non-goals (deliberately out of scope):
- A/B testing landing page variants
- CRM integration
- Automatic data export to the analytics system
- Onboarding existing Novacard customers
- Phone OTP verification
- Sending users to the mobile app after they apply
- Application scoring and underwriting
Strategic fit. Salad is the first step in Novacard's entry into Mexico's payroll market. The landing page is a demand-validation tool: its results decide whether the full product is worth launching. Market potential is rated high, and fintechs aren't present in it yet.
2. Solution
Main user flow:
| Step | Action |
|---|
| 1 | The user lands on the page from an ad (UTM + click_id) |
| 2 | Sees the hero with the Adelanto de Nómina offer of up to 50,000 MXN and taps “Check My Limit” |
| 3 | Calculator: enters their salary (slider, 5,000–30,000 MXN) and picks a pay frequency. The system shows the limit: min(salary × 40%, 50,000 MXN) |
| 4 | Sees the limit and taps “Apply” to go to the form |
| 5 | Form step 1, Basic info: name, email, phone, city, Novacard customer status |
| 6 | Step 2, Work: employment type, employer, tenure, industry, how the salary is paid |
| 7 | Step 3, Income and Nómina limit: salary, pay frequency, current bank, desired advance amount |
| 8 | Step 4, Transfer and consents: willingness to move the salary, motivation, two required checkboxes |
| 9 | “Join the Pilot” → confirmation screen “Application submitted” |
| 10 | Data, UTM, and click_id are saved to a table; the lead is tagged Salad in the LMS |
Functional requirements:
- Landing page: hero, “How it works”, “Why Nova” (5 benefits), calculator, FAQ
- Calculator: 5,000–30,000 MXN slider, pay frequency, real-time limit using min(salary × 40%, 50,000). CAT 46% / 58% / 87%, service fee 56 / 70 / 105 MXN per 1,000 MXN (weekly / twice a month / monthly)
- 4-step form with a progress bar, Back and Continue, and a final “Join the Pilot”
- Client-side validation of every field before moving to the next step
- After submitting, a confirmation screen with no redirect to the app
- Form data, UTM, and click_id saved to a table, with CSV export
- Leads tagged with a tag or field in the Novacard LMS
- Analytics events at every funnel step (see Data and analytics)
Design. Designs are linked in Miro and Figma; the final version is an open question, and only the SALAD_dummy_v3 prototype exists for now. Changes to the current app screen in the hero: Tarjeta de crédito → Adelanto de Nómina, and the Wallet icon is removed. The first form screen is merged with the calculator and cut down to full name and phone; the other steps are unchanged. Every “Apply” button leads to the form block, with no separate path through the calculator. The FAQ is unchanged.
States and edge cases:
| State | Behavior |
|---|
| Salary below 5,000 MXN on the slider | The slider minimum is 5,000 MXN; no lower limit is shown |
| 40% of salary above 50,000 MXN | The limit shows the 50,000 MXN ceiling |
| Required field empty | Highlight and error text; moving on is blocked |
| Invalid email or phone | Client-side format validation with an error message |
| Double click on submit | The button locks after the first click |
| Server error on save | Error message and an offer to retry; no data is lost |
| URL without UTM | The form works normally; UTM fields stay empty |
| Mobile browser | Fully responsive |
| Existing Novacard customer | The field records the answer; no special routing is needed in the MVP |
Business rules and logic:
- Limit formula: min(salary_MXN × 0.40, 50,000), calculated client-side in real time
- Service fee: 56 / 70 / 105 MXN per 1,000 MXN (weekly / twice a month / monthly)
- CAT (46% / 58% / 87%) is a mandatory regulatory disclosure on the calculator and in the FAQ
- Both consent checkboxes in step 4 are required to submit
- “Existing NovaCard customer?” is required; in the MVP it affects analytics segmentation, not routing
Data and analytics (events):
| Event | Trigger | Parameters |
|---|
page_view | Landing page loads | utm_source, utm_medium, utm_campaign, utm_content, click_id |
calculator_open | Click on “Check My Limit” | none |
calculator_result | Slider change (debounced) | salary_amount, salary_frequency, calculated_limit |
form_start | CTA click after the calculator | calculated_limit |
form_step_complete | Moving from step N to N + 1 | step_number |
form_step_back | Click on “Back” | step_number |
form_submit | Click on “Join the Pilot” | current_bank, transfer_intent |
form_submit_success | Saved successfully | none |
form_submit_error | Error on save | error_code |
3. Dependencies and Impact
Impact on what exists. The landing page is a new artifact; the main Novacard site isn't directly affected in the MVP. The LMS needs a field or tag to mark Salad leads: a small change, but it needs sign-off from the LMS team. Salad UTM tags will flow into the shared marketing analytics, so filtering rules have to be agreed with marketing in advance.
Dependencies:
| Dependency | Owner | What's needed |
|---|
| Novacard LMS | LMS team | A field or tag for Salad leads, and the data transfer format (campaign UID) |
| Marketing analytics | Client's marketing | UTM scheme for the Salad campaign |
| Client's legal team | Novacard legal | Aviso de privacidad (LFPDPPP) and consent copy for step 4 |
| Design team | Designer | Final designs in Figma |
| Tech lead and DevOps | Tech lead | Tech stack, domain or subdomain, hosting |
| Ad platforms | Marketing | Campaign setup with correct UTM and click_id |
Contracts and compatibility. Not applicable: the landing page runs as an isolated instance, with no integration with the main Novacard database.
Impact on adjacent metrics. Salad UTMs could skew Novacard's overall traffic numbers; mitigation: filtering agreed with marketing. Salad leads in the shared LMS funnel could skew the main product's conversion; mitigation: a mandatory Salad tag.
Non-functional requirements. LCP ≤ 2.5 s on mobile, critical for Mexico's mobile-first market. Fully responsive from 320 px, on iOS Safari and Chrome for Android. LFPDPPP compliance, with the aviso de privacidad as a required part of the form. Personal data in secure storage, with CSV export only for authorized staff. Baseline WCAG 2.1 AA. Analytics events retried on failure; data loss isn't acceptable.
4. Delivery and Verification
Acceptance criteria (Given / When / Then). Calculator:
- Given a salary of 20,000 MXN / When the user moves the slider / Then the limit is 8,000 MXN
- Given a salary of 30,000 MXN / When the user moves the slider / Then the limit is 12,000 MXN (30,000 × 40%; the 50,000 MXN ceiling can't be reached within the current 5,000–30,000 slider, see the open question below)
- Given a salary of 5,000 MXN / When the user moves the slider / Then the limit is 2,000 MXN
Form validation:
- Given “Full name” is empty / When the user taps Continue / Then the field is highlighted and moving on is blocked
- Given an email without “@” / When the user taps Continue / Then a validation error shows
- Given neither consent is checked / When the user taps “Join the Pilot” / Then the button is disabled or an error shows
Saving data:
- Given the form was submitted / When the data is saved / Then the “Application submitted” confirmation screen shows, with no redirect to the app
- Given the user arrived with
?utm_campaign=salad&utm_source=fb / When the form is submitted / Then those values are saved in the record - Given a click_id in the URL / When the form is submitted / Then the click_id is saved
LMS tagging:
- Given a Salad lead is saved / When the record reaches the LMS / Then it's tagged “Salad” and the client's product owner can filter by it
Scope by phase:
| Phase | Content |
|---|
| MVP | Landing page (hero, how it works, why Nova, FAQ), calculator, 4-step form with validation, confirmation screen, saving data with UTM and click_id, CSV export, LMS tagging, analytics events, responsive layout, aviso de privacidad |
| After MVP | A/B testing, real-time analytics dashboard, CRM integration, email notification after applying |
Rollout and rollback. A separate subdomain or domain, not connected to the main Novacard database (decided with the tech team on 4 June 2026). Launch behind a feature flag, with ad traffic only after QA. Rollback: turn off the flag or change the DNS record, with recovery under 30 minutes and no impact on the main site. Data collected before a rollback is kept and can be exported.
Launch analytics. Results are reviewed at 7 days (operational) and 14 days (the main decision on the hypothesis). Continue if conversion is at or above the threshold, which is still an Open question for the product owner (client). Stop if form save errors exceed 5%, or if conversion is below 50% of the threshold after 7 days. Who analyzes the results is an Open question.
Open questions and risks:
| Question or risk | Owner | Due | Priority |
|---|
| Conversion threshold | Product owner (client) | Before launch | High |
| Aviso de privacidad and LFPDPPP consent copy | Client's legal team | Before launch | High |
| How Salad leads are tagged in the LMS (tag or field) | LMS team | Before development | High |
| Tech stack and domain or subdomain | Tech lead | Before development | High |
| Final Figma designs | Designer | Before development | Medium |
| UTM scheme agreed with marketing | Client's marketing | Before ads launch | Medium |
| Who analyzes the results and makes the call | Product owner | Before launch | Medium |
| Is an email needed after a successful application? | Product owner (client) | Before development | Low |
| Is the demand hypothesis backed by data, or only being tested here? | Unassigned | Unset | Medium |
| What are the customer complaint stats (38% / 27% / 20% / 15%) based on? | Unassigned | Unset | Low |
| The limit ceiling was raised to 50,000 MXN, but the salary slider still stops at 30,000 MXN, so the new ceiling can't be reached. Raise the slider maximum, and to what? | Unassigned | Before development | High |
| CAT (46% / 58% / 87%) and the service fee (56 / 70 / 105 MXN per 1,000) were calculated for the old ceiling. Are they still valid at 50,000, or do they need recalculating? | Finance and legal team | Before launch | High |