In this article
  1. Before you start
  2. Why interviewers ask this
  3. One row of training data from first principles
  4. The Staff-level answer
  5. The rubric
  6. Three variants of this question
  7. Common mistakes
  8. Follow-up questions
  9. Sources

Before you start

This page sits inside the machine learning (ML) system design interview guide, where the round is explained end to end.

Why interviewers ask this

A wrong row quietly ruins every later step: the model learns the wrong thing, and the metrics look fine anyway. Candidates report this question in ML design rounds at large tech companies, often phrased as "what is one row, what is the label, what are the negatives?" It usually arrives right after the objective is stated.

A weak answer lists columns: "user features, item features, a label." A strong answer says what one row represents, where its label comes from, and when each value was known. A Staff-level answer also says what the label is while the outcome is still pending, how the same features will exist at serving time, and how the data is split so the future never leaks into the past. The question is short because the answer is a whole design in miniature.

One row of training data from first principles

Training example
A training example is one record of a dataset that a model learns from, holding the input values the model sees plus, in supervised learning, the correct answer; it is the same thing as one row of a table.
Label
A label is the recorded answer for a training example, the value the model should predict, such as "fraud", "clicked" or "kilowatt hours used per year".

In plain words

Picture a spreadsheet. Each line is one case you have already seen. The first columns describe the case, and the last column holds what happened. Google's ML Crash Course says an example is "analogous to a single row in a spreadsheet". The analogy breaks in one place: a real spreadsheet cell is fixed, but a training value must be what you knew at one moment in time.

A feature is a value that a supervised model uses to predict the label. An example with both is a labeled example; an example with features only is unlabeled. At serving time you only ever have the unlabeled kind.

Step 1: Decide what one row represents

A row is one example, so the first decision is the unit: one house, one transaction, one post, or one impression of a post to one user. The sources define an example but do not tell you how to pick the unit, so this is reasoning, not a rule. Choose the unit at which you will make a prediction in production, because the model must score exactly that thing.

Google's intro exercise gives a clean case: the features are square footage, location and year built, and the label is kilowatt hours used per year. One illustrative row: 1,850 square feet, a downtown location, built in 1987, label 11,200 kilowatt hours.

In a feed or fraud system add two more columns: an entity key, such as a user or a transaction, and the event timestamp. Each row needs an entity key and an event timestamp. You now know the row's skeleton: key, time, features, label.

Step 2: The label is a decision, and a late label is unknown, not negative

The label records what happened, and deciding when and how it is known is a design choice. A negative is a row whose outcome you observed to be "no", for example a post users saw and ignored. A row whose outcome has not arrived is unknown, not negative.

Chapelle (2014) studied advertising conversions that can happen up to a month after the click. A naive method treats every click without a conversion as a negative, which creates fake negatives; the paper observes that you cannot tell a late conversion from none at all. You have three choices: wait out a maturation window, discard rows that are too young, or model the delay.

Illustrative fraud case: 100,000 transactions, 500 fraudulent, chargebacks arriving after an assumed average of 21 days. In a snapshot where every transaction is 10 days old, only 189 fraud labels exist and 311 are missing.1 The naive recipe would call those 311 frauds "not fraud".

On an assumed 21-day average delay, 62.1% of fraud labels are still missing at day 10 and 5.7% at day 60.
Days since the transactionShare of fraud labels still missing
771.7%
1062.1%
1451.3%
3024.0%
605.7%
Most fraud labels are still missing in the first two weeksBar chart for an assumed 21-day average chargeback delay: the share of fraud labels still missing is 71.7% at day 7, 62.1% at day 10, 51.3% at day 14, 24.0% at day 30 and 5.7% at day 60.Fraud labels still missing (%)050100710143060Days since the transaction71.762.151.3245.7Diagram: Interview Clozo, CC BY 4.0 ·interview.clozo.ai/blog/what-is-one-row-of-your-training-data.html
On an assumed 21-day average delay, most fraud labels are still missing in the first two weeks.CC BY 4.0 — source: What is one row of your training data?
Text description of the diagram
  • The share of fraud labels still missing is 62.1% at day 10 and 5.7% at day 60.
  • On an assumed 21-day average delay, most fraud labels are still missing in the first two weeks.

