Extracting Data from Complex Tables

The objective of this feature was to enhance the capability of data extraction from complex tables, and optimize the spacing when a table is being processed,It also focused on finding the SKU Code, GL Code and conversion of units of items present in the table

Industry:

AI OCR

Timeline:

3 weeks

Product Design

Complex Table

Extracting Data from Complex Tables

The objective of this feature was to enhance the capability of data extraction from complex tables, and optimize the spacing when a table is being processed,It also focused on finding the SKU Code, GL Code and conversion of units of items present in the table

Industry:

AI OCR

Timeline:

3 weeks

Product Design

Complex Table

Extracting Data from Complex Tables

The objective of this feature was to enhance the capability of data extraction from complex tables, and optimize the spacing when a table is being processed,It also focused on finding the SKU Code, GL Code and conversion of units of items present in the table

Industry:

AI OCR

Timeline:

3 weeks

Product Design

Complex Table

My Role

Responsibilities

As the lead Product Designer, my responsibilities encompassed the entire design lifecycle from user research to visual design and user experience.

Collaboration

Collaboration was vital in creating this workflow because there were lot of dependencies form the AI, Backend and Frontend teams.

Design Process

Objectives

  • End-users struggle to obtain information from tables with hierarchical headers, merged cell data, and unorganized content. Establish a process that enables users to efficiently capture all data from any type of table in an orderly fashion.

  • The user should be given an option to find the SKU code and convert the line items to base units

  • Currently, our feature limits the workspace for data extraction from tables, needing optimization for increased working area.

User Stories

Core User Stories

  • A user who uploads documents containing intricate tables should have the ability to procure data from any table variant.

  • The user should be able to find the SKU codes from the backend if it is present

  • The user should be able to convert the units present in the table to base units

  • As a user who process lot of big tables I should be able to work on the processed data easily

Understanding AI Capabilities

Discussion with AI team

  • After understanding the capabilities of the AI from the team following data points was noted down:

  • The Ai is able to get the line items properly if the the headers are defined

Idea Proposal

Proposed a solution to the team (Slides)

  • After the discussion with the team a solution was proposed on how to deal with all documents that has complex table in it.

View Proposal →

Designing

Objective 1 (Optimizing the Area)

  • The objective was broken down to three, at first I started with optimizing the area in which the users can work wit tables

  • I started with this because, the area optimization is universal that it is applicable for both "Smart Table" functionality and the new functionality for "Staple Matrix" for complex tables

  • When the user clicks on process after selecting the table using horizontal and vertical lines the left bar was hidden as the functionalities of the left bar was not applicable during data extraction from tables

  • Result of this was a huge area of vision for the users to see and work with extracted data from the table

  • A button for expanding and collapsing the table was given near the processed table which seemed extremely useful in the case of large tables

Designing

Operations in Rows and Columns

  • The design should be powerful such that the user should have the ability edit the rows and columns

  • They should be able to move the rows and columns both single and multiple at a time

  • For row wise and column movement this is done by a dragging with a drag handle as shown below, I got this idea from the table management techniques used by confluence

  • The user should be able to delete the row/column, this is done by clicking the drag handle and select delete

  • If the user need to add custom data to the processed table the user can add a row/column in top or bottom by using the drag handle and populate

Designing

Populating SKU Code, GL Code from backend

  • For some users they put forward a requirement to have SKU code and GL code populated on a click

  • This was done using the following flow

  • Users process that table and if they want to find the SKU and GL code form the backend they need to select the whole table by checking the main checkbox

  • After that they need to click on the icon for populating the SKU and GL Code, Icon is made such that it is highlighted when hovered

  • I knew that just the icon wont help in knowing the feature so we will be adding tool tips with information

Designing

Gathering data from backend

  • There is a chance that the backend is not able to populate all the like items with SKU Code so sometimes when the user is not able to find the SKU automatically he can manually search for that

  • This is done by clicking on the pencil icon in the empty cell and the user is provided with a modal to search for the SKU by searching for the product

  • This will be a dynamic search bar when the user starts typing the results will be displayed

Designing

Conversion to Base Units

  • The objective of this feature is that the users should be able to convert the units that are present in the invoice to base units if needed

  • This also has a similar approach to what we did in finding the SKU and GL Code, the user selects the whole table and select th icon for conversion to base units

  • All the units in the table with get converted to base units

Designing

Conversion to Base Units

  • There is chance that the backend cant find the base units for each and every line item so the user need to manually find it

  • This is done by clicking on the edit icon in the empty cell which will provide the users with a popup were they have to select the conversion unit from the drop down

  • If the conversion is not found the user can add the conversion factor to the backend if needed and then convert (depicted in the flow below)

Designing

Data Extraction from complex tables

  • This was the major obstacle that needs to be tackled and it has not been done by any of our competitors

  • The objective was to make users extract data from any complex table

  • As I had a discussion from the backend team they said if we can store the headers as data points then we can extract the data associated

  • So in the proposal I introduced a new entity called "Staple Matrix" which is build for all the complex tables

  • Whenever the user encounters with a complex table in the models area as well as in the scanning area then they should follow a specific workflow.

Designing

Data Extraction from complex tables

  • The user gets a complex table as shown below and our current smart table fuctionality cant extract data from this kind of tables

  • So the user should click on "Staple Matrix" which is present near the "Smart Table" and select "Add New Complex Table"

  • Next step is to define the area of interest, this is sone by dragging and selecting the area as shown, when the are a is selected the user should click on process

Designing

Data Extraction from complex tables

  • Next step to define what all headers are needed from the table this is done by dragging the headers as shown

  • When a header is dragged and selelcted the user is provided with a modal in which the selected value will be populated and then the user have to click on save

  • After the user click on save the heading gets populate on the section as shown below

  • The user now has to select other headers (As prompted by the pseudo cell)

  • After selecting all the needed headers user need to click "Populate line Items" button then the AI will analyse and populate the line items

Designing

Data Extraction from complex tables

  • If the AI has gotten the data wrong the user can edit it by clicking on the corresponding cell and then editing it

  • For better visualization I provided lines and colour differentiation for headers and line items

Conclusion

Future Scope

  • The design was completed and handed over to the developers, this will take minimum of 4 months for development

  • When this set of features are implemented the company will be very confident about their data processing capabilities

Built with Framer

Built with Framer

Built with Framer