Back to Data Analyst Job Simulation

๐Ÿ“š Prerequisites & Resources โ€” Data Analyst Job Simulation

Read this before starting the clock. The simulation assumes zero work experience, but it does assume you can operate a spreadsheet. If anything in the checklists below is new to you, spend 2โ€“4 hours with the resources first โ€” the timer is unforgiving, the prep is free.


Who this is for

Freshers and career-switchers targeting Data Analyst / Business Analyst / MIS Analyst roles. If you can do both checklists below, you're ready. If you can't yet โ€” that's exactly what this page fixes.


โฑ๏ธ The rules at a glance

RuleWhat it means for you
The clockStarts when you start a ticket, pauses while your work is in review, and resumes on retry. Your total active time is what ranks you on the weekly leaderboard.
First submission โ€” 12 hoursMake at least one submission within 12 hours of starting, or the simulation deactivates.
Everything โ€” 48 hoursSubmit all tickets within 48 hours of starting. Plan it like a real take-home: one sitting per ticket.
Free submissions2 per ticket. After that: one instant retry for โ‚น49, or wait 6 hours for a free slot.
Your datasetGenerated uniquely for you and stays the same for your whole run โ€” a retry means fixing your existing file, not starting over. Copied answers from anyone else's file will fail automatically.
Deactivated?Restart free after 7 days, or instantly for โ‚น99. A restart issues a fresh dataset and resets progress.
ResultsWithin 24 hours, usually much sooner โ€” you'll get an email plus in-app status the moment grading finishes.

๐Ÿงฎ How you're graded (pass: 60/100 on DA-101, 70/100 on DA-102)

  • DA-101: 70% automated check of your cleaned file against the known error list (every injected error, fix by fix โ€” and modifying rows that were already clean loses marks), 30% AI review of your data-quality note (โ‰ฅ3 issue types, counts, drop justification, clarity).
  • DA-102: 60% automated numeric answers computed from your dataset (tolerances are printed in the ticket), 40% AI review of your memo โ€” where decision quality (did you look beyond the single metric you were given?) is worth as much as being right.
  • Feedback always tells you the score math and exactly which operations lost marks, so a retry is never a guess.

โœ… Skill checklist โ€” Ticket DA-101 (Data Cleaning)

You should be able to do each of these in Excel or Google Sheets (Python equivalents shown for those going that route):