Step 3: Features must be values from the prediction moment

Each feature value in a row must be the value known when the prediction would have been made, not a later one. If you join today's account balance to a label from last March, the row contains the future, and your evaluation scores look better than production will ever deliver. The Feast documentation names the fix, the point-in-time join, which takes for each row the latest feature value at or before the row's timestamp.

The join also stops looking back after a limit. Feast scans backward from the row's timestamp up to a maximum set by the time to live (TTL), so a stale value is not used.

Event time is not availability time: a value backfilled or corrected later can carry an old event timestamp and still leak in. Feast's point-in-time join documentation adds a created-timestamp filter (filter_by_created_timestamp=True) so each row only sees values that were already available.

Illustrative case: a transaction labeled at 2026-03-15 14:30 may use a balance written at 14:29 on the same day. A balance written on 2026-03-16 is excluded. You now know the rule: a row's features are those of its own timestamp.

Step 4: Log what you served and split by time

Training-serving skew is a difference between how a model performs in training and how it performs in serving. The Rules of Machine Learning trace it to differences in how the two pipelines handle data, to data changing between the two, and to a feedback loop between your model and your algorithm.

The best defense in Rule #29 is to save the features used at serving time and use that log for training, so the row is what the model really saw. Serving logs only exist for features already in production, so a new feature still needs a point-in-time backfill.

Then split by time, not at random: train on rows before a date and evaluate on rows after it. A random split puts later rows in training and their near-duplicates in test, so the score borrows from the future. Keep a final window whose labels have matured, or the evaluation inherits the delay problem of Step 2.

A training row is built in four honest movesFlow of four steps: choose the unit with an entity key and timestamp, record the label which may arrive late, join features as of that timestamp, then log served features and split by time.Key and timeone prediction unitLabelmay arrive lateFeaturesas of the timestampLog and splitserved features, time splitDiagram: Interview Clozo, CC BY 4.0 ·interview.clozo.ai/blog/what-is-one-row-of-your-training-data.html

A training row is built in four moves, and the label and feature timestamps decide whether it is honest.CC BY 4.0 — source: What is one row of your training data?
Step-by-step description
  1. Choose the prediction unit, a key and a timestamp.
  2. A late label is unknown, not negative.
  3. Join values known at the timestamp.
  4. Train on served features, split by time.
  • Each row needs an entity key and an event timestamp.
  • The label records what happened and may arrive late.
  • Feature values are taken as of the prediction time.
  • Log the features served and split train and test by time.

Knowing it is half the job. Saying it is the other half.

Interview Clozo is an AI interview copilot for real interview rounds: it hears the question and puts a strong answer on your screen, and you say it in your own words. See the features or how it works.

Start Free Trial →

The Staff-level answer

Interviewer asks

What is one row of your training data?

A strong answer

One row is one prediction unit, for example one transaction, with an entity key and an event timestamp. The features are values known at that timestamp, joined point-in-time so nothing from the future leaks in. The label is the outcome, such as a confirmed chargeback. Chargebacks arrive weeks late, so a young row is unknown, not negative: I wait out a maturation window, drop rows that are too young, or model the delay. I log the features I served and train on that log to avoid skew, and I split by time, never at random.

What makes it Staff-level: it states the unit, the time of every value, and the label's delay in one breath, and it names how the row will exist again at serving time.

The rubric

The answer improves by moving from a list of columns to a row with a unit, timestamped features and a label whose delay is handled.
DimensionWeak answerStrong answerStaff answer
CorrectnessLists feature columns onlyFeatures plus a label per rowAdds key, timestamp and the unit of prediction
Depth"Label is fraud or not"Says where labels come fromHandles delayed and missing labels explicitly
Trade-offsNo alternativesNames wait versus discardAdds modeling the delay and the cost of each
CommunicationJumps between topicsDefines row, then labelAnswers in the order key, time, features, label, split
Follow-up readinessSurprised by "negatives?"Explains negativesPre-empts leakage and serving skew

