To make the JCars Logistics project dataset useful in Power BI, first establish what one row represents, preserve the original values, and make every cleanup rule visible. Then reconcile recorded revenue against a separately calculated amount before building summary charts. The dataset’s author describes 276 sales records across 32 columns, but those figures—and the project’s reported margins—are not verified company-wide results.
What the JCars project data can—and cannot—tell you
A public GitHub project by Expertwriter006 describes a CSV associated by its author with Kenyan importer JCars Logistics. It contains 276 records and 32 columns. The author characterizes each row as a sales order line: a customer buying a particular vehicle in some quantity at a branch, with related payment, delivery, and rating details. These are descriptions of the project dataset, not independent confirmation of the company’s operations or a complete account of its sales.
As an Amazon Associate I earn from qualifying purchases.
The described fields span orders and dates; customer and location attributes; sales representatives and lead sources; vehicle details; quantities, prices, costs, discounts, delivery and logistics fees; recorded revenue; payment and delivery statuses; returns; ratings; and review counts. That breadth supports useful report questions, but it does not make the underlying values reliable by itself.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesThe project author reports a 20.8% gross margin as recorded and an 8.0% margin after excluding two suspicious transactions. The figures are the author’s calculations, not independently validated performance metrics. The writeup specifically cautions that the files reviewed do not establish validated headline revenue, profit, leading branch, best-selling make, or delivery rate. Treat both margins as evidence of sensitivity to questionable records—not as a company benchmark.
#1 Best Overall
Start with the row grain, not the charts
Before counting transactions or vehicles, define the record you are counting. If one row is one order line, a row count measures lines, not necessarily distinct orders or individual vehicles. A line can represent a quantity greater than one, while missing or repeated order identifiers can make distinct-order counts uncertain.
Write down the intended meaning of each metric before creating it:
- Order lines: count rows that meet the chosen inclusion rules.
- Orders: count distinct, valid order identifiers; surface blank and duplicate IDs rather than silently treating them as reliable.
- Units: sum quantities only after checking that quantities parse and have plausible values. Do not assume a blank quantity means one.
- Revenue and margin: specify which revenue basis is used, how discounts and fees are treated, and how returns enter the calculation.
This definition prevents a common reporting error: presenting a row count as an order count or treating a questionable quantity as known volume.
Profile the export and preserve what came in
Power Query is Power BI’s workspace for connecting to, shaping, and transforming data before it is loaded into the model. Microsoft describes Power BI Desktop as “a free Windows application that lets you connect to data, transform it, and create interactive visual reports” (Microsoft Learn: What is Power BI Desktop?).
Rank #2
Import the CSV without overwriting its source columns. Keep a raw query or untouched source copy, then create a staged query for profiling and transformations. Check each column’s data type, nulls, distinct values, duplicates, and suspicious extremes. In this project, the author reports mixed date formats, spreadsheet serial dates, inconsistent money formats and currency indicators, missing key fields, spelling and casing variants, text in numeric columns, repeated or missing IDs, and discrepancies between recorded revenue and its components.
Use a short transformation log alongside the query. For each rule, record the affected field, the rule applied, why it is defensible, and how many rows changed or remain unresolved. Practitioner Kelvin Warui captures the principle in his project walkthrough: “Each change needs a reason” (DEV Community walkthrough).
Transform only what the evidence supports
Parse dates with an explicit rule
Mixed date formats and spreadsheet serials need deliberate handling. Set the expected locale or format for text dates, and convert serial values only when the source convention is established. Preserve the raw date and flag values that fail parsing; a date that cannot be interpreted confidently should not be silently coerced into a plausible-looking one.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Retain currency context
Normalize numeric formatting only after identifying the currency represented by each value. Keep a currency field or a documented source-level currency assumption. If conversion is necessary, record the exchange-rate source, date basis, and rule; without those details, a converted total can imply comparability that the export does not establish.
Map categories conservatively
Standardize casing and spelling where variants clearly refer to the same category, but keep the original label and an explicit mapping table. Leave ambiguous labels unresolved and expose them for review. A clean-looking category list is not a good outcome if distinct values have been merged without evidence.
Keep missing and invalid numbers visible
Do not replace a missing unit cost with zero: that would make costs appear lower and gross profit higher. Do not replace a missing quantity with one: that would invent unit volume. Keep invalid numeric strings and failed conversions in review columns or exception queries rather than dropping them without a trace.
Reconcile revenue before reporting profit
The export includes recorded revenue and component fields such as quantity, price, and discount, as well as delivery or logistics charges. Create an independently calculated revenue field only after writing down the intended formula—for example, whether the calculation is based on quantity multiplied by unit price, how discounts are applied, and whether fees are included. Decide separately how returns affect the measure. The available project description does not establish a single verified interpretation for every field.
Compare the calculated amount with recorded revenue at the order-line level. Add a variance field and an exception flag, then inspect the largest discrepancies and the records with missing inputs. Do not substitute the calculated amount for recorded revenue—or vice versa—without documenting which is used in each report measure. Reconcile the two views before presenting either as a management KPI.
Rank #4
Gross profit and margin need the same care. A missing cost is not zero, and a margin derived from a questionable transaction is not a stable result. The project’s reported shift from 20.8% recorded gross margin to 8.0% after excluding two suspicious transactions demonstrates why a report should make its inclusion rules and exceptions visible. It does not establish which figure is the correct JCars result.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Build a model that follows the transaction grain
Microsoft’s star-schema guidance for Power BI distinguishes fact tables, which hold events and measurable values, from dimensions, which provide descriptive context for filtering and grouping. For this export, a transaction fact table can hold one row per source order line, its keys, quantity, money fields, statuses, and data-quality flags. Descriptive dimensions can organize dates, vehicles, customers, locations, sales representatives, and other stable categories where the source supports reliable keys.
Do not create relationships on descriptive text simply to make a model look normalized. First check whether keys are unique on the dimension side and whether fact rows map as intended. Missing or repeated identifiers need an explicit treatment; they are not fixed merely by creating a relationship. Keep unresolved records available for review rather than forcing them into a dimension member that misstates what is known.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Define measures once so visuals use consistent logic. The project describes measures for revenue, costs, gross profit and margin, logistics, orders, units, and discounted revenue. For each, document its source columns, inclusion rules, and treatment of blanks, returns, discounts, and fees. In particular, verify any formula that combines row-level values with aggregated delivery fees; the project writeup cautions that its displayed DAX should be checked rather than copied blindly.
Best Value
Design report pages around decisions and exceptions
Once definitions and model relationships are stable, organize the report around the questions a manager might ask. The project writeup raises questions about transaction and vehicle counts, revenue and gross profit; contributions by make, model, branch, region, and representative; payment method and status; and unusual records that deserve review. These are useful report prompts, not proof that the project files establish verified answers.
- Overview: show the chosen revenue, profit, margin, order-line, order, and unit measures with clear definitions and applicable filters.
- Product and location: compare makes, models, branches, and regions using the appropriate denominator. Where ratings or review counts are used, show their counts so a small sample is not mistaken for a robust signal.
- Payments and delivery: display recorded sales alongside payment and delivery statuses, and define which records are included in any rate.
- Exceptions: provide a filterable record-level view of missing keys, failed date or number conversions, repeated IDs, unusual quantities, and revenue variances. Avoid exposing customer-identifying details unnecessarily.
Use descriptive language for branch, vehicle, and customer comparisons unless the analysis supports a causal conclusion. A branch with more recorded revenue is not, by that fact alone, proven to cause better performance.
Share the report with the right licensing expectations
Power BI Desktop supports local report creation, but sharing through the Power BI service is a separate step. Microsoft’s license-type guidance says paid Pro or Premium Per User (PPU) licensing is needed to publish to app workspaces and share content, subject to the applicable service, workspace, and capacity rules. Licensing and tenant policies can change, so check current requirements for the intended audience before planning distribution.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →What a responsible JCars report can conclude
The project dataset offers a concrete case for building a repeatable vehicle-sales report: establish the order-line grain, profile the export, preserve source values, document transformations, retain uncertainty, reconcile revenue, and model facts and dimensions before drawing conclusions. Its author-reported counts and margin calculations illustrate the data and the sensitivity of analysis, but the available project evidence does not validate current JCars operations or a definitive performance baseline.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

