Act as my data analyst. Use sales.csv and data-dictionary.md to build a sales report. All data is synthetic and all money is in USD.

Start by inspecting the columns, data types, row count, duplicate order IDs, and missing values. Show the exact issues you find. Count an exactly duplicated order only once, keep an audit of removed rows, and put missing regions in an explicit Unknown group. Do not modify the original CSV. If rows share an order ID but have different values, ask how to resolve the conflict.

Calculate revenue as quantity * unit_price_usd. Show total revenue, monthly revenue, revenue by product, and revenue by region. Reconcile every breakdown with the same cleaned-data total. Do not call revenue profit or invent reasons for changes.

If Power BI Desktop and the required computer-use tools are available, create a report with a total-revenue card, monthly chart, product ranking, region breakdown, and date/region filters. Verify the filters and save sales-report.pbix.

If Power BI Desktop is unavailable, create sales-report.xlsx and a self-contained HTML dashboard with date and region filters. State this substitution clearly; do not label another file as PBIX.

Also deliver cleaned-sales.csv, cleaning-log.md, and findings.md. In findings.md list three observations supported by exact figures, the reconciliation totals, and any checks you could not perform. Save everything in output/.