Three variants of this question

What are the negative samples?

A negative is a row whose outcome was observed to be "no", such as a post shown and ignored after a fair window. Rows with pending outcomes are not negatives; wait, drop them or model the delay. If you have dwell time, a threshold on it is a labeling decision, not a fact: tune it against a reviewed sample. If you sample negatives to save space, record the sampling rate so you can correct for it.

How do you handle feedback delay?

Say that the label is unknown until it arrives. Train only on matured rows, or label young rows as unknown and drop them, or fit a delay model as Chapelle (2014) does. For fraud, see the real-time fraud detection design.

How do you train a model to tell a scam from a post that only looks scammy?

Define the label by a written policy applied to the post, not by the look of it. Add near-miss rows, posts that resemble scams but were reviewed and cleared, as explicit negatives, and check whether reports or reviewers skew the labels. The harmful-content detection design goes deeper.

Common mistakes

  • "The row is just the input features." (wrong) A labeled row holds features and a label. (right) "A row is features plus a label, with a key and a timestamp."
  • "No conversion yet, so it is a negative." (wrong) The outcome may simply be late. (right) "It is unknown until the window closes; I wait, drop or model it."
  • "I join today's feature values to old labels." (wrong) That leaks the future. (right) "I join point-in-time, at or before the label's timestamp."
  • "I split randomly." (wrong) Future rows leak into training. (right) "I train on earlier dates and evaluate on later ones."
  • "Event-time joins can't leak." (wrong) A value backfilled or corrected later can keep an old event timestamp. (right) "I also filter by when the value was created, so only values already available are used."

Follow-up questions

Where do we get the labeled data from?

Name the sources, about seven, and for each say its delay and its bias. Logged user actions such as clicks: fast, but biased toward what was shown. Implicit signals such as dwell time: fast, noisy, and need a threshold. Explicit feedback such as likes or reports: sparse and self-selected. Human review: slow and costly, but the cleanest. Downstream outcomes such as chargebacks: weeks late. Rule hits or existing models as weak labels: instant, but they copy their own errors. Partner or third-party labels: depend on their definitions. Active-learning queues: target uncertain rows, so they are not a random sample.

Can you use user reports and human annotation to generate labels?

Yes, as one source, and state the caveats: reports reflect who chooses to report, and annotators need a written guideline and an agreement check. Use reviewed samples to audit the cheaper labels.

How do you manage interaction data you do not have much of, like comments or reshares?

Rare signals give few positives, so combine them with a denser signal in a multi-task setup, weight them by value, and avoid treating their absence as negative. This is a design choice with no single source, so state your weights as assumptions. A search ranking design shows a similar weighting problem.

How do we get the ground truth for a batch metric?

Use only matured labels from a time window after the training window, and say what share of rows is still pending. For rare events, review a sampled set by hand, as in anomaly detection. For a regression target, see estimated time of arrival (ETA) prediction.

Key takeaways
  • One row is one labeled example: features, a label, an entity key and a timestamp.
  • Choose the row's unit at the level where production will make a prediction.
  • A pending outcome is unknown, not negative: wait, drop the row or model the delay.
  • Features must be values known at the row's timestamp, joined point-in-time.
  • Log served features, then split train and test by time.

Sources

  1. Supervised Learning (ML Crash Course, Framing) — Google for Developers (accessed 2026-10-26; page undated), 26 Oct 2026
  2. Intro to ML: Test Your Understanding — Google for Developers (accessed 2026-10-26; page undated), 26 Oct 2026
  3. Rules of Machine Learning: Best Practices for ML Engineering — Google for Developers, Martin Zinkevich (accessed 2026-10-26; page undated), 26 Oct 2026
  4. Modeling Delayed Feedback in Display Advertising (DOI 10.1145/2623330.2623634) — KDD 2014 (Chapelle, Criteo), 24 Aug 2014
  5. Feature retrieval (point-in-time join) — Feast documentation (accessed 2026-10-26; page undated), 26 Oct 2026
  6. Point-in-time joins — Feast documentation (accessed 2026-10-26; page undated), 26 Oct 2026