SkillExcel / SheetsPython (pandas)
Sort & filter a tableData โ†’ Filterdf.sort_values(), boolean masks
Remove exact duplicate rowsData โ†’ Remove Duplicatesdf.drop_duplicates(keep="first")
Trim stray spacesTRIM().str.strip()
Fix casing against an official list=XLOOKUP(LOWER(TRIM(A2)), LOWER(list), list) โ€” or plain Find & Replace per broken valuebuild a dict from the official names: fix = {n.lower(): n for n in official} then .str.strip().str.lower().map(fix)
Find & replace specific valuesCtrl+H, or SUBSTITUTE().replace({...})
Standardize dateshelper formulas โ€” see the date recipe belowpd.to_datetime(col, dayfirst=True, format="mixed") (pandas โ‰ฅ 2.0), then .dt.strftime("%Y-%m-%d")
Convert text to numbersVALUE() + SUBSTITUTE() to strip โ‚น, commas, "INR"`.str.replace(r"[โ‚น,]
Find blank cellsFilter by (Blanks), ISBLANK()df.isna()
Fill values via a lookup tableVLOOKUP() / INDEX+MATCH (city โ†’ region).map(city_to_region)
Delete rows matching a conditionFilter โ†’ select rows โ†’ deletedf = df[df["quantity"] > 0]

โš ๏ธ The #1 mark-loser: blanket PROPER() / .str.title(). Several official product names use deliberate casing (43-inch Smart TV, Power Bank 20000mAh, Sunscreen SPF50โ€ฆ). A formula that title-cases every row silently corrupts ~a quarter of the file โ€” and the grader counts each one as a wrongly modified clean row. Fix only the broken rows, by matching them to the official spellings printed in the ticket.

๐Ÿ“… The date recipe (Excel/Sheets). The file mixes three broken formats, and DATEVALUE() behaves differently per locale โ€” so parse them yourself with helper columns, then format everything =TEXT(cell,"YYYY-MM-DD"):

  • 08/03/2026 (day first) โ†’ =DATE(RIGHT(A2,4), MID(A2,4,2), LEFT(A2,2))
  • 08-03-26 (day first, 2-digit year) โ†’ =DATE(2000+RIGHT(A2,2), MID(A2,4,2), LEFT(A2,2))
  • Mar 8, 2026 โ†’ DATEVALUE() handles this one fine in most locales
  • Sanity check when done: every date must fall in Janโ€“Jun 2026. A date like 2026-08-03 means you swapped day and month.

๐Ÿ“ค Deliverable format (the auto-grader is literal): same 11 columns, same names, same order, no index column (pandas: to_csv(index=False)), quantity/total_revenue as plain numbers (1751, not 1751.0 or โ‚น1,751), dates as YYYY-MM-DD text.

๐Ÿ”Ž Self-check before submitting: every surviving row should satisfy quantity ร— unit_price = total_revenue. One failing row = a parsing error you haven't found yet.

Self-test: given a column with " MUMBAI ", bombay, and Mumbai, can you make all three read Mumbai โ€” without touching a fourth cell that's already correct? If yes in under 2 minutes, you're ready for DA-101.


โœ… Skill checklist โ€” Ticket DA-102 (Analysis & Recommendation)

Work from your cleaned DA-101 file โ€” a wrong answer here usually traces back to a cleaning mistake there (wrong drops shift every total).

SkillExcel / SheetsPython (pandas)
Summarize revenue by a categoryPivot Table (rows: region, values: SUM of revenue) or SUMIFS()df.groupby("region")["total_revenue"].sum()
Group by month from a datePivot: Group dates by month, or a helper column =TEXT(date,"YYYY-MM")df["order_date"].str[:7] or .dt.to_period("M")
% change between two numbers=(new-old)/old, format as %.pct_change()
% share of total=part/SUM(total)x / x.sum()
Average Order Value (AOV)=SUMIFS(revenue,channel,X)/COUNTIFS(channel,X)groupby()["revenue"].sum() / groupby().size()
Compare a metric across months for one segmentPivot with two dimensions (month ร— channel)pivot_table(index="month", columns="channel", values="total_revenue", aggfunc="sum")
Write a short business memoRecommendation first โ†’ 2+ metrics as evidence โ†’ one next step. ~150 words, readable in 40 seconds.โ€”

Answer formats matter: percentages to 1 decimal place, revenue as a plain number, direction as exactly one of Growing / Declining / Mixed. The tolerances (ยฑ1% on revenue, ยฑ2 points on MoM %, ยฑ1 point on share %) are printed in the ticket โ€” they forgive rounding, not method errors.

Concepts to know (60-second definitions below): MoM growth, AOV, revenue share, trend vs. snapshot.


๐Ÿ“– Mini glossary

  • MoM (Month-on-Month) growth โ€” % change vs the previous month: (this โˆ’ last) รท last ร— 100. The board's favorite momentum metric.
  • AOV (Average Order Value) โ€” total revenue รท number of orders. Tells you how much a typical order is worth, independent of how many orders there are.
  • Revenue share โ€” one segment's revenue as a % of the whole. A snapshot.
  • Trend vs. snapshot โ€” a snapshot says where something is; a trend says where it's going. Decisions made on snapshots alone are how companies kill their fastest-growing channel. (That's a hint.)
  • Exact duplicate โ€” a row identical in every column, usually a system export error.
  • Canonical value โ€” the one official spelling of a thing (Bengaluru, not BLR; 43-inch Smart TV, not 43-Inch Smart Tv).

๐Ÿšซ Top 5 ways people lose marks (all avoidable)

  1. Blanket title-casing product names โ€” corrupts deliberately-cased names at scale. Fix only broken rows, against the official lists.
  2. Filling what should be dropped โ€” blank quantity/revenue rows and zero/negative quantities must be deleted, per the finance rule in the ticket. Blank region is the only fill.
  3. Day/month swaps โ€” 08/03/2026 is 8 March, not 3 August. Every date lands in Janโ€“Jun 2026; anything outside that range is your parser lying to you.
  4. A 12th column โ€” pandas' index column (to_csv(index=False) forgets) or an Excel helper column left in. The submit check rejects it before grading.
  5. Modifying clean rows โ€” every unnecessary "fix" costs marks. When in doubt, leave it alone.

๐Ÿ”— Free resources

Spreadsheets

Python route (optional)

Structured deep-dive (optional, not required to pass)

From OneRoadmap (replace with live links at launch)

  • ๐Ÿ“„ Data Analyst Fresher Guide (PDF) โ€” (#)
  • ๐ŸŽ“ Data Analyst "Big 4 Ready" Certification โ€” the natural next step after clearing this simulation โ€” (#)
  • ๐Ÿ“„ Excel Interview Questions Pack โ€” (#)

๐Ÿ‹๏ธ 30-minute warm-up drill (recommended)

  1. Make a 20-row fake sales table with deliberate mess: 2 duplicate rows, 3 date formats, "โ‚น1,200" as text, two blank cells, " delhi ", and one product name with intentional casing (e.g. Power Bank 20000mAh typed as power bank 20000mah).
  2. Clean it using only the checklist above โ€” no googling during the drill. Fix the product name back to its exact official spelling without title-casing the whole column.
  3. Build one pivot: revenue by category. Compute one % change and one % share.

Under 30 minutes and correct? Start the simulation. Over 30 minutes? Spend an evening with the resources first โ€” the leaderboard clock counts everything, including panic-googling XLOOKUP.


โš™๏ธ Practical setup

  • Works with: Excel (2016+), Google Sheets (free), LibreOffice Calc, or Python. We grade the output, never the tool.
  • The dataset is a ~5,000-row CSV (~500 KB) โ€” any laptop handles it. On mobile? Google Sheets works, but a laptop is strongly recommended.
  • Plan your sitting before you press Start: download โ†’ clean โ†’ self-check โ†’ submit in one go beats coming back cold. The clock pauses during review, so the gap between tickets costs you nothing